blob: 96583e6e2c288a12e08963feef9fd7f80a6bcd92 [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/filters.proto
package talent
import (
reflect "reflect"
sync "sync"
proto "github.com/golang/protobuf/proto"
duration "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"
latlng "google.golang.org/genproto/googleapis/type/latlng"
timeofday "google.golang.org/genproto/googleapis/type/timeofday"
_ "google.golang.org/genproto/protobuf/field_mask"
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
// Specify whether to include telecommute jobs.
type LocationFilter_TelecommutePreference int32
const (
// Default value if the telecommute preference isn't specified.
LocationFilter_TELECOMMUTE_PREFERENCE_UNSPECIFIED LocationFilter_TelecommutePreference = 0
// Exclude telecommute jobs.
LocationFilter_TELECOMMUTE_EXCLUDED LocationFilter_TelecommutePreference = 1
// Allow telecommute jobs.
LocationFilter_TELECOMMUTE_ALLOWED LocationFilter_TelecommutePreference = 2
)
// Enum value maps for LocationFilter_TelecommutePreference.
var (
LocationFilter_TelecommutePreference_name = map[int32]string{
0: "TELECOMMUTE_PREFERENCE_UNSPECIFIED",
1: "TELECOMMUTE_EXCLUDED",
2: "TELECOMMUTE_ALLOWED",
}
LocationFilter_TelecommutePreference_value = map[string]int32{
"TELECOMMUTE_PREFERENCE_UNSPECIFIED": 0,
"TELECOMMUTE_EXCLUDED": 1,
"TELECOMMUTE_ALLOWED": 2,
}
)
func (x LocationFilter_TelecommutePreference) Enum() *LocationFilter_TelecommutePreference {
p := new(LocationFilter_TelecommutePreference)
*p = x
return p
}
func (x LocationFilter_TelecommutePreference) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (LocationFilter_TelecommutePreference) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_filters_proto_enumTypes[0].Descriptor()
}
func (LocationFilter_TelecommutePreference) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_filters_proto_enumTypes[0]
}
func (x LocationFilter_TelecommutePreference) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use LocationFilter_TelecommutePreference.Descriptor instead.
func (LocationFilter_TelecommutePreference) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{2, 0}
}
// Specify the type of filtering.
type CompensationFilter_FilterType int32
const (
// Filter type unspecified. Position holder, INVALID, should never be used.
CompensationFilter_FILTER_TYPE_UNSPECIFIED CompensationFilter_FilterType = 0
// Filter by `base compensation entry's` unit. A job is a match if and
// only if the job contains a base CompensationEntry and the base
// CompensationEntry's unit matches provided [units][google.cloud.talent.v4beta1.CompensationFilter.units].
// Populate one or more [units][google.cloud.talent.v4beta1.CompensationFilter.units].
//
// See [CompensationInfo.CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for definition of
// base compensation entry.
CompensationFilter_UNIT_ONLY CompensationFilter_FilterType = 1
// Filter by `base compensation entry's` unit and amount / range. A job
// is a match if and only if the job contains a base CompensationEntry, and
// the base entry's unit matches provided
// [CompensationUnit][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit] and
// amount or range overlaps with provided
// [CompensationRange][google.cloud.talent.v4beta1.CompensationInfo.CompensationRange].
//
// See [CompensationInfo.CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for definition of
// base compensation entry.
//
// Set exactly one [units][google.cloud.talent.v4beta1.CompensationFilter.units] and populate [range][google.cloud.talent.v4beta1.CompensationFilter.range].
CompensationFilter_UNIT_AND_AMOUNT CompensationFilter_FilterType = 2
// Filter by annualized base compensation amount and `base compensation
// entry's` unit. Populate [range][google.cloud.talent.v4beta1.CompensationFilter.range] and zero or more [units][google.cloud.talent.v4beta1.CompensationFilter.units].
CompensationFilter_ANNUALIZED_BASE_AMOUNT CompensationFilter_FilterType = 3
// Filter by annualized total compensation amount and `base compensation
// entry's` unit . Populate [range][google.cloud.talent.v4beta1.CompensationFilter.range] and zero or more [units][google.cloud.talent.v4beta1.CompensationFilter.units].
CompensationFilter_ANNUALIZED_TOTAL_AMOUNT CompensationFilter_FilterType = 4
)
// Enum value maps for CompensationFilter_FilterType.
var (
CompensationFilter_FilterType_name = map[int32]string{
0: "FILTER_TYPE_UNSPECIFIED",
1: "UNIT_ONLY",
2: "UNIT_AND_AMOUNT",
3: "ANNUALIZED_BASE_AMOUNT",
4: "ANNUALIZED_TOTAL_AMOUNT",
}
CompensationFilter_FilterType_value = map[string]int32{
"FILTER_TYPE_UNSPECIFIED": 0,
"UNIT_ONLY": 1,
"UNIT_AND_AMOUNT": 2,
"ANNUALIZED_BASE_AMOUNT": 3,
"ANNUALIZED_TOTAL_AMOUNT": 4,
}
)
func (x CompensationFilter_FilterType) Enum() *CompensationFilter_FilterType {
p := new(CompensationFilter_FilterType)
*p = x
return p
}
func (x CompensationFilter_FilterType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CompensationFilter_FilterType) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_filters_proto_enumTypes[1].Descriptor()
}
func (CompensationFilter_FilterType) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_filters_proto_enumTypes[1]
}
func (x CompensationFilter_FilterType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CompensationFilter_FilterType.Descriptor instead.
func (CompensationFilter_FilterType) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{3, 0}
}
// The traffic density to use when calculating commute time.
type CommuteFilter_RoadTraffic int32
const (
// Road traffic situation isn't specified.
CommuteFilter_ROAD_TRAFFIC_UNSPECIFIED CommuteFilter_RoadTraffic = 0
// Optimal commute time without considering any traffic impact.
CommuteFilter_TRAFFIC_FREE CommuteFilter_RoadTraffic = 1
// Commute time calculation takes in account the peak traffic impact.
CommuteFilter_BUSY_HOUR CommuteFilter_RoadTraffic = 2
)
// Enum value maps for CommuteFilter_RoadTraffic.
var (
CommuteFilter_RoadTraffic_name = map[int32]string{
0: "ROAD_TRAFFIC_UNSPECIFIED",
1: "TRAFFIC_FREE",
2: "BUSY_HOUR",
}
CommuteFilter_RoadTraffic_value = map[string]int32{
"ROAD_TRAFFIC_UNSPECIFIED": 0,
"TRAFFIC_FREE": 1,
"BUSY_HOUR": 2,
}
)
func (x CommuteFilter_RoadTraffic) Enum() *CommuteFilter_RoadTraffic {
p := new(CommuteFilter_RoadTraffic)
*p = x
return p
}
func (x CommuteFilter_RoadTraffic) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (CommuteFilter_RoadTraffic) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_filters_proto_enumTypes[2].Descriptor()
}
func (CommuteFilter_RoadTraffic) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_filters_proto_enumTypes[2]
}
func (x CommuteFilter_RoadTraffic) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use CommuteFilter_RoadTraffic.Descriptor instead.
func (CommuteFilter_RoadTraffic) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{4, 0}
}
// Enum indicating which set of [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records] to search
// against.
type EmployerFilter_EmployerFilterMode int32
const (
// Default value.
EmployerFilter_EMPLOYER_FILTER_MODE_UNSPECIFIED EmployerFilter_EmployerFilterMode = 0
// Apply to all employers in [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
EmployerFilter_ALL_EMPLOYMENT_RECORDS EmployerFilter_EmployerFilterMode = 1
// Apply only to current employer in [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
EmployerFilter_CURRENT_EMPLOYMENT_RECORDS_ONLY EmployerFilter_EmployerFilterMode = 2
// Apply only to past (not current) employers in
// [Profile.employment_records][google.cloud.talent.v4beta1.Profile.employment_records].
EmployerFilter_PAST_EMPLOYMENT_RECORDS_ONLY EmployerFilter_EmployerFilterMode = 3
)
// Enum value maps for EmployerFilter_EmployerFilterMode.
var (
EmployerFilter_EmployerFilterMode_name = map[int32]string{
0: "EMPLOYER_FILTER_MODE_UNSPECIFIED",
1: "ALL_EMPLOYMENT_RECORDS",
2: "CURRENT_EMPLOYMENT_RECORDS_ONLY",
3: "PAST_EMPLOYMENT_RECORDS_ONLY",
}
EmployerFilter_EmployerFilterMode_value = map[string]int32{
"EMPLOYER_FILTER_MODE_UNSPECIFIED": 0,
"ALL_EMPLOYMENT_RECORDS": 1,
"CURRENT_EMPLOYMENT_RECORDS_ONLY": 2,
"PAST_EMPLOYMENT_RECORDS_ONLY": 3,
}
)
func (x EmployerFilter_EmployerFilterMode) Enum() *EmployerFilter_EmployerFilterMode {
p := new(EmployerFilter_EmployerFilterMode)
*p = x
return p
}
func (x EmployerFilter_EmployerFilterMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (EmployerFilter_EmployerFilterMode) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_filters_proto_enumTypes[3].Descriptor()
}
func (EmployerFilter_EmployerFilterMode) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_filters_proto_enumTypes[3]
}
func (x EmployerFilter_EmployerFilterMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use EmployerFilter_EmployerFilterMode.Descriptor instead.
func (EmployerFilter_EmployerFilterMode) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{7, 0}
}
// Time fields can be used in TimeFilter.
type TimeFilter_TimeField int32
const (
// Default value.
TimeFilter_TIME_FIELD_UNSPECIFIED TimeFilter_TimeField = 0
// Earliest profile create time.
TimeFilter_CREATE_TIME TimeFilter_TimeField = 1
// Latest profile update time.
TimeFilter_UPDATE_TIME TimeFilter_TimeField = 2
)
// Enum value maps for TimeFilter_TimeField.
var (
TimeFilter_TimeField_name = map[int32]string{
0: "TIME_FIELD_UNSPECIFIED",
1: "CREATE_TIME",
2: "UPDATE_TIME",
}
TimeFilter_TimeField_value = map[string]int32{
"TIME_FIELD_UNSPECIFIED": 0,
"CREATE_TIME": 1,
"UPDATE_TIME": 2,
}
)
func (x TimeFilter_TimeField) Enum() *TimeFilter_TimeField {
p := new(TimeFilter_TimeField)
*p = x
return p
}
func (x TimeFilter_TimeField) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (TimeFilter_TimeField) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_talent_v4beta1_filters_proto_enumTypes[4].Descriptor()
}
func (TimeFilter_TimeField) Type() protoreflect.EnumType {
return &file_google_cloud_talent_v4beta1_filters_proto_enumTypes[4]
}
func (x TimeFilter_TimeField) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use TimeFilter_TimeField.Descriptor instead.
func (TimeFilter_TimeField) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{13, 0}
}
// The query required to perform a search query.
type JobQuery struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The query string that matches against the job title, description, and
// location fields.
//
// The maximum number of allowed characters is 255.
Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
// The language code of [query][google.cloud.talent.v4beta1.JobQuery.query]. For example, "en-US". This field helps to
// better interpret the query.
//
// If a value isn't specified, the query language code is automatically
// detected, which may not be accurate.
//
// Language code should be in BCP-47 format, such as "en-US" or "sr-Latn".
// For more information, see
// [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
QueryLanguageCode string `protobuf:"bytes,14,opt,name=query_language_code,json=queryLanguageCode,proto3" json:"query_language_code,omitempty"`
// This filter specifies the company entities to search against.
//
// If a value isn't specified, jobs are searched for against all
// companies.
//
// If multiple values are specified, jobs are searched against the
// companies specified.
//
// The format is
// "projects/{project_id}/tenants/{tenant_id}/companies/{company_id}". For
// example, "projects/foo/tenants/bar/companies/baz".
//
// If tenant id is unspecified, the default tenant is used. For
// example, "projects/foo/companies/bar".
//
// At most 20 company filters are allowed.
Companies []string `protobuf:"bytes,2,rep,name=companies,proto3" json:"companies,omitempty"`
// The location filter specifies geo-regions containing the jobs to
// search against. See [LocationFilter][google.cloud.talent.v4beta1.LocationFilter] for more information.
//
// If a location value isn't specified, jobs fitting the other search
// criteria are retrieved regardless of where they're located.
//
// If multiple values are specified, jobs are retrieved from any of the
// specified locations. If different values are specified for the
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] parameter, the maximum provided
// distance is used for all locations.
//
// At most 5 location filters are allowed.
LocationFilters []*LocationFilter `protobuf:"bytes,3,rep,name=location_filters,json=locationFilters,proto3" json:"location_filters,omitempty"`
// The category filter specifies the categories of jobs to search against.
// See [JobCategory][google.cloud.talent.v4beta1.JobCategory] for more information.
//
// If a value isn't specified, jobs from any category are searched against.
//
// If multiple values are specified, jobs from any of the specified
// categories are searched against.
JobCategories []JobCategory `protobuf:"varint,4,rep,packed,name=job_categories,json=jobCategories,proto3,enum=google.cloud.talent.v4beta1.JobCategory" json:"job_categories,omitempty"`
// Allows filtering jobs by commute time with different travel methods (for
// example, driving or public transit).
//
// Note: This only works when you specify a [CommuteMethod][google.cloud.talent.v4beta1.CommuteMethod]. In this case,
// [location_filters][google.cloud.talent.v4beta1.JobQuery.location_filters] is ignored.
//
// Currently we don't support sorting by commute time.
CommuteFilter *CommuteFilter `protobuf:"bytes,5,opt,name=commute_filter,json=commuteFilter,proto3" json:"commute_filter,omitempty"`
// This filter specifies the exact company [Company.display_name][google.cloud.talent.v4beta1.Company.display_name]
// of the jobs to search against.
//
// If a value isn't specified, jobs within the search results are
// associated with any company.
//
// If multiple values are specified, jobs within the search results may be
// associated with any of the specified companies.
//
// At most 20 company display name filters are allowed.
CompanyDisplayNames []string `protobuf:"bytes,6,rep,name=company_display_names,json=companyDisplayNames,proto3" json:"company_display_names,omitempty"`
// This search filter is applied only to
// [Job.compensation_info][google.cloud.talent.v4beta1.Job.compensation_info]. For example, if the filter is specified
// as "Hourly job with per-hour compensation > $15", only jobs meeting
// these criteria are searched. If a filter isn't defined, all open jobs
// are searched.
CompensationFilter *CompensationFilter `protobuf:"bytes,7,opt,name=compensation_filter,json=compensationFilter,proto3" json:"compensation_filter,omitempty"`
// This filter specifies a structured syntax to match against the
// [Job.custom_attributes][google.cloud.talent.v4beta1.Job.custom_attributes] marked as `filterable`.
//
// The syntax for this expression is a subset of SQL syntax.
//
// Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `>=` where the
// left of the operator is a custom field key and the right of the operator
// is a number or a quoted string. You must escape backslash (\\) and
// quote (\") characters.
//
// Supported functions are `LOWER([field_name])` to
// perform a case insensitive match and `EMPTY([field_name])` to filter on the
// existence of a key.
//
// Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
// nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum of 100
// comparisons or functions are allowed in the expression. The expression
// must be < 6000 bytes in length.
//
// Sample Query:
// `(LOWER(driving_license)="class \"a\"" OR EMPTY(driving_license)) AND
// driving_years > 10`
CustomAttributeFilter string `protobuf:"bytes,8,opt,name=custom_attribute_filter,json=customAttributeFilter,proto3" json:"custom_attribute_filter,omitempty"`
// This flag controls the spell-check feature. If false, the
// service attempts to correct a misspelled query,
// for example, "enginee" is corrected to "engineer".
//
// Defaults to false: a spell check is performed.
DisableSpellCheck bool `protobuf:"varint,9,opt,name=disable_spell_check,json=disableSpellCheck,proto3" json:"disable_spell_check,omitempty"`
// The employment type filter specifies the employment type of jobs to
// search against, such as [EmploymentType.FULL_TIME][google.cloud.talent.v4beta1.EmploymentType.FULL_TIME].
//
// If a value isn't specified, jobs in the search results includes any
// employment type.
//
// If multiple values are specified, jobs in the search results include
// any of the specified employment types.
EmploymentTypes []EmploymentType `protobuf:"varint,10,rep,packed,name=employment_types,json=employmentTypes,proto3,enum=google.cloud.talent.v4beta1.EmploymentType" json:"employment_types,omitempty"`
// This filter specifies the locale of jobs to search against,
// for example, "en-US".
//
// If a value isn't specified, the search results can contain jobs in any
// locale.
//
//
// Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn".
// For more information, see
// [Tags for Identifying Languages](https://tools.ietf.org/html/bcp47).
//
// At most 10 language code filters are allowed.
LanguageCodes []string `protobuf:"bytes,11,rep,name=language_codes,json=languageCodes,proto3" json:"language_codes,omitempty"`
// Jobs published within a range specified by this filter are searched
// against.
PublishTimeRange *TimestampRange `protobuf:"bytes,12,opt,name=publish_time_range,json=publishTimeRange,proto3" json:"publish_time_range,omitempty"`
// This filter specifies a list of job names to be excluded during search.
//
// At most 400 excluded job names are allowed.
ExcludedJobs []string `protobuf:"bytes,13,rep,name=excluded_jobs,json=excludedJobs,proto3" json:"excluded_jobs,omitempty"`
}
func (x *JobQuery) Reset() {
*x = JobQuery{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JobQuery) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JobQuery) ProtoMessage() {}
func (x *JobQuery) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 JobQuery.ProtoReflect.Descriptor instead.
func (*JobQuery) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{0}
}
func (x *JobQuery) GetQuery() string {
if x != nil {
return x.Query
}
return ""
}
func (x *JobQuery) GetQueryLanguageCode() string {
if x != nil {
return x.QueryLanguageCode
}
return ""
}
func (x *JobQuery) GetCompanies() []string {
if x != nil {
return x.Companies
}
return nil
}
func (x *JobQuery) GetLocationFilters() []*LocationFilter {
if x != nil {
return x.LocationFilters
}
return nil
}
func (x *JobQuery) GetJobCategories() []JobCategory {
if x != nil {
return x.JobCategories
}
return nil
}
func (x *JobQuery) GetCommuteFilter() *CommuteFilter {
if x != nil {
return x.CommuteFilter
}
return nil
}
func (x *JobQuery) GetCompanyDisplayNames() []string {
if x != nil {
return x.CompanyDisplayNames
}
return nil
}
func (x *JobQuery) GetCompensationFilter() *CompensationFilter {
if x != nil {
return x.CompensationFilter
}
return nil
}
func (x *JobQuery) GetCustomAttributeFilter() string {
if x != nil {
return x.CustomAttributeFilter
}
return ""
}
func (x *JobQuery) GetDisableSpellCheck() bool {
if x != nil {
return x.DisableSpellCheck
}
return false
}
func (x *JobQuery) GetEmploymentTypes() []EmploymentType {
if x != nil {
return x.EmploymentTypes
}
return nil
}
func (x *JobQuery) GetLanguageCodes() []string {
if x != nil {
return x.LanguageCodes
}
return nil
}
func (x *JobQuery) GetPublishTimeRange() *TimestampRange {
if x != nil {
return x.PublishTimeRange
}
return nil
}
func (x *JobQuery) GetExcludedJobs() []string {
if x != nil {
return x.ExcludedJobs
}
return nil
}
// Filters to apply when performing the search query.
type ProfileQuery struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Keywords to match any text fields of profiles.
//
// For example, "software engineer in Palo Alto".
Query string `protobuf:"bytes,1,opt,name=query,proto3" json:"query,omitempty"`
// The location filter specifies geo-regions containing the profiles to
// search against.
//
// One of [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] or [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] must be
// provided or an error is thrown. If both [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] and
// [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] are provided, an error is thrown.
//
// The following logic is used to determine which locations in
// the profile to filter against:
//
// 1. All of the profile's geocoded [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where
// [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL and [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
//
// 2. If the above set of locations is empty, all of the profile's geocoded
// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is
// CONTACT_INFO_USAGE_UNSPECIFIED and [Address.current][google.cloud.talent.v4beta1.Address.current] is true.
//
// 3. If the above set of locations is empty, all of the profile's geocoded
// [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is PERSONAL or
// CONTACT_INFO_USAGE_UNSPECIFIED and [Address.current][google.cloud.talent.v4beta1.Address.current] is not set.
//
// This means that any profiles without any [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] that match
// any of the above criteria will not be included in a search with location
// filter. Furthermore, any [Profile.addresses][google.cloud.talent.v4beta1.Profile.addresses] where [Address.usage][google.cloud.talent.v4beta1.Address.usage] is
// WORK or SCHOOL or where [Address.current][google.cloud.talent.v4beta1.Address.current] is false are not considered for
// location filter.
//
// If a location filter isn't specified, profiles fitting the other search
// criteria are retrieved regardless of where they're located.
//
// If [LocationFilter.negated][google.cloud.talent.v4beta1.LocationFilter.negated] is specified, the result doesn't contain
// profiles from that location.
//
// If [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] is provided, the
// [LocationType][google.cloud.talent.v4beta1.Location.LocationType], center
// point (latitude and longitude), and radius are automatically detected by
// the Google Maps Geocoding API and included as well. If
// [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] cannot be geocoded, the filter
// falls back to keyword search.
//
// If the detected
// [LocationType][google.cloud.talent.v4beta1.Location.LocationType] is
// [LocationType.SUB_ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.SUB_ADMINISTRATIVE_AREA],
// [LocationType.ADMINISTRATIVE_AREA][google.cloud.talent.v4beta1.Location.LocationType.ADMINISTRATIVE_AREA],
// or
// [LocationType.COUNTRY][google.cloud.talent.v4beta1.Location.LocationType.COUNTRY],
// the filter is performed against the detected location name (using exact
// text matching). Otherwise, the filter is performed against the detected
// center point and a radius of detected location radius +
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles].
//
// If [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address] is provided,
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is the additional radius on top of the
// radius of the location geocoded from [LocationFilter.address][google.cloud.talent.v4beta1.LocationFilter.address]. If
// [LocationFilter.lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] is provided,
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is the only radius that is used.
//
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is 10 by default. Note that the value
// of [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is 0 if it is unset, so the server
// does not differentiate [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] that is
// explicitly set to 0 and [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] that is not
// set. Which means that if [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is explicitly
// set to 0, the server will use the default value of
// [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] which is 10. To work around this and
// effectively set [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] to 0, we recommend
// setting [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] to a very small decimal number
// (such as 0.00001).
//
// If [LocationFilter.distance_in_miles][google.cloud.talent.v4beta1.LocationFilter.distance_in_miles] is negative, an error is thrown.
LocationFilters []*LocationFilter `protobuf:"bytes,2,rep,name=location_filters,json=locationFilters,proto3" json:"location_filters,omitempty"`
// Job title filter specifies job titles of profiles to match on.
//
// If a job title isn't specified, profiles with any titles are retrieved.
//
// If multiple values are specified, profiles are retrieved with any of the
// specified job titles.
//
// If [JobTitleFilter.negated][google.cloud.talent.v4beta1.JobTitleFilter.negated] is specified, the result won't contain
// profiles with the job titles.
//
// For example, search for profiles with a job title "Product Manager".
JobTitleFilters []*JobTitleFilter `protobuf:"bytes,3,rep,name=job_title_filters,json=jobTitleFilters,proto3" json:"job_title_filters,omitempty"`
// Employer filter specifies employers of profiles to match on.
//
// If an employer filter isn't specified, profiles with any employers are
// retrieved.
//
// If multiple employer filters are specified, profiles with any matching
// employers are retrieved.
//
// If [EmployerFilter.negated][google.cloud.talent.v4beta1.EmployerFilter.negated] is specified, the result won't contain
// profiles that match the employers.
//
// For example, search for profiles that have working experience at "Google
// LLC".
EmployerFilters []*EmployerFilter `protobuf:"bytes,4,rep,name=employer_filters,json=employerFilters,proto3" json:"employer_filters,omitempty"`
// Education filter specifies education of profiles to match on.
//
// If an education filter isn't specified, profiles with any education are
// retrieved.
//
// If multiple education filters are specified, profiles that match any
// education filters are retrieved.
//
// If [EducationFilter.negated][google.cloud.talent.v4beta1.EducationFilter.negated] is specified, the result won't contain
// profiles that match the educations.
//
// For example, search for profiles with a master degree.
EducationFilters []*EducationFilter `protobuf:"bytes,5,rep,name=education_filters,json=educationFilters,proto3" json:"education_filters,omitempty"`
// Skill filter specifies skill of profiles to match on.
//
// If a skill filter isn't specified, profiles with any skills are retrieved.
//
// If multiple skill filters are specified, profiles that match any skill
// filters are retrieved.
//
// If [SkillFilter.negated][google.cloud.talent.v4beta1.SkillFilter.negated] is specified, the result won't contain profiles
// that match the skills.
//
// For example, search for profiles that have "Java" and "Python" in skill
// list.
SkillFilters []*SkillFilter `protobuf:"bytes,6,rep,name=skill_filters,json=skillFilters,proto3" json:"skill_filters,omitempty"`
// Work experience filter specifies the total working experience of profiles
// to match on.
//
// If a work experience filter isn't specified, profiles with any
// professional experience are retrieved.
//
// If multiple work experience filters are specified, profiles that match any
// work experience filters are retrieved.
//
// For example, search for profiles with 10 years of work experience.
WorkExperienceFilter []*WorkExperienceFilter `protobuf:"bytes,7,rep,name=work_experience_filter,json=workExperienceFilter,proto3" json:"work_experience_filter,omitempty"`
// Time filter specifies the create/update timestamp of the profiles to match
// on.
//
// For example, search for profiles created since "2018-1-1".
TimeFilters []*TimeFilter `protobuf:"bytes,8,rep,name=time_filters,json=timeFilters,proto3" json:"time_filters,omitempty"`
// The hirable filter specifies the profile's hirable status to match on.
HirableFilter *wrappers.BoolValue `protobuf:"bytes,9,opt,name=hirable_filter,json=hirableFilter,proto3" json:"hirable_filter,omitempty"`
// The application date filters specify application date ranges to match on.
ApplicationDateFilters []*ApplicationDateFilter `protobuf:"bytes,10,rep,name=application_date_filters,json=applicationDateFilters,proto3" json:"application_date_filters,omitempty"`
// The application outcome notes filters specify the notes for the outcome of
// the job application.
ApplicationOutcomeNotesFilters []*ApplicationOutcomeNotesFilter `protobuf:"bytes,11,rep,name=application_outcome_notes_filters,json=applicationOutcomeNotesFilters,proto3" json:"application_outcome_notes_filters,omitempty"`
// The application job filters specify the job applied for in the application.
ApplicationJobFilters []*ApplicationJobFilter `protobuf:"bytes,13,rep,name=application_job_filters,json=applicationJobFilters,proto3" json:"application_job_filters,omitempty"`
// This filter specifies a structured syntax to match against the
// [Profile.custom_attributes][google.cloud.talent.v4beta1.Profile.custom_attributes] that are marked as `filterable`.
//
// The syntax for this expression is a subset of Google SQL syntax.
//
// String custom attributes: supported operators are =, != where the left of
// the operator is a custom field key and the right of the operator is a
// string (surrounded by quotes) value.
//
// Numeric custom attributes: Supported operators are '>', '<' or '='
// operators where the left of the operator is a custom field key and the
// right of the operator is a numeric value.
//
// Supported functions are LOWER(<field_name>) to
// perform case insensitive match and EMPTY(<field_name>) to filter on the
// existence of a key.
//
// Boolean expressions (AND/OR/NOT) are supported up to 3 levels of
// nesting (for example "((A AND B AND C) OR NOT D) AND E"), and there can be
// a maximum of 50 comparisons/functions in the expression. The expression
// must be < 2000 characters in length.
//
// Sample Query:
// (key1 = "TEST" OR LOWER(key1)="test" OR NOT EMPTY(key1))
CustomAttributeFilter string `protobuf:"bytes,15,opt,name=custom_attribute_filter,json=customAttributeFilter,proto3" json:"custom_attribute_filter,omitempty"`
// Deprecated. Use availability_filters instead.
//
// The candidate availability filter which filters based on availability
// signals.
//
// Signal 1: Number of days since most recent job application. See
// [Availability.JobApplicationAvailabilitySignal][google.cloud.talent.v4beta1.Availability.JobApplicationAvailabilitySignal] for the details of this
// signal.
//
// Signal 2: Number of days since last profile update. See
// [Availability.ProfileUpdateAvailabilitySignal][google.cloud.talent.v4beta1.Availability.ProfileUpdateAvailabilitySignal]
// for the details of this signal.
//
// The candidate availability filter helps a recruiter understand if a
// specific candidate is likely to be actively seeking new job opportunities
// based on an aggregated set of signals. Specifically, the intent is NOT to
// indicate the candidate's potential qualification / interest / close ability
// for a specific job.
//
// Deprecated: Do not use.
CandidateAvailabilityFilter *CandidateAvailabilityFilter `protobuf:"bytes,16,opt,name=candidate_availability_filter,json=candidateAvailabilityFilter,proto3" json:"candidate_availability_filter,omitempty"`
// The availability filter which filters based on
// [Profile.availability_signals][google.cloud.talent.v4beta1.Profile.availability_signals].
//
// The availability filter helps a recruiter understand if a
// specific candidate is likely to be actively seeking new job opportunities
// based on an aggregated set of signals. Specifically, the intent is NOT to
// indicate the candidate's potential qualification / interest / close ability
// for a specific job.
//
// There can be at most one [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] per
// [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type]. If there are multiple
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] for a [signal_type][google.cloud.talent.v4beta1.AvailabilityFilter.signal_type],
// an error is thrown.
AvailabilityFilters []*AvailabilityFilter `protobuf:"bytes,18,rep,name=availability_filters,json=availabilityFilters,proto3" json:"availability_filters,omitempty"`
// Person name filter specifies person name of profiles to match on.
//
// If multiple person name filters are specified, profiles that match any
// person name filters are retrieved.
//
// For example, search for profiles of candidates with name "John Smith".
PersonNameFilters []*PersonNameFilter `protobuf:"bytes,17,rep,name=person_name_filters,json=personNameFilters,proto3" json:"person_name_filters,omitempty"`
}
func (x *ProfileQuery) Reset() {
*x = ProfileQuery{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ProfileQuery) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ProfileQuery) ProtoMessage() {}
func (x *ProfileQuery) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 ProfileQuery.ProtoReflect.Descriptor instead.
func (*ProfileQuery) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{1}
}
func (x *ProfileQuery) GetQuery() string {
if x != nil {
return x.Query
}
return ""
}
func (x *ProfileQuery) GetLocationFilters() []*LocationFilter {
if x != nil {
return x.LocationFilters
}
return nil
}
func (x *ProfileQuery) GetJobTitleFilters() []*JobTitleFilter {
if x != nil {
return x.JobTitleFilters
}
return nil
}
func (x *ProfileQuery) GetEmployerFilters() []*EmployerFilter {
if x != nil {
return x.EmployerFilters
}
return nil
}
func (x *ProfileQuery) GetEducationFilters() []*EducationFilter {
if x != nil {
return x.EducationFilters
}
return nil
}
func (x *ProfileQuery) GetSkillFilters() []*SkillFilter {
if x != nil {
return x.SkillFilters
}
return nil
}
func (x *ProfileQuery) GetWorkExperienceFilter() []*WorkExperienceFilter {
if x != nil {
return x.WorkExperienceFilter
}
return nil
}
func (x *ProfileQuery) GetTimeFilters() []*TimeFilter {
if x != nil {
return x.TimeFilters
}
return nil
}
func (x *ProfileQuery) GetHirableFilter() *wrappers.BoolValue {
if x != nil {
return x.HirableFilter
}
return nil
}
func (x *ProfileQuery) GetApplicationDateFilters() []*ApplicationDateFilter {
if x != nil {
return x.ApplicationDateFilters
}
return nil
}
func (x *ProfileQuery) GetApplicationOutcomeNotesFilters() []*ApplicationOutcomeNotesFilter {
if x != nil {
return x.ApplicationOutcomeNotesFilters
}
return nil
}
func (x *ProfileQuery) GetApplicationJobFilters() []*ApplicationJobFilter {
if x != nil {
return x.ApplicationJobFilters
}
return nil
}
func (x *ProfileQuery) GetCustomAttributeFilter() string {
if x != nil {
return x.CustomAttributeFilter
}
return ""
}
// Deprecated: Do not use.
func (x *ProfileQuery) GetCandidateAvailabilityFilter() *CandidateAvailabilityFilter {
if x != nil {
return x.CandidateAvailabilityFilter
}
return nil
}
func (x *ProfileQuery) GetAvailabilityFilters() []*AvailabilityFilter {
if x != nil {
return x.AvailabilityFilters
}
return nil
}
func (x *ProfileQuery) GetPersonNameFilters() []*PersonNameFilter {
if x != nil {
return x.PersonNameFilters
}
return nil
}
// Geographic region of the search.
type LocationFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The address name, such as "Mountain View" or "Bay Area".
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// CLDR region code of the country/region of the address. This is used
// to address ambiguity of the user-input location, for example, "Liverpool"
// against "Liverpool, NY, US" or "Liverpool, UK".
//
// Set this field to bias location resolution toward a specific country
// or territory. If this field is not set, application behavior is biased
// toward the United States by default.
//
// See https://cldr.unicode.org/ and
// https://www.unicode.org/cldr/charts/30/supplemental/territory_information.html
// for details. Example: "CH" for Switzerland.
// Note that this filter is not applicable for Profile Search related queries.
RegionCode string `protobuf:"bytes,2,opt,name=region_code,json=regionCode,proto3" json:"region_code,omitempty"`
// The latitude and longitude of the geographic center to search from. This
// field is ignored if `address` is provided.
LatLng *latlng.LatLng `protobuf:"bytes,3,opt,name=lat_lng,json=latLng,proto3" json:"lat_lng,omitempty"`
// The distance_in_miles is applied when the location being searched for is
// identified as a city or smaller. This field is ignored if the location
// being searched for is a state or larger.
DistanceInMiles float64 `protobuf:"fixed64,4,opt,name=distance_in_miles,json=distanceInMiles,proto3" json:"distance_in_miles,omitempty"`
// Allows the client to return jobs without a
// set location, specifically, telecommuting jobs (telecommuting is considered
// by the service as a special location.
// [Job.posting_region][google.cloud.talent.v4beta1.Job.posting_region] indicates if a job permits telecommuting.
// If this field is set to [TelecommutePreference.TELECOMMUTE_ALLOWED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_ALLOWED],
// telecommuting jobs are searched, and [address][google.cloud.talent.v4beta1.LocationFilter.address] and [lat_lng][google.cloud.talent.v4beta1.LocationFilter.lat_lng] are
// ignored. If not set or set to
// [TelecommutePreference.TELECOMMUTE_EXCLUDED][google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference.TELECOMMUTE_EXCLUDED], telecommute job are not
// searched.
//
// This filter can be used by itself to search exclusively for telecommuting
// jobs, or it can be combined with another location
// filter to search for a combination of job locations,
// such as "Mountain View" or "telecommuting" jobs. However, when used in
// combination with other location filters, telecommuting jobs can be
// treated as less relevant than other jobs in the search response.
//
// This field is only used for job search requests.
TelecommutePreference LocationFilter_TelecommutePreference `protobuf:"varint,5,opt,name=telecommute_preference,json=telecommutePreference,proto3,enum=google.cloud.talent.v4beta1.LocationFilter_TelecommutePreference" json:"telecommute_preference,omitempty"`
// Whether to apply negation to the filter so profiles matching the filter
// are excluded.
//
// Currently only supported in profile search.
Negated bool `protobuf:"varint,6,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *LocationFilter) Reset() {
*x = LocationFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *LocationFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*LocationFilter) ProtoMessage() {}
func (x *LocationFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 LocationFilter.ProtoReflect.Descriptor instead.
func (*LocationFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{2}
}
func (x *LocationFilter) GetAddress() string {
if x != nil {
return x.Address
}
return ""
}
func (x *LocationFilter) GetRegionCode() string {
if x != nil {
return x.RegionCode
}
return ""
}
func (x *LocationFilter) GetLatLng() *latlng.LatLng {
if x != nil {
return x.LatLng
}
return nil
}
func (x *LocationFilter) GetDistanceInMiles() float64 {
if x != nil {
return x.DistanceInMiles
}
return 0
}
func (x *LocationFilter) GetTelecommutePreference() LocationFilter_TelecommutePreference {
if x != nil {
return x.TelecommutePreference
}
return LocationFilter_TELECOMMUTE_PREFERENCE_UNSPECIFIED
}
func (x *LocationFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Filter on job compensation type and amount.
type CompensationFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Type of filter.
Type CompensationFilter_FilterType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.talent.v4beta1.CompensationFilter_FilterType" json:"type,omitempty"`
// Required. Specify desired `base compensation entry's`
// [CompensationInfo.CompensationUnit][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit].
Units []CompensationInfo_CompensationUnit `protobuf:"varint,2,rep,packed,name=units,proto3,enum=google.cloud.talent.v4beta1.CompensationInfo_CompensationUnit" json:"units,omitempty"`
// Compensation range.
Range *CompensationInfo_CompensationRange `protobuf:"bytes,3,opt,name=range,proto3" json:"range,omitempty"`
// If set to true, jobs with unspecified compensation range fields are
// included.
IncludeJobsWithUnspecifiedCompensationRange bool `protobuf:"varint,4,opt,name=include_jobs_with_unspecified_compensation_range,json=includeJobsWithUnspecifiedCompensationRange,proto3" json:"include_jobs_with_unspecified_compensation_range,omitempty"`
}
func (x *CompensationFilter) Reset() {
*x = CompensationFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CompensationFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CompensationFilter) ProtoMessage() {}
func (x *CompensationFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 CompensationFilter.ProtoReflect.Descriptor instead.
func (*CompensationFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{3}
}
func (x *CompensationFilter) GetType() CompensationFilter_FilterType {
if x != nil {
return x.Type
}
return CompensationFilter_FILTER_TYPE_UNSPECIFIED
}
func (x *CompensationFilter) GetUnits() []CompensationInfo_CompensationUnit {
if x != nil {
return x.Units
}
return nil
}
func (x *CompensationFilter) GetRange() *CompensationInfo_CompensationRange {
if x != nil {
return x.Range
}
return nil
}
func (x *CompensationFilter) GetIncludeJobsWithUnspecifiedCompensationRange() bool {
if x != nil {
return x.IncludeJobsWithUnspecifiedCompensationRange
}
return false
}
// Parameters needed for commute search.
type CommuteFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The method of transportation to calculate the commute time for.
CommuteMethod CommuteMethod `protobuf:"varint,1,opt,name=commute_method,json=commuteMethod,proto3,enum=google.cloud.talent.v4beta1.CommuteMethod" json:"commute_method,omitempty"`
// Required. The latitude and longitude of the location to calculate the
// commute time from.
StartCoordinates *latlng.LatLng `protobuf:"bytes,2,opt,name=start_coordinates,json=startCoordinates,proto3" json:"start_coordinates,omitempty"`
// Required. The maximum travel time in seconds. The maximum allowed value is `3600s`
// (one hour). Format is `123s`.
TravelDuration *duration.Duration `protobuf:"bytes,3,opt,name=travel_duration,json=travelDuration,proto3" json:"travel_duration,omitempty"`
// If `true`, jobs without street level addresses may also be returned.
// For city level addresses, the city center is used. For state and coarser
// level addresses, text matching is used.
// If this field is set to `false` or isn't specified, only jobs that include
// street level addresses will be returned by commute search.
AllowImpreciseAddresses bool `protobuf:"varint,4,opt,name=allow_imprecise_addresses,json=allowImpreciseAddresses,proto3" json:"allow_imprecise_addresses,omitempty"`
// Traffic factor to take into account while searching by commute.
//
// Types that are assignable to TrafficOption:
// *CommuteFilter_RoadTraffic_
// *CommuteFilter_DepartureTime
TrafficOption isCommuteFilter_TrafficOption `protobuf_oneof:"traffic_option"`
}
func (x *CommuteFilter) Reset() {
*x = CommuteFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CommuteFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CommuteFilter) ProtoMessage() {}
func (x *CommuteFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 CommuteFilter.ProtoReflect.Descriptor instead.
func (*CommuteFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{4}
}
func (x *CommuteFilter) GetCommuteMethod() CommuteMethod {
if x != nil {
return x.CommuteMethod
}
return CommuteMethod_COMMUTE_METHOD_UNSPECIFIED
}
func (x *CommuteFilter) GetStartCoordinates() *latlng.LatLng {
if x != nil {
return x.StartCoordinates
}
return nil
}
func (x *CommuteFilter) GetTravelDuration() *duration.Duration {
if x != nil {
return x.TravelDuration
}
return nil
}
func (x *CommuteFilter) GetAllowImpreciseAddresses() bool {
if x != nil {
return x.AllowImpreciseAddresses
}
return false
}
func (m *CommuteFilter) GetTrafficOption() isCommuteFilter_TrafficOption {
if m != nil {
return m.TrafficOption
}
return nil
}
func (x *CommuteFilter) GetRoadTraffic() CommuteFilter_RoadTraffic {
if x, ok := x.GetTrafficOption().(*CommuteFilter_RoadTraffic_); ok {
return x.RoadTraffic
}
return CommuteFilter_ROAD_TRAFFIC_UNSPECIFIED
}
func (x *CommuteFilter) GetDepartureTime() *timeofday.TimeOfDay {
if x, ok := x.GetTrafficOption().(*CommuteFilter_DepartureTime); ok {
return x.DepartureTime
}
return nil
}
type isCommuteFilter_TrafficOption interface {
isCommuteFilter_TrafficOption()
}
type CommuteFilter_RoadTraffic_ struct {
// Specifies the traffic density to use when calculating commute time.
RoadTraffic CommuteFilter_RoadTraffic `protobuf:"varint,5,opt,name=road_traffic,json=roadTraffic,proto3,enum=google.cloud.talent.v4beta1.CommuteFilter_RoadTraffic,oneof"`
}
type CommuteFilter_DepartureTime struct {
// The departure time used to calculate traffic impact, represented as
// [google.type.TimeOfDay][google.type.TimeOfDay] in local time zone.
//
// Currently traffic model is restricted to hour level resolution.
DepartureTime *timeofday.TimeOfDay `protobuf:"bytes,6,opt,name=departure_time,json=departureTime,proto3,oneof"`
}
func (*CommuteFilter_RoadTraffic_) isCommuteFilter_TrafficOption() {}
func (*CommuteFilter_DepartureTime) isCommuteFilter_TrafficOption() {}
// Job title of the search.
type JobTitleFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The job title. For example, "Software engineer", or "Product manager".
JobTitle string `protobuf:"bytes,1,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
// Whether to apply negation to the filter so profiles matching the filter
// are excluded.
Negated bool `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *JobTitleFilter) Reset() {
*x = JobTitleFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *JobTitleFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*JobTitleFilter) ProtoMessage() {}
func (x *JobTitleFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 JobTitleFilter.ProtoReflect.Descriptor instead.
func (*JobTitleFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{5}
}
func (x *JobTitleFilter) GetJobTitle() string {
if x != nil {
return x.JobTitle
}
return ""
}
func (x *JobTitleFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Skill filter of the search.
type SkillFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The skill name. For example, "java", "j2ee", and so on.
Skill string `protobuf:"bytes,1,opt,name=skill,proto3" json:"skill,omitempty"`
// Whether to apply negation to the filter so profiles matching the filter
// are excluded.
Negated bool `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *SkillFilter) Reset() {
*x = SkillFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *SkillFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*SkillFilter) ProtoMessage() {}
func (x *SkillFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 SkillFilter.ProtoReflect.Descriptor instead.
func (*SkillFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{6}
}
func (x *SkillFilter) GetSkill() string {
if x != nil {
return x.Skill
}
return ""
}
func (x *SkillFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Employer filter of the search.
type EmployerFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The name of the employer, for example "Google", "Alphabet".
Employer string `protobuf:"bytes,1,opt,name=employer,proto3" json:"employer,omitempty"`
// Define set of [EmploymentRecord][google.cloud.talent.v4beta1.EmploymentRecord]s to search against.
//
// Defaults to [EmployerFilterMode.ALL_EMPLOYMENT_RECORDS][google.cloud.talent.v4beta1.EmployerFilter.EmployerFilterMode.ALL_EMPLOYMENT_RECORDS].
Mode EmployerFilter_EmployerFilterMode `protobuf:"varint,2,opt,name=mode,proto3,enum=google.cloud.talent.v4beta1.EmployerFilter_EmployerFilterMode" json:"mode,omitempty"`
// Whether to apply negation to the filter so profiles matching the filter
// is excluded.
Negated bool `protobuf:"varint,3,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *EmployerFilter) Reset() {
*x = EmployerFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmployerFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmployerFilter) ProtoMessage() {}
func (x *EmployerFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 EmployerFilter.ProtoReflect.Descriptor instead.
func (*EmployerFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{7}
}
func (x *EmployerFilter) GetEmployer() string {
if x != nil {
return x.Employer
}
return ""
}
func (x *EmployerFilter) GetMode() EmployerFilter_EmployerFilterMode {
if x != nil {
return x.Mode
}
return EmployerFilter_EMPLOYER_FILTER_MODE_UNSPECIFIED
}
func (x *EmployerFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Education filter of the search.
type EducationFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The school name. For example "MIT", "University of California, Berkeley".
School string `protobuf:"bytes,1,opt,name=school,proto3" json:"school,omitempty"`
// The field of study. This is to search against value provided in
// [Degree.fields_of_study][google.cloud.talent.v4beta1.Degree.fields_of_study].
// For example "Computer Science", "Mathematics".
FieldOfStudy string `protobuf:"bytes,2,opt,name=field_of_study,json=fieldOfStudy,proto3" json:"field_of_study,omitempty"`
// Education degree in ISCED code. Each value in degree covers a specific
// level of education, without any expansion to upper nor lower levels of
// education degree.
DegreeType DegreeType `protobuf:"varint,3,opt,name=degree_type,json=degreeType,proto3,enum=google.cloud.talent.v4beta1.DegreeType" json:"degree_type,omitempty"`
// Whether to apply negation to the filter so profiles matching the filter
// is excluded.
Negated bool `protobuf:"varint,6,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *EducationFilter) Reset() {
*x = EducationFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EducationFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EducationFilter) ProtoMessage() {}
func (x *EducationFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 EducationFilter.ProtoReflect.Descriptor instead.
func (*EducationFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{8}
}
func (x *EducationFilter) GetSchool() string {
if x != nil {
return x.School
}
return ""
}
func (x *EducationFilter) GetFieldOfStudy() string {
if x != nil {
return x.FieldOfStudy
}
return ""
}
func (x *EducationFilter) GetDegreeType() DegreeType {
if x != nil {
return x.DegreeType
}
return DegreeType_DEGREE_TYPE_UNSPECIFIED
}
func (x *EducationFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Work experience filter.
//
// This filter is used to search for profiles with working experience length
// between [min_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.min_experience] and [max_experience][google.cloud.talent.v4beta1.WorkExperienceFilter.max_experience].
type WorkExperienceFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The minimum duration of the work experience (inclusive).
MinExperience *duration.Duration `protobuf:"bytes,1,opt,name=min_experience,json=minExperience,proto3" json:"min_experience,omitempty"`
// The maximum duration of the work experience (exclusive).
MaxExperience *duration.Duration `protobuf:"bytes,2,opt,name=max_experience,json=maxExperience,proto3" json:"max_experience,omitempty"`
}
func (x *WorkExperienceFilter) Reset() {
*x = WorkExperienceFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *WorkExperienceFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*WorkExperienceFilter) ProtoMessage() {}
func (x *WorkExperienceFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 WorkExperienceFilter.ProtoReflect.Descriptor instead.
func (*WorkExperienceFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{9}
}
func (x *WorkExperienceFilter) GetMinExperience() *duration.Duration {
if x != nil {
return x.MinExperience
}
return nil
}
func (x *WorkExperienceFilter) GetMaxExperience() *duration.Duration {
if x != nil {
return x.MaxExperience
}
return nil
}
// Application Date Range Filter.
//
// The API matches profiles with [Application.application_date][google.cloud.talent.v4beta1.Application.application_date] between
// start date and end date (both boundaries are inclusive). The filter is
// ignored if both [start_date][google.cloud.talent.v4beta1.ApplicationDateFilter.start_date] and [end_date][google.cloud.talent.v4beta1.ApplicationDateFilter.end_date] are missing.
type ApplicationDateFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Start date. If it's missing, The API matches profiles with application date
// not after the end date.
StartDate *date.Date `protobuf:"bytes,1,opt,name=start_date,json=startDate,proto3" json:"start_date,omitempty"`
// End date. If it's missing, The API matches profiles with application date
// not before the start date.
EndDate *date.Date `protobuf:"bytes,2,opt,name=end_date,json=endDate,proto3" json:"end_date,omitempty"`
}
func (x *ApplicationDateFilter) Reset() {
*x = ApplicationDateFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApplicationDateFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApplicationDateFilter) ProtoMessage() {}
func (x *ApplicationDateFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 ApplicationDateFilter.ProtoReflect.Descriptor instead.
func (*ApplicationDateFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{10}
}
func (x *ApplicationDateFilter) GetStartDate() *date.Date {
if x != nil {
return x.StartDate
}
return nil
}
func (x *ApplicationDateFilter) GetEndDate() *date.Date {
if x != nil {
return x.EndDate
}
return nil
}
// Outcome Notes Filter.
type ApplicationOutcomeNotesFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. User entered or selected outcome reason. The API does an exact match on the
// [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes] in profiles.
OutcomeNotes string `protobuf:"bytes,1,opt,name=outcome_notes,json=outcomeNotes,proto3" json:"outcome_notes,omitempty"`
// If true, The API excludes all candidates with any
// [Application.outcome_notes][google.cloud.talent.v4beta1.Application.outcome_notes] matching the outcome reason specified in
// the filter.
Negated bool `protobuf:"varint,2,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *ApplicationOutcomeNotesFilter) Reset() {
*x = ApplicationOutcomeNotesFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApplicationOutcomeNotesFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApplicationOutcomeNotesFilter) ProtoMessage() {}
func (x *ApplicationOutcomeNotesFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 ApplicationOutcomeNotesFilter.ProtoReflect.Descriptor instead.
func (*ApplicationOutcomeNotesFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{11}
}
func (x *ApplicationOutcomeNotesFilter) GetOutcomeNotes() string {
if x != nil {
return x.OutcomeNotes
}
return ""
}
func (x *ApplicationOutcomeNotesFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Filter on the job information of Application.
type ApplicationJobFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The job requisition id in the application. The API does an exact match on
// the [Job.requisition_id][google.cloud.talent.v4beta1.Job.requisition_id] of [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles.
JobRequisitionId string `protobuf:"bytes,2,opt,name=job_requisition_id,json=jobRequisitionId,proto3" json:"job_requisition_id,omitempty"`
// The job title in the application. The API does an exact match on the
// [Job.title][google.cloud.talent.v4beta1.Job.title] of [Application.job][google.cloud.talent.v4beta1.Application.job] in profiles.
JobTitle string `protobuf:"bytes,3,opt,name=job_title,json=jobTitle,proto3" json:"job_title,omitempty"`
// If true, the API excludes all profiles with any [Application.job][google.cloud.talent.v4beta1.Application.job]
// matching the filters.
Negated bool `protobuf:"varint,4,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *ApplicationJobFilter) Reset() {
*x = ApplicationJobFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *ApplicationJobFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*ApplicationJobFilter) ProtoMessage() {}
func (x *ApplicationJobFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 ApplicationJobFilter.ProtoReflect.Descriptor instead.
func (*ApplicationJobFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{12}
}
func (x *ApplicationJobFilter) GetJobRequisitionId() string {
if x != nil {
return x.JobRequisitionId
}
return ""
}
func (x *ApplicationJobFilter) GetJobTitle() string {
if x != nil {
return x.JobTitle
}
return ""
}
func (x *ApplicationJobFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Filter on create timestamp or update timestamp of profiles.
type TimeFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Start timestamp, matching profiles with the start time. If this field
// missing, The API matches profiles with create / update timestamp before the
// end timestamp.
StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// End timestamp, matching profiles with the end time. If this field
// missing, The API matches profiles with create / update timestamp after the
// start timestamp.
EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Specifies which time field to filter profiles.
//
// Defaults to [TimeField.CREATE_TIME][google.cloud.talent.v4beta1.TimeFilter.TimeField.CREATE_TIME].
TimeField TimeFilter_TimeField `protobuf:"varint,3,opt,name=time_field,json=timeField,proto3,enum=google.cloud.talent.v4beta1.TimeFilter_TimeField" json:"time_field,omitempty"`
}
func (x *TimeFilter) Reset() {
*x = TimeFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *TimeFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*TimeFilter) ProtoMessage() {}
func (x *TimeFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 TimeFilter.ProtoReflect.Descriptor instead.
func (*TimeFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{13}
}
func (x *TimeFilter) GetStartTime() *timestamp.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *TimeFilter) GetEndTime() *timestamp.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *TimeFilter) GetTimeField() TimeFilter_TimeField {
if x != nil {
return x.TimeField
}
return TimeFilter_TIME_FIELD_UNSPECIFIED
}
// Deprecated. Use AvailabilityFilter instead.
//
// Filter on availability signals.
//
// Deprecated: Do not use.
type CandidateAvailabilityFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// It is false by default. If true, API excludes all the potential available
// profiles.
Negated bool `protobuf:"varint,1,opt,name=negated,proto3" json:"negated,omitempty"`
}
func (x *CandidateAvailabilityFilter) Reset() {
*x = CandidateAvailabilityFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *CandidateAvailabilityFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*CandidateAvailabilityFilter) ProtoMessage() {}
func (x *CandidateAvailabilityFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 CandidateAvailabilityFilter.ProtoReflect.Descriptor instead.
func (*CandidateAvailabilityFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{14}
}
func (x *CandidateAvailabilityFilter) GetNegated() bool {
if x != nil {
return x.Negated
}
return false
}
// Filter on availability signals.
type AvailabilityFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. Type of signal to apply filter on.
SignalType AvailabilitySignalType `protobuf:"varint,1,opt,name=signal_type,json=signalType,proto3,enum=google.cloud.talent.v4beta1.AvailabilitySignalType" json:"signal_type,omitempty"`
// Required. Range of times to filter candidate signals by.
Range *TimestampRange `protobuf:"bytes,2,opt,name=range,proto3" json:"range,omitempty"`
// If multiple [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] are provided, the default
// behavior is to OR all filters, but if this field is set to true, this
// particular [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter] will be AND'ed against other
// [AvailabilityFilter][google.cloud.talent.v4beta1.AvailabilityFilter].
Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
}
func (x *AvailabilityFilter) Reset() {
*x = AvailabilityFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *AvailabilityFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*AvailabilityFilter) ProtoMessage() {}
func (x *AvailabilityFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[15]
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 AvailabilityFilter.ProtoReflect.Descriptor instead.
func (*AvailabilityFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{15}
}
func (x *AvailabilityFilter) GetSignalType() AvailabilitySignalType {
if x != nil {
return x.SignalType
}
return AvailabilitySignalType_AVAILABILITY_SIGNAL_TYPE_UNSPECIFIED
}
func (x *AvailabilityFilter) GetRange() *TimestampRange {
if x != nil {
return x.Range
}
return nil
}
func (x *AvailabilityFilter) GetRequired() bool {
if x != nil {
return x.Required
}
return false
}
// Filter on person name.
type PersonNameFilter struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Required. The person name. For example, "John Smith".
//
// Can be any combination of [PersonName.structured_name.given_name][],
// [PersonName.structured_name.middle_initial][],
// [PersonName.structured_name.family_name][], and
// [PersonName.formatted_name][google.cloud.talent.v4beta1.PersonName.formatted_name].
PersonName string `protobuf:"bytes,1,opt,name=person_name,json=personName,proto3" json:"person_name,omitempty"`
}
func (x *PersonNameFilter) Reset() {
*x = PersonNameFilter{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_talent_v4beta1_filters_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PersonNameFilter) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PersonNameFilter) ProtoMessage() {}
func (x *PersonNameFilter) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_talent_v4beta1_filters_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 PersonNameFilter.ProtoReflect.Descriptor instead.
func (*PersonNameFilter) Descriptor() ([]byte, []int) {
return file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP(), []int{16}
}
func (x *PersonNameFilter) GetPersonName() string {
if x != nil {
return x.PersonName
}
return ""
}
var File_google_cloud_talent_v4beta1_filters_proto protoreflect.FileDescriptor
var file_google_cloud_talent_v4beta1_filters_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, 0x66, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x73, 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, 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, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 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, 0x18,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6c, 0x61, 0x74, 0x6c,
0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x66, 0x64, 0x61, 0x79, 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, 0xe7, 0x06, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x72, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x2e, 0x0a, 0x13, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f,
0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x09, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61,
0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x61,
0x6e, 0x69, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
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, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6c, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4f, 0x0a, 0x0e,
0x6a, 0x6f, 0x62, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04,
0x20, 0x03, 0x28, 0x0e, 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, 0x4a, 0x6f, 0x62, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0d,
0x6a, 0x6f, 0x62, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x51, 0x0a,
0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18,
0x05, 0x20, 0x01, 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, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x12, 0x32, 0x0a, 0x15, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x70,
0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52,
0x13, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e, 0x79, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e,
0x61, 0x6d, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 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,
0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41,
0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2e,
0x0a, 0x13, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x6c, 0x6c, 0x5f,
0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73,
0x61, 0x62, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x6c, 0x6c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x56,
0x0a, 0x10, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70,
0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2b, 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, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e,
0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61,
0x67, 0x65, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d,
0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x59, 0x0a,
0x12, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61,
0x6e, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x54,
0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x6c,
0x75, 0x64, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52,
0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xae, 0x0b,
0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71,
0x75, 0x65, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b,
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, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6c, 0x6f, 0x63,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x57, 0x0a, 0x11,
0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 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, 0x4a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x6a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x56, 0x0a, 0x10, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65,
0x72, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32,
0x2b, 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, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0f, 0x65, 0x6d,
0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x59, 0x0a,
0x11, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x73, 0x18, 0x05, 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,
0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x10, 0x65, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, 0x0d, 0x73, 0x6b, 0x69, 0x6c,
0x6c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 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, 0x53, 0x6b,
0x69, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0c, 0x73, 0x6b, 0x69, 0x6c, 0x6c,
0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x67, 0x0a, 0x16, 0x77, 0x6f, 0x72, 0x6b, 0x5f,
0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x57, 0x6f, 0x72, 0x6b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69,
0x65, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x14, 0x77, 0x6f, 0x72, 0x6b,
0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x12, 0x4a, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
0x18, 0x08, 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, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52,
0x0b, 0x74, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x0e,
0x68, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x0d, 0x68, 0x69, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
0x6c, 0x0a, 0x18, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
0x61, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0a, 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, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x46,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x85, 0x01,
0x0a, 0x21, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x75,
0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x73, 0x18, 0x0b, 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, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x1e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x69, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 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, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x4a, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73,
0x12, 0x36, 0x0a, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69,
0x62, 0x75, 0x74, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28,
0x09, 0x52, 0x15, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75,
0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x1d, 0x63, 0x61, 0x6e,
0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c,
0x69, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x38, 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,
0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69,
0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x02, 0x18, 0x01, 0x52, 0x1b,
0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62,
0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x62, 0x0a, 0x14, 0x61,
0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x66, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x73, 0x18, 0x12, 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, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x13, 0x61, 0x76, 0x61, 0x69,
0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12,
0x5d, 0x0a, 0x13, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66,
0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x50, 0x65, 0x72, 0x73, 0x6f,
0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x11, 0x70, 0x65, 0x72,
0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xad,
0x03, 0x0a, 0x0e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72,
0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0a, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x07,
0x6c, 0x61, 0x74, 0x5f, 0x6c, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x4c, 0x61, 0x74, 0x4c,
0x6e, 0x67, 0x52, 0x06, 0x6c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x69,
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x18,
0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49,
0x6e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x78, 0x0a, 0x16, 0x74, 0x65, 0x6c, 0x65, 0x63, 0x6f,
0x6d, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 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, 0x46, 0x69, 0x6c,
0x74, 0x65, 0x72, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x50,
0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x15, 0x74, 0x65, 0x6c, 0x65, 0x63,
0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x72, 0x0a, 0x15, 0x54, 0x65,
0x6c, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
0x6e, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x54, 0x45, 0x4c, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x55,
0x54, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45, 0x5f, 0x55, 0x4e,
0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x54,
0x45, 0x4c, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x55, 0x54, 0x45, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55,
0x44, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x45, 0x4c, 0x45, 0x43, 0x4f, 0x4d,
0x4d, 0x55, 0x54, 0x45, 0x5f, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x02, 0x22, 0x8b,
0x04, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x53, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0e, 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, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42,
0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x59, 0x0a, 0x05, 0x75, 0x6e,
0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x3e, 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, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05,
0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x55, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 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, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
0x6e, 0x66, 0x6f, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x65, 0x0a, 0x30,
0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x5f, 0x77, 0x69, 0x74,
0x68, 0x5f, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x63, 0x6f,
0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x2b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4a,
0x6f, 0x62, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
0x65, 0x64, 0x43, 0x6f, 0x6d, 0x70, 0x65, 0x6e, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61,
0x6e, 0x67, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x54, 0x79,
0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50,
0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x13,
0x0a, 0x0f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x41, 0x4d, 0x4f, 0x55, 0x4e,
0x54, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4e, 0x4e, 0x55, 0x41, 0x4c, 0x49, 0x5a, 0x45,
0x44, 0x5f, 0x42, 0x41, 0x53, 0x45, 0x5f, 0x41, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x03, 0x12,
0x1b, 0x0a, 0x17, 0x41, 0x4e, 0x4e, 0x55, 0x41, 0x4c, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x54, 0x4f,
0x54, 0x41, 0x4c, 0x5f, 0x41, 0x4d, 0x4f, 0x55, 0x4e, 0x54, 0x10, 0x04, 0x22, 0xb1, 0x04, 0x0a,
0x0d, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x56,
0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64,
0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 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, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x68,
0x6f, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x74, 0x65,
0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f,
0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0b, 0x32, 0x13, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e,
0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x73, 0x74, 0x61,
0x72, 0x74, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x47, 0x0a,
0x0f, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x76, 0x65, 0x6c, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f,
0x69, 0x6d, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77,
0x49, 0x6d, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73,
0x65, 0x73, 0x12, 0x5b, 0x0a, 0x0c, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66,
0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 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, 0x6d, 0x6d, 0x75, 0x74, 0x65, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x2e, 0x52, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63,
0x48, 0x00, 0x52, 0x0b, 0x72, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12,
0x3f, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x48,
0x00, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65,
0x22, 0x4c, 0x0a, 0x0b, 0x52, 0x6f, 0x61, 0x64, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12,
0x1c, 0x0a, 0x18, 0x52, 0x4f, 0x41, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f,
0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a,
0x0c, 0x54, 0x52, 0x41, 0x46, 0x46, 0x49, 0x43, 0x5f, 0x46, 0x52, 0x45, 0x45, 0x10, 0x01, 0x12,
0x0d, 0x0a, 0x09, 0x42, 0x55, 0x53, 0x59, 0x5f, 0x48, 0x4f, 0x55, 0x52, 0x10, 0x02, 0x42, 0x10,
0x0a, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x22, 0x4c, 0x0a, 0x0e, 0x4a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x74,
0x65, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x54,
0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18,
0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x42,
0x0a, 0x0b, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a,
0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61,
0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74,
0x65, 0x64, 0x22, 0xbf, 0x02, 0x0a, 0x0e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x46,
0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x65, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65,
0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x65, 0x6d,
0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x12, 0x52, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 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, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x2e, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65,
0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x67,
0x61, 0x74, 0x65, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x12, 0x45, 0x6d, 0x70, 0x6c, 0x6f, 0x79, 0x65,
0x72, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x24, 0x0a, 0x20, 0x45,
0x4d, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x52, 0x5f, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x4d,
0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
0x00, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x4c, 0x4c, 0x5f, 0x45, 0x4d, 0x50, 0x4c, 0x4f, 0x59, 0x4d,
0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x53, 0x10, 0x01, 0x12, 0x23, 0x0a,
0x1f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x54, 0x5f, 0x45, 0x4d, 0x50, 0x4c, 0x4f, 0x59, 0x4d,
0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, 0x59,
0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x41, 0x53, 0x54, 0x5f, 0x45, 0x4d, 0x50, 0x4c, 0x4f,
0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x52, 0x44, 0x53, 0x5f, 0x4f, 0x4e,
0x4c, 0x59, 0x10, 0x03, 0x22, 0xb3, 0x01, 0x0a, 0x0f, 0x45, 0x64, 0x75, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x6f,
0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c,
0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x75,
0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4f,
0x66, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x48, 0x0a, 0x0b, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65,
0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 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, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x14, 0x57,
0x6f, 0x72, 0x6b, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c,
0x74, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x72,
0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75,
0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x69, 0x6e, 0x45, 0x78, 0x70, 0x65, 0x72,
0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x78, 0x70,
0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x45, 0x78, 0x70,
0x65, 0x72, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x22, 0x77, 0x0a, 0x15, 0x41, 0x70, 0x70, 0x6c, 0x69,
0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
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,
0x22, 0x63, 0x0a, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f,
0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x12, 0x28, 0x0a, 0x0d, 0x6f, 0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x5f, 0x6e, 0x6f, 0x74,
0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6f,
0x75, 0x74, 0x63, 0x6f, 0x6d, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6e,
0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65,
0x67, 0x61, 0x74, 0x65, 0x64, 0x22, 0x7b, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x6f, 0x62, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a,
0x12, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6a, 0x6f, 0x62, 0x52, 0x65,
0x71, 0x75, 0x69, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6a,
0x6f, 0x62, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
0x6a, 0x6f, 0x62, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61,
0x74, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74,
0x65, 0x64, 0x22, 0x9b, 0x02, 0x0a, 0x0a, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65,
0x72, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x01, 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, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08,
0x65, 0x6e, 0x64, 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, 0x07, 0x65, 0x6e, 0x64, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c,
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 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, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72,
0x2e, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65,
0x46, 0x69, 0x65, 0x6c, 0x64, 0x22, 0x49, 0x0a, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x69, 0x65,
0x6c, 0x64, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x49, 0x4d, 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44,
0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f,
0x0a, 0x0b, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12,
0x0f, 0x0a, 0x0b, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02,
0x22, 0x3b, 0x0a, 0x1b, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61,
0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12,
0x18, 0x0a, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x07, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xd3, 0x01,
0x0a, 0x12, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69,
0x6c, 0x74, 0x65, 0x72, 0x12, 0x59, 0x0a, 0x0b, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 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, 0x42, 0x03,
0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12,
0x46, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b,
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, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02,
0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69,
0x72, 0x65, 0x64, 0x22, 0x38, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d,
0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x73, 0x6f,
0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
0x02, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x7a, 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, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 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_filters_proto_rawDescOnce sync.Once
file_google_cloud_talent_v4beta1_filters_proto_rawDescData = file_google_cloud_talent_v4beta1_filters_proto_rawDesc
)
func file_google_cloud_talent_v4beta1_filters_proto_rawDescGZIP() []byte {
file_google_cloud_talent_v4beta1_filters_proto_rawDescOnce.Do(func() {
file_google_cloud_talent_v4beta1_filters_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_talent_v4beta1_filters_proto_rawDescData)
})
return file_google_cloud_talent_v4beta1_filters_proto_rawDescData
}
var file_google_cloud_talent_v4beta1_filters_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
var file_google_cloud_talent_v4beta1_filters_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_google_cloud_talent_v4beta1_filters_proto_goTypes = []interface{}{
(LocationFilter_TelecommutePreference)(0), // 0: google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference
(CompensationFilter_FilterType)(0), // 1: google.cloud.talent.v4beta1.CompensationFilter.FilterType
(CommuteFilter_RoadTraffic)(0), // 2: google.cloud.talent.v4beta1.CommuteFilter.RoadTraffic
(EmployerFilter_EmployerFilterMode)(0), // 3: google.cloud.talent.v4beta1.EmployerFilter.EmployerFilterMode
(TimeFilter_TimeField)(0), // 4: google.cloud.talent.v4beta1.TimeFilter.TimeField
(*JobQuery)(nil), // 5: google.cloud.talent.v4beta1.JobQuery
(*ProfileQuery)(nil), // 6: google.cloud.talent.v4beta1.ProfileQuery
(*LocationFilter)(nil), // 7: google.cloud.talent.v4beta1.LocationFilter
(*CompensationFilter)(nil), // 8: google.cloud.talent.v4beta1.CompensationFilter
(*CommuteFilter)(nil), // 9: google.cloud.talent.v4beta1.CommuteFilter
(*JobTitleFilter)(nil), // 10: google.cloud.talent.v4beta1.JobTitleFilter
(*SkillFilter)(nil), // 11: google.cloud.talent.v4beta1.SkillFilter
(*EmployerFilter)(nil), // 12: google.cloud.talent.v4beta1.EmployerFilter
(*EducationFilter)(nil), // 13: google.cloud.talent.v4beta1.EducationFilter
(*WorkExperienceFilter)(nil), // 14: google.cloud.talent.v4beta1.WorkExperienceFilter
(*ApplicationDateFilter)(nil), // 15: google.cloud.talent.v4beta1.ApplicationDateFilter
(*ApplicationOutcomeNotesFilter)(nil), // 16: google.cloud.talent.v4beta1.ApplicationOutcomeNotesFilter
(*ApplicationJobFilter)(nil), // 17: google.cloud.talent.v4beta1.ApplicationJobFilter
(*TimeFilter)(nil), // 18: google.cloud.talent.v4beta1.TimeFilter
(*CandidateAvailabilityFilter)(nil), // 19: google.cloud.talent.v4beta1.CandidateAvailabilityFilter
(*AvailabilityFilter)(nil), // 20: google.cloud.talent.v4beta1.AvailabilityFilter
(*PersonNameFilter)(nil), // 21: google.cloud.talent.v4beta1.PersonNameFilter
(JobCategory)(0), // 22: google.cloud.talent.v4beta1.JobCategory
(EmploymentType)(0), // 23: google.cloud.talent.v4beta1.EmploymentType
(*TimestampRange)(nil), // 24: google.cloud.talent.v4beta1.TimestampRange
(*wrappers.BoolValue)(nil), // 25: google.protobuf.BoolValue
(*latlng.LatLng)(nil), // 26: google.type.LatLng
(CompensationInfo_CompensationUnit)(0), // 27: google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit
(*CompensationInfo_CompensationRange)(nil), // 28: google.cloud.talent.v4beta1.CompensationInfo.CompensationRange
(CommuteMethod)(0), // 29: google.cloud.talent.v4beta1.CommuteMethod
(*duration.Duration)(nil), // 30: google.protobuf.Duration
(*timeofday.TimeOfDay)(nil), // 31: google.type.TimeOfDay
(DegreeType)(0), // 32: google.cloud.talent.v4beta1.DegreeType
(*date.Date)(nil), // 33: google.type.Date
(*timestamp.Timestamp)(nil), // 34: google.protobuf.Timestamp
(AvailabilitySignalType)(0), // 35: google.cloud.talent.v4beta1.AvailabilitySignalType
}
var file_google_cloud_talent_v4beta1_filters_proto_depIdxs = []int32{
7, // 0: google.cloud.talent.v4beta1.JobQuery.location_filters:type_name -> google.cloud.talent.v4beta1.LocationFilter
22, // 1: google.cloud.talent.v4beta1.JobQuery.job_categories:type_name -> google.cloud.talent.v4beta1.JobCategory
9, // 2: google.cloud.talent.v4beta1.JobQuery.commute_filter:type_name -> google.cloud.talent.v4beta1.CommuteFilter
8, // 3: google.cloud.talent.v4beta1.JobQuery.compensation_filter:type_name -> google.cloud.talent.v4beta1.CompensationFilter
23, // 4: google.cloud.talent.v4beta1.JobQuery.employment_types:type_name -> google.cloud.talent.v4beta1.EmploymentType
24, // 5: google.cloud.talent.v4beta1.JobQuery.publish_time_range:type_name -> google.cloud.talent.v4beta1.TimestampRange
7, // 6: google.cloud.talent.v4beta1.ProfileQuery.location_filters:type_name -> google.cloud.talent.v4beta1.LocationFilter
10, // 7: google.cloud.talent.v4beta1.ProfileQuery.job_title_filters:type_name -> google.cloud.talent.v4beta1.JobTitleFilter
12, // 8: google.cloud.talent.v4beta1.ProfileQuery.employer_filters:type_name -> google.cloud.talent.v4beta1.EmployerFilter
13, // 9: google.cloud.talent.v4beta1.ProfileQuery.education_filters:type_name -> google.cloud.talent.v4beta1.EducationFilter
11, // 10: google.cloud.talent.v4beta1.ProfileQuery.skill_filters:type_name -> google.cloud.talent.v4beta1.SkillFilter
14, // 11: google.cloud.talent.v4beta1.ProfileQuery.work_experience_filter:type_name -> google.cloud.talent.v4beta1.WorkExperienceFilter
18, // 12: google.cloud.talent.v4beta1.ProfileQuery.time_filters:type_name -> google.cloud.talent.v4beta1.TimeFilter
25, // 13: google.cloud.talent.v4beta1.ProfileQuery.hirable_filter:type_name -> google.protobuf.BoolValue
15, // 14: google.cloud.talent.v4beta1.ProfileQuery.application_date_filters:type_name -> google.cloud.talent.v4beta1.ApplicationDateFilter
16, // 15: google.cloud.talent.v4beta1.ProfileQuery.application_outcome_notes_filters:type_name -> google.cloud.talent.v4beta1.ApplicationOutcomeNotesFilter
17, // 16: google.cloud.talent.v4beta1.ProfileQuery.application_job_filters:type_name -> google.cloud.talent.v4beta1.ApplicationJobFilter
19, // 17: google.cloud.talent.v4beta1.ProfileQuery.candidate_availability_filter:type_name -> google.cloud.talent.v4beta1.CandidateAvailabilityFilter
20, // 18: google.cloud.talent.v4beta1.ProfileQuery.availability_filters:type_name -> google.cloud.talent.v4beta1.AvailabilityFilter
21, // 19: google.cloud.talent.v4beta1.ProfileQuery.person_name_filters:type_name -> google.cloud.talent.v4beta1.PersonNameFilter
26, // 20: google.cloud.talent.v4beta1.LocationFilter.lat_lng:type_name -> google.type.LatLng
0, // 21: google.cloud.talent.v4beta1.LocationFilter.telecommute_preference:type_name -> google.cloud.talent.v4beta1.LocationFilter.TelecommutePreference
1, // 22: google.cloud.talent.v4beta1.CompensationFilter.type:type_name -> google.cloud.talent.v4beta1.CompensationFilter.FilterType
27, // 23: google.cloud.talent.v4beta1.CompensationFilter.units:type_name -> google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit
28, // 24: google.cloud.talent.v4beta1.CompensationFilter.range:type_name -> google.cloud.talent.v4beta1.CompensationInfo.CompensationRange
29, // 25: google.cloud.talent.v4beta1.CommuteFilter.commute_method:type_name -> google.cloud.talent.v4beta1.CommuteMethod
26, // 26: google.cloud.talent.v4beta1.CommuteFilter.start_coordinates:type_name -> google.type.LatLng
30, // 27: google.cloud.talent.v4beta1.CommuteFilter.travel_duration:type_name -> google.protobuf.Duration
2, // 28: google.cloud.talent.v4beta1.CommuteFilter.road_traffic:type_name -> google.cloud.talent.v4beta1.CommuteFilter.RoadTraffic
31, // 29: google.cloud.talent.v4beta1.CommuteFilter.departure_time:type_name -> google.type.TimeOfDay
3, // 30: google.cloud.talent.v4beta1.EmployerFilter.mode:type_name -> google.cloud.talent.v4beta1.EmployerFilter.EmployerFilterMode
32, // 31: google.cloud.talent.v4beta1.EducationFilter.degree_type:type_name -> google.cloud.talent.v4beta1.DegreeType
30, // 32: google.cloud.talent.v4beta1.WorkExperienceFilter.min_experience:type_name -> google.protobuf.Duration
30, // 33: google.cloud.talent.v4beta1.WorkExperienceFilter.max_experience:type_name -> google.protobuf.Duration
33, // 34: google.cloud.talent.v4beta1.ApplicationDateFilter.start_date:type_name -> google.type.Date
33, // 35: google.cloud.talent.v4beta1.ApplicationDateFilter.end_date:type_name -> google.type.Date
34, // 36: google.cloud.talent.v4beta1.TimeFilter.start_time:type_name -> google.protobuf.Timestamp
34, // 37: google.cloud.talent.v4beta1.TimeFilter.end_time:type_name -> google.protobuf.Timestamp
4, // 38: google.cloud.talent.v4beta1.TimeFilter.time_field:type_name -> google.cloud.talent.v4beta1.TimeFilter.TimeField
35, // 39: google.cloud.talent.v4beta1.AvailabilityFilter.signal_type:type_name -> google.cloud.talent.v4beta1.AvailabilitySignalType
24, // 40: google.cloud.talent.v4beta1.AvailabilityFilter.range:type_name -> google.cloud.talent.v4beta1.TimestampRange
41, // [41:41] is the sub-list for method output_type
41, // [41:41] is the sub-list for method input_type
41, // [41:41] is the sub-list for extension type_name
41, // [41:41] is the sub-list for extension extendee
0, // [0:41] is the sub-list for field type_name
}
func init() { file_google_cloud_talent_v4beta1_filters_proto_init() }
func file_google_cloud_talent_v4beta1_filters_proto_init() {
if File_google_cloud_talent_v4beta1_filters_proto != nil {
return
}
file_google_cloud_talent_v4beta1_common_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JobQuery); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ProfileQuery); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*LocationFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CompensationFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CommuteFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*JobTitleFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*SkillFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmployerFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EducationFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*WorkExperienceFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApplicationDateFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApplicationOutcomeNotesFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*ApplicationJobFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*TimeFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*CandidateAvailabilityFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*AvailabilityFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PersonNameFilter); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_talent_v4beta1_filters_proto_msgTypes[4].OneofWrappers = []interface{}{
(*CommuteFilter_RoadTraffic_)(nil),
(*CommuteFilter_DepartureTime)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_talent_v4beta1_filters_proto_rawDesc,
NumEnums: 5,
NumMessages: 17,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_talent_v4beta1_filters_proto_goTypes,
DependencyIndexes: file_google_cloud_talent_v4beta1_filters_proto_depIdxs,
EnumInfos: file_google_cloud_talent_v4beta1_filters_proto_enumTypes,
MessageInfos: file_google_cloud_talent_v4beta1_filters_proto_msgTypes,
}.Build()
File_google_cloud_talent_v4beta1_filters_proto = out.File
file_google_cloud_talent_v4beta1_filters_proto_rawDesc = nil
file_google_cloud_talent_v4beta1_filters_proto_goTypes = nil
file_google_cloud_talent_v4beta1_filters_proto_depIdxs = nil
}