common.proto 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870
  1. // Copyright 2022 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.talent.v4;
  16. import "google/api/field_behavior.proto";
  17. import "google/protobuf/timestamp.proto";
  18. import "google/protobuf/wrappers.proto";
  19. import "google/type/latlng.proto";
  20. import "google/type/money.proto";
  21. import "google/type/postal_address.proto";
  22. option go_package = "google.golang.org/genproto/googleapis/cloud/talent/v4;talent";
  23. option java_multiple_files = true;
  24. option java_outer_classname = "CommonProto";
  25. option java_package = "com.google.cloud.talent.v4";
  26. option objc_class_prefix = "CTS";
  27. // Message representing a period of time between two timestamps.
  28. message TimestampRange {
  29. // Begin of the period (inclusive).
  30. google.protobuf.Timestamp start_time = 1;
  31. // End of the period (exclusive).
  32. google.protobuf.Timestamp end_time = 2;
  33. }
  34. // An enum that represents the size of the company.
  35. enum CompanySize {
  36. // Default value if the size isn't specified.
  37. COMPANY_SIZE_UNSPECIFIED = 0;
  38. // The company has less than 50 employees.
  39. MINI = 1;
  40. // The company has between 50 and 99 employees.
  41. SMALL = 2;
  42. // The company has between 100 and 499 employees.
  43. SMEDIUM = 3;
  44. // The company has between 500 and 999 employees.
  45. MEDIUM = 4;
  46. // The company has between 1,000 and 4,999 employees.
  47. BIG = 5;
  48. // The company has between 5,000 and 9,999 employees.
  49. BIGGER = 6;
  50. // The company has 10,000 or more employees.
  51. GIANT = 7;
  52. }
  53. // An enum that represents employee benefits included with the job.
  54. enum JobBenefit {
  55. // Default value if the type isn't specified.
  56. JOB_BENEFIT_UNSPECIFIED = 0;
  57. // The job includes access to programs that support child care, such
  58. // as daycare.
  59. CHILD_CARE = 1;
  60. // The job includes dental services covered by a dental
  61. // insurance plan.
  62. DENTAL = 2;
  63. // The job offers specific benefits to domestic partners.
  64. DOMESTIC_PARTNER = 3;
  65. // The job allows for a flexible work schedule.
  66. FLEXIBLE_HOURS = 4;
  67. // The job includes health services covered by a medical insurance plan.
  68. MEDICAL = 5;
  69. // The job includes a life insurance plan provided by the employer or
  70. // available for purchase by the employee.
  71. LIFE_INSURANCE = 6;
  72. // The job allows for a leave of absence to a parent to care for a newborn
  73. // child.
  74. PARENTAL_LEAVE = 7;
  75. // The job includes a workplace retirement plan provided by the
  76. // employer or available for purchase by the employee.
  77. RETIREMENT_PLAN = 8;
  78. // The job allows for paid time off due to illness.
  79. SICK_DAYS = 9;
  80. // The job includes paid time off for vacation.
  81. VACATION = 10;
  82. // The job includes vision services covered by a vision
  83. // insurance plan.
  84. VISION = 11;
  85. }
  86. // Educational degree level defined in International Standard Classification
  87. // of Education (ISCED).
  88. enum DegreeType {
  89. // Default value. Represents no degree, or early childhood education.
  90. // Maps to ISCED code 0.
  91. // Ex) Kindergarten
  92. DEGREE_TYPE_UNSPECIFIED = 0;
  93. // Primary education which is typically the first stage of compulsory
  94. // education. ISCED code 1.
  95. // Ex) Elementary school
  96. PRIMARY_EDUCATION = 1;
  97. // Lower secondary education; First stage of secondary education building on
  98. // primary education, typically with a more subject-oriented curriculum.
  99. // ISCED code 2.
  100. // Ex) Middle school
  101. LOWER_SECONDARY_EDUCATION = 2;
  102. // Middle education; Second/final stage of secondary education preparing for
  103. // tertiary education and/or providing skills relevant to employment.
  104. // Usually with an increased range of subject options and streams. ISCED
  105. // code 3.
  106. // Ex) High school
  107. UPPER_SECONDARY_EDUCATION = 3;
  108. // Adult Remedial Education; Programmes providing learning experiences that
  109. // build on secondary education and prepare for labour market entry and/or
  110. // tertiary education. The content is broader than secondary but not as
  111. // complex as tertiary education. ISCED code 4.
  112. ADULT_REMEDIAL_EDUCATION = 4;
  113. // Associate's or equivalent; Short first tertiary programmes that are
  114. // typically practically-based, occupationally-specific and prepare for
  115. // labour market entry. These programmes may also provide a pathway to other
  116. // tertiary programmes. ISCED code 5.
  117. ASSOCIATES_OR_EQUIVALENT = 5;
  118. // Bachelor's or equivalent; Programmes designed to provide intermediate
  119. // academic and/or professional knowledge, skills and competencies leading
  120. // to a first tertiary degree or equivalent qualification. ISCED code 6.
  121. BACHELORS_OR_EQUIVALENT = 6;
  122. // Master's or equivalent; Programmes designed to provide advanced academic
  123. // and/or professional knowledge, skills and competencies leading to a
  124. // second tertiary degree or equivalent qualification. ISCED code 7.
  125. MASTERS_OR_EQUIVALENT = 7;
  126. // Doctoral or equivalent; Programmes designed primarily to lead to an
  127. // advanced research qualification, usually concluding with the submission
  128. // and defense of a substantive dissertation of publishable quality based on
  129. // original research. ISCED code 8.
  130. DOCTORAL_OR_EQUIVALENT = 8;
  131. }
  132. // An enum that represents the employment type of a job.
  133. enum EmploymentType {
  134. // The default value if the employment type isn't specified.
  135. EMPLOYMENT_TYPE_UNSPECIFIED = 0;
  136. // The job requires working a number of hours that constitute full
  137. // time employment, typically 40 or more hours per week.
  138. FULL_TIME = 1;
  139. // The job entails working fewer hours than a full time job,
  140. // typically less than 40 hours a week.
  141. PART_TIME = 2;
  142. // The job is offered as a contracted, as opposed to a salaried employee,
  143. // position.
  144. CONTRACTOR = 3;
  145. // The job is offered as a contracted position with the understanding
  146. // that it's converted into a full-time position at the end of the
  147. // contract. Jobs of this type are also returned by a search for
  148. // [EmploymentType.CONTRACTOR][google.cloud.talent.v4.EmploymentType.CONTRACTOR] jobs.
  149. CONTRACT_TO_HIRE = 4;
  150. // The job is offered as a temporary employment opportunity, usually
  151. // a short-term engagement.
  152. TEMPORARY = 5;
  153. // The job is a fixed-term opportunity for students or entry-level job
  154. // seekers to obtain on-the-job training, typically offered as a summer
  155. // position.
  156. INTERN = 6;
  157. // The is an opportunity for an individual to volunteer, where there's no
  158. // expectation of compensation for the provided services.
  159. VOLUNTEER = 7;
  160. // The job requires an employee to work on an as-needed basis with a
  161. // flexible schedule.
  162. PER_DIEM = 8;
  163. // The job involves employing people in remote areas and flying them
  164. // temporarily to the work site instead of relocating employees and their
  165. // families permanently.
  166. FLY_IN_FLY_OUT = 9;
  167. // The job does not fit any of the other listed types.
  168. OTHER_EMPLOYMENT_TYPE = 10;
  169. }
  170. // An enum that represents the required experience level required for the job.
  171. enum JobLevel {
  172. // The default value if the level isn't specified.
  173. JOB_LEVEL_UNSPECIFIED = 0;
  174. // Entry-level individual contributors, typically with less than 2 years of
  175. // experience in a similar role. Includes interns.
  176. ENTRY_LEVEL = 1;
  177. // Experienced individual contributors, typically with 2+ years of
  178. // experience in a similar role.
  179. EXPERIENCED = 2;
  180. // Entry- to mid-level managers responsible for managing a team of people.
  181. MANAGER = 3;
  182. // Senior-level managers responsible for managing teams of managers.
  183. DIRECTOR = 4;
  184. // Executive-level managers and above, including C-level positions.
  185. EXECUTIVE = 5;
  186. }
  187. // An enum that represents the categorization or primary focus of specific
  188. // role. This value is different than the "industry" associated with a role,
  189. // which is related to the categorization of the company listing the job.
  190. enum JobCategory {
  191. // The default value if the category isn't specified.
  192. JOB_CATEGORY_UNSPECIFIED = 0;
  193. // An accounting and finance job, such as an Accountant.
  194. ACCOUNTING_AND_FINANCE = 1;
  195. // An administrative and office job, such as an Administrative Assistant.
  196. ADMINISTRATIVE_AND_OFFICE = 2;
  197. // An advertising and marketing job, such as Marketing Manager.
  198. ADVERTISING_AND_MARKETING = 3;
  199. // An animal care job, such as Veterinarian.
  200. ANIMAL_CARE = 4;
  201. // An art, fashion, or design job, such as Designer.
  202. ART_FASHION_AND_DESIGN = 5;
  203. // A business operations job, such as Business Operations Manager.
  204. BUSINESS_OPERATIONS = 6;
  205. // A cleaning and facilities job, such as Custodial Staff.
  206. CLEANING_AND_FACILITIES = 7;
  207. // A computer and IT job, such as Systems Administrator.
  208. COMPUTER_AND_IT = 8;
  209. // A construction job, such as General Laborer.
  210. CONSTRUCTION = 9;
  211. // A customer service job, such s Cashier.
  212. CUSTOMER_SERVICE = 10;
  213. // An education job, such as School Teacher.
  214. EDUCATION = 11;
  215. // An entertainment and travel job, such as Flight Attendant.
  216. ENTERTAINMENT_AND_TRAVEL = 12;
  217. // A farming or outdoor job, such as Park Ranger.
  218. FARMING_AND_OUTDOORS = 13;
  219. // A healthcare job, such as Registered Nurse.
  220. HEALTHCARE = 14;
  221. // A human resources job, such as Human Resources Director.
  222. HUMAN_RESOURCES = 15;
  223. // An installation, maintenance, or repair job, such as Electrician.
  224. INSTALLATION_MAINTENANCE_AND_REPAIR = 16;
  225. // A legal job, such as Law Clerk.
  226. LEGAL = 17;
  227. // A management job, often used in conjunction with another category,
  228. // such as Store Manager.
  229. MANAGEMENT = 18;
  230. // A manufacturing or warehouse job, such as Assembly Technician.
  231. MANUFACTURING_AND_WAREHOUSE = 19;
  232. // A media, communications, or writing job, such as Media Relations.
  233. MEDIA_COMMUNICATIONS_AND_WRITING = 20;
  234. // An oil, gas or mining job, such as Offshore Driller.
  235. OIL_GAS_AND_MINING = 21;
  236. // A personal care and services job, such as Hair Stylist.
  237. PERSONAL_CARE_AND_SERVICES = 22;
  238. // A protective services job, such as Security Guard.
  239. PROTECTIVE_SERVICES = 23;
  240. // A real estate job, such as Buyer's Agent.
  241. REAL_ESTATE = 24;
  242. // A restaurant and hospitality job, such as Restaurant Server.
  243. RESTAURANT_AND_HOSPITALITY = 25;
  244. // A sales and/or retail job, such Sales Associate.
  245. SALES_AND_RETAIL = 26;
  246. // A science and engineering job, such as Lab Technician.
  247. SCIENCE_AND_ENGINEERING = 27;
  248. // A social services or non-profit job, such as Case Worker.
  249. SOCIAL_SERVICES_AND_NON_PROFIT = 28;
  250. // A sports, fitness, or recreation job, such as Personal Trainer.
  251. SPORTS_FITNESS_AND_RECREATION = 29;
  252. // A transportation or logistics job, such as Truck Driver.
  253. TRANSPORTATION_AND_LOGISTICS = 30;
  254. }
  255. // An enum that represents the job posting region. In most cases, job postings
  256. // don't need to specify a region. If a region is given, jobs are
  257. // eligible for searches in the specified region.
  258. enum PostingRegion {
  259. // If the region is unspecified, the job is only returned if it
  260. // matches the [LocationFilter][google.cloud.talent.v4.LocationFilter].
  261. POSTING_REGION_UNSPECIFIED = 0;
  262. // In addition to exact location matching, job posting is returned when the
  263. // [LocationFilter][google.cloud.talent.v4.LocationFilter] in the search query is in the same administrative area
  264. // as the returned job posting. For example, if a `ADMINISTRATIVE_AREA` job
  265. // is posted in "CA, USA", it's returned if [LocationFilter][google.cloud.talent.v4.LocationFilter] has
  266. // "Mountain View".
  267. //
  268. // Administrative area refers to top-level administrative subdivision of this
  269. // country. For example, US state, IT region, UK constituent nation and
  270. // JP prefecture.
  271. ADMINISTRATIVE_AREA = 1;
  272. // In addition to exact location matching, job is returned when
  273. // [LocationFilter][google.cloud.talent.v4.LocationFilter] in search query is in the same country as this job.
  274. // For example, if a `NATION_WIDE` job is posted in "USA", it's
  275. // returned if [LocationFilter][google.cloud.talent.v4.LocationFilter] has 'Mountain View'.
  276. NATION = 2;
  277. // Job allows employees to work remotely (telecommute).
  278. // If locations are provided with this value, the job is
  279. // considered as having a location, but telecommuting is allowed.
  280. TELECOMMUTE = 3;
  281. }
  282. // Deprecated. All resources are only visible to the owner.
  283. //
  284. // An enum that represents who has view access to the resource.
  285. enum Visibility {
  286. option deprecated = true;
  287. // Default value.
  288. VISIBILITY_UNSPECIFIED = 0;
  289. // The resource is only visible to the GCP account who owns it.
  290. ACCOUNT_ONLY = 1;
  291. // The resource is visible to the owner and may be visible to other
  292. // applications and processes at Google.
  293. SHARED_WITH_GOOGLE = 2;
  294. // The resource is visible to the owner and may be visible to all other API
  295. // clients.
  296. SHARED_WITH_PUBLIC = 3;
  297. }
  298. // Option for HTML content sanitization on user input fields, for example, job
  299. // description. By setting this option, user can determine whether and how
  300. // sanitization is performed on these fields.
  301. enum HtmlSanitization {
  302. // Default value.
  303. HTML_SANITIZATION_UNSPECIFIED = 0;
  304. // Disables sanitization on HTML input.
  305. HTML_SANITIZATION_DISABLED = 1;
  306. // Sanitizes HTML input, only accepts bold, italic, ordered list, and
  307. // unordered list markup tags.
  308. SIMPLE_FORMATTING_ONLY = 2;
  309. }
  310. // Method for commute. Walking, biking and wheelchair accessible transit is
  311. // still in the Preview stage.
  312. enum CommuteMethod {
  313. // Commute method isn't specified.
  314. COMMUTE_METHOD_UNSPECIFIED = 0;
  315. // Commute time is calculated based on driving time.
  316. DRIVING = 1;
  317. // Commute time is calculated based on public transit including bus, metro,
  318. // subway, and so on.
  319. TRANSIT = 2;
  320. // Commute time is calculated based on walking time.
  321. WALKING = 3;
  322. // Commute time is calculated based on biking time.
  323. CYCLING = 4;
  324. // Commute time is calculated based on public transit that is wheelchair
  325. // accessible.
  326. TRANSIT_ACCESSIBLE = 5;
  327. }
  328. // A resource that represents a location with full geographic information.
  329. message Location {
  330. // An enum which represents the type of a location.
  331. enum LocationType {
  332. // Default value if the type isn't specified.
  333. LOCATION_TYPE_UNSPECIFIED = 0;
  334. // A country level location.
  335. COUNTRY = 1;
  336. // A state or equivalent level location.
  337. ADMINISTRATIVE_AREA = 2;
  338. // A county or equivalent level location.
  339. SUB_ADMINISTRATIVE_AREA = 3;
  340. // A city or equivalent level location.
  341. LOCALITY = 4;
  342. // A postal code level location.
  343. POSTAL_CODE = 5;
  344. // A sublocality is a subdivision of a locality, for example a city borough,
  345. // ward, or arrondissement. Sublocalities are usually recognized by a local
  346. // political authority. For example, Manhattan and Brooklyn are recognized
  347. // as boroughs by the City of New York, and are therefore modeled as
  348. // sublocalities.
  349. SUB_LOCALITY = 6;
  350. // A district or equivalent level location.
  351. SUB_LOCALITY_1 = 7;
  352. // A smaller district or equivalent level display.
  353. SUB_LOCALITY_2 = 8;
  354. // A neighborhood level location.
  355. NEIGHBORHOOD = 9;
  356. // A street address level location.
  357. STREET_ADDRESS = 10;
  358. }
  359. // The type of a location, which corresponds to the address lines field of
  360. // [google.type.PostalAddress][google.type.PostalAddress]. For example, "Downtown, Atlanta, GA, USA"
  361. // has a type of [LocationType.NEIGHBORHOOD][google.cloud.talent.v4.Location.LocationType.NEIGHBORHOOD], and "Kansas City, KS, USA"
  362. // has a type of [LocationType.LOCALITY][google.cloud.talent.v4.Location.LocationType.LOCALITY].
  363. LocationType location_type = 1;
  364. // Postal address of the location that includes human readable information,
  365. // such as postal delivery and payments addresses. Given a postal address,
  366. // a postal service can deliver items to a premises, P.O. Box, or other
  367. // delivery location.
  368. google.type.PostalAddress postal_address = 2;
  369. // An object representing a latitude/longitude pair.
  370. google.type.LatLng lat_lng = 3;
  371. // Radius in miles of the job location. This value is derived from the
  372. // location bounding box in which a circle with the specified radius
  373. // centered from [google.type.LatLng][google.type.LatLng] covers the area associated with the
  374. // job location.
  375. // For example, currently, "Mountain View, CA, USA" has a radius of
  376. // 6.17 miles.
  377. double radius_miles = 4;
  378. }
  379. // Meta information related to the job searcher or entity
  380. // conducting the job search. This information is used to improve the
  381. // performance of the service.
  382. message RequestMetadata {
  383. // Required if [allow_missing_ids][google.cloud.talent.v4.RequestMetadata.allow_missing_ids] is unset or `false`.
  384. //
  385. // The client-defined scope or source of the service call, which typically
  386. // is the domain on
  387. // which the service has been implemented and is currently being run.
  388. //
  389. // For example, if the service is being run by client <em>Foo, Inc.</em>, on
  390. // job board www.foo.com and career site www.bar.com, then this field is
  391. // set to "foo.com" for use on the job board, and "bar.com" for use on the
  392. // career site.
  393. //
  394. // Note that any improvements to the model for a particular tenant site rely
  395. // on this field being set correctly to a unique domain.
  396. //
  397. // The maximum number of allowed characters is 255.
  398. string domain = 1;
  399. // Required if [allow_missing_ids][google.cloud.talent.v4.RequestMetadata.allow_missing_ids] is unset or `false`.
  400. //
  401. // A unique session identification string. A session is defined as the
  402. // duration of an end user's interaction with the service over a certain
  403. // period.
  404. // Obfuscate this field for privacy concerns before
  405. // providing it to the service.
  406. //
  407. // Note that any improvements to the model for a particular tenant site rely
  408. // on this field being set correctly to a unique session ID.
  409. //
  410. // The maximum number of allowed characters is 255.
  411. string session_id = 2;
  412. // Required if [allow_missing_ids][google.cloud.talent.v4.RequestMetadata.allow_missing_ids] is unset or `false`.
  413. //
  414. // A unique user identification string, as determined by the client.
  415. // To have the strongest positive impact on search quality
  416. // make sure the client-level is unique.
  417. // Obfuscate this field for privacy concerns before
  418. // providing it to the service.
  419. //
  420. // Note that any improvements to the model for a particular tenant site rely
  421. // on this field being set correctly to a unique user ID.
  422. //
  423. // The maximum number of allowed characters is 255.
  424. string user_id = 3;
  425. // Only set when any of [domain][google.cloud.talent.v4.RequestMetadata.domain], [session_id][google.cloud.talent.v4.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4.RequestMetadata.user_id] isn't
  426. // available for some reason. It is highly recommended not to set this field
  427. // and provide accurate [domain][google.cloud.talent.v4.RequestMetadata.domain], [session_id][google.cloud.talent.v4.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4.RequestMetadata.user_id] for the
  428. // best service experience.
  429. bool allow_missing_ids = 4;
  430. // The type of device used by the job seeker at the time of the call to the
  431. // service.
  432. DeviceInfo device_info = 5;
  433. }
  434. // Additional information returned to client, such as debugging information.
  435. message ResponseMetadata {
  436. // A unique id associated with this call.
  437. // This id is logged for tracking purposes.
  438. string request_id = 1;
  439. }
  440. // Device information collected from the job seeker, candidate, or
  441. // other entity conducting the job search. Providing this information improves
  442. // the quality of the search results across devices.
  443. message DeviceInfo {
  444. // An enumeration describing an API access portal and exposure mechanism.
  445. enum DeviceType {
  446. // The device type isn't specified.
  447. DEVICE_TYPE_UNSPECIFIED = 0;
  448. // A desktop web browser, such as, Chrome, Firefox, Safari, or Internet
  449. // Explorer)
  450. WEB = 1;
  451. // A mobile device web browser, such as a phone or tablet with a Chrome
  452. // browser.
  453. MOBILE_WEB = 2;
  454. // An Android device native application.
  455. ANDROID = 3;
  456. // An iOS device native application.
  457. IOS = 4;
  458. // A bot, as opposed to a device operated by human beings, such as a web
  459. // crawler.
  460. BOT = 5;
  461. // Other devices types.
  462. OTHER = 6;
  463. }
  464. // Type of the device.
  465. DeviceType device_type = 1;
  466. // A device-specific ID. The ID must be a unique identifier that
  467. // distinguishes the device from other devices.
  468. string id = 2;
  469. }
  470. // Custom attribute values that are either filterable or non-filterable.
  471. message CustomAttribute {
  472. // Exactly one of [string_values][google.cloud.talent.v4.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4.CustomAttribute.long_values] must be specified.
  473. //
  474. // This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
  475. // `CASE_INSENSITIVE_MATCH`) search.
  476. // For filterable `string_value`s, a maximum total number of 200 values
  477. // is allowed, with each `string_value` has a byte size of no more than
  478. // 500B. For unfilterable `string_values`, the maximum total byte size of
  479. // unfilterable `string_values` is 50KB.
  480. //
  481. // Empty string isn't allowed.
  482. repeated string string_values = 1;
  483. // Exactly one of [string_values][google.cloud.talent.v4.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4.CustomAttribute.long_values] must be specified.
  484. //
  485. // This field is used to perform number range search.
  486. // (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
  487. //
  488. // Currently at most 1 [long_values][google.cloud.talent.v4.CustomAttribute.long_values] is supported.
  489. repeated int64 long_values = 2;
  490. // If the `filterable` flag is true, the custom field values may be used for
  491. // custom attribute filters [JobQuery.custom_attribute_filter][google.cloud.talent.v4.JobQuery.custom_attribute_filter].
  492. // If false, these values may not be used for custom attribute filters.
  493. //
  494. // Default is false.
  495. bool filterable = 3;
  496. // If the `keyword_searchable` flag is true, the keywords in custom fields are
  497. // searchable by keyword match.
  498. // If false, the values are not searchable by keyword match.
  499. //
  500. // Default is false.
  501. bool keyword_searchable = 4;
  502. }
  503. // Spell check result.
  504. message SpellingCorrection {
  505. // Indicates if the query was corrected by the spell checker.
  506. bool corrected = 1;
  507. // Correction output consisting of the corrected keyword string.
  508. string corrected_text = 2;
  509. // Corrected output with html tags to highlight the corrected words.
  510. // Corrected words are called out with the "<b><i>...</i></b>" html tags.
  511. //
  512. // For example, the user input query is "software enginear", where the second
  513. // word, "enginear," is incorrect. It should be "engineer". When spelling
  514. // correction is enabled, this value is
  515. // "software <b><i>engineer</i></b>".
  516. string corrected_html = 3;
  517. }
  518. // Job compensation details.
  519. message CompensationInfo {
  520. // A compensation entry that represents one component of compensation, such
  521. // as base pay, bonus, or other compensation type.
  522. //
  523. // Annualization: One compensation entry can be annualized if
  524. // - it contains valid [amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4.CompensationInfo.CompensationEntry.range].
  525. // - and its [expected_units_per_year][google.cloud.talent.v4.CompensationInfo.CompensationEntry.expected_units_per_year] is set or can be derived.
  526. // Its annualized range is determined as ([amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4.CompensationInfo.CompensationEntry.range]) times
  527. // [expected_units_per_year][google.cloud.talent.v4.CompensationInfo.CompensationEntry.expected_units_per_year].
  528. message CompensationEntry {
  529. // Compensation type.
  530. //
  531. // Default is [CompensationType.COMPENSATION_TYPE_UNSPECIFIED][google.cloud.talent.v4.CompensationInfo.CompensationType.COMPENSATION_TYPE_UNSPECIFIED].
  532. CompensationType type = 1;
  533. // Frequency of the specified amount.
  534. //
  535. // Default is [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED].
  536. CompensationUnit unit = 2;
  537. // Compensation amount. It could be a fixed amount or a floating range.
  538. oneof compensation_amount {
  539. // Compensation amount.
  540. google.type.Money amount = 3;
  541. // Compensation range.
  542. CompensationRange range = 4;
  543. }
  544. // Compensation description. For example, could
  545. // indicate equity terms or provide additional context to an estimated
  546. // bonus.
  547. string description = 5;
  548. // Expected number of units paid each year. If not specified, when
  549. // [Job.employment_types][google.cloud.talent.v4.Job.employment_types] is FULLTIME, a default value is inferred
  550. // based on [unit][google.cloud.talent.v4.CompensationInfo.CompensationEntry.unit]. Default values:
  551. // - HOURLY: 2080
  552. // - DAILY: 260
  553. // - WEEKLY: 52
  554. // - MONTHLY: 12
  555. // - ANNUAL: 1
  556. google.protobuf.DoubleValue expected_units_per_year = 6;
  557. }
  558. // The type of compensation.
  559. //
  560. // For compensation amounts specified in non-monetary amounts,
  561. // describe the compensation scheme in the [CompensationEntry.description][google.cloud.talent.v4.CompensationInfo.CompensationEntry.description].
  562. //
  563. // For example, tipping format is described in
  564. // [CompensationEntry.description][google.cloud.talent.v4.CompensationInfo.CompensationEntry.description] (for example, "expect 15-20% tips based
  565. // on customer bill.") and an estimate of the tips provided in
  566. // [CompensationEntry.amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] or [CompensationEntry.range][google.cloud.talent.v4.CompensationInfo.CompensationEntry.range] ($10 per hour).
  567. //
  568. // For example, equity is described in [CompensationEntry.description][google.cloud.talent.v4.CompensationInfo.CompensationEntry.description]
  569. // (for example, "1% - 2% equity vesting over 4 years, 1 year cliff") and
  570. // value estimated in [CompensationEntry.amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] or
  571. // [CompensationEntry.range][google.cloud.talent.v4.CompensationInfo.CompensationEntry.range]. If no value estimate is possible, units are
  572. // [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED] and then further
  573. // clarified in [CompensationEntry.description][google.cloud.talent.v4.CompensationInfo.CompensationEntry.description] field.
  574. enum CompensationType {
  575. // Default value.
  576. COMPENSATION_TYPE_UNSPECIFIED = 0;
  577. // Base compensation: Refers to the fixed amount of money paid to an
  578. // employee by an employer in return for work performed. Base compensation
  579. // does not include benefits, bonuses or any other potential compensation
  580. // from an employer.
  581. BASE = 1;
  582. // Bonus.
  583. BONUS = 2;
  584. // Signing bonus.
  585. SIGNING_BONUS = 3;
  586. // Equity.
  587. EQUITY = 4;
  588. // Profit sharing.
  589. PROFIT_SHARING = 5;
  590. // Commission.
  591. COMMISSIONS = 6;
  592. // Tips.
  593. TIPS = 7;
  594. // Other compensation type.
  595. OTHER_COMPENSATION_TYPE = 8;
  596. }
  597. // Pay frequency.
  598. enum CompensationUnit {
  599. // Default value.
  600. COMPENSATION_UNIT_UNSPECIFIED = 0;
  601. // Hourly.
  602. HOURLY = 1;
  603. // Daily.
  604. DAILY = 2;
  605. // Weekly
  606. WEEKLY = 3;
  607. // Monthly.
  608. MONTHLY = 4;
  609. // Yearly.
  610. YEARLY = 5;
  611. // One time.
  612. ONE_TIME = 6;
  613. // Other compensation units.
  614. OTHER_COMPENSATION_UNIT = 7;
  615. }
  616. // Compensation range.
  617. message CompensationRange {
  618. // The maximum amount of compensation. If left empty, the value is set
  619. // to a maximal compensation value and the currency code is set to
  620. // match the [currency code][google.type.Money.currency_code] of
  621. // min_compensation.
  622. google.type.Money max_compensation = 2;
  623. // The minimum amount of compensation. If left empty, the value is set
  624. // to zero and the currency code is set to match the
  625. // [currency code][google.type.Money.currency_code] of max_compensation.
  626. google.type.Money min_compensation = 1;
  627. }
  628. // Job compensation information.
  629. //
  630. // At most one entry can be of type
  631. // [CompensationInfo.CompensationType.BASE][google.cloud.talent.v4.CompensationInfo.CompensationType.BASE], which is
  632. // referred as **base compensation entry** for the job.
  633. repeated CompensationEntry entries = 1;
  634. // Output only. Annualized base compensation range. Computed as base compensation entry's
  635. // [CompensationEntry.amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] times
  636. // [CompensationEntry.expected_units_per_year][google.cloud.talent.v4.CompensationInfo.CompensationEntry.expected_units_per_year].
  637. //
  638. // See [CompensationEntry][google.cloud.talent.v4.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
  639. CompensationRange annualized_base_compensation_range = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  640. // Output only. Annualized total compensation range. Computed as all compensation entries'
  641. // [CompensationEntry.amount][google.cloud.talent.v4.CompensationInfo.CompensationEntry.amount] times
  642. // [CompensationEntry.expected_units_per_year][google.cloud.talent.v4.CompensationInfo.CompensationEntry.expected_units_per_year].
  643. //
  644. // See [CompensationEntry][google.cloud.talent.v4.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
  645. CompensationRange annualized_total_compensation_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  646. }
  647. // Metadata used for long running operations returned by CTS batch APIs.
  648. // It's used to replace [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata].
  649. message BatchOperationMetadata {
  650. enum State {
  651. // Default value.
  652. STATE_UNSPECIFIED = 0;
  653. // The batch operation is being prepared for processing.
  654. INITIALIZING = 1;
  655. // The batch operation is actively being processed.
  656. PROCESSING = 2;
  657. // The batch operation is processed, and at least one item has been
  658. // successfully processed.
  659. SUCCEEDED = 3;
  660. // The batch operation is done and no item has been successfully processed.
  661. FAILED = 4;
  662. // The batch operation is in the process of cancelling after
  663. // [google.longrunning.Operations.CancelOperation][google.longrunning.Operations.CancelOperation] is called.
  664. CANCELLING = 5;
  665. // The batch operation is done after
  666. // [google.longrunning.Operations.CancelOperation][google.longrunning.Operations.CancelOperation] is called. Any items
  667. // processed before cancelling are returned in the response.
  668. CANCELLED = 6;
  669. }
  670. // The state of a long running operation.
  671. State state = 1;
  672. // More detailed information about operation state.
  673. string state_description = 2;
  674. // Count of successful item(s) inside an operation.
  675. int32 success_count = 3;
  676. // Count of failed item(s) inside an operation.
  677. int32 failure_count = 4;
  678. // Count of total item(s) inside an operation.
  679. int32 total_count = 5;
  680. // The time when the batch operation is created.
  681. google.protobuf.Timestamp create_time = 6;
  682. // The time when the batch operation status is updated. The metadata and the
  683. // [update_time][google.cloud.talent.v4.BatchOperationMetadata.update_time] is refreshed every minute otherwise cached data is
  684. // returned.
  685. google.protobuf.Timestamp update_time = 7;
  686. // The time when the batch operation is finished and
  687. // [google.longrunning.Operation.done][google.longrunning.Operation.done] is set to `true`.
  688. google.protobuf.Timestamp end_time = 8;
  689. }