common.proto 31 KB

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