common.proto 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865
  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.v4beta1;
  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/v4beta1;talent";
  23. option java_multiple_files = true;
  24. option java_outer_classname = "CommonProto";
  25. option java_package = "com.google.cloud.talent.v4beta1";
  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.v4beta1.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.v4beta1.LocationFilter].
  261. POSTING_REGION_UNSPECIFIED = 0;
  262. // In addition to exact location matching, job posting is returned when the
  263. // [LocationFilter][google.cloud.talent.v4beta1.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.v4beta1.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.v4beta1.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.v4beta1.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.
  311. enum CommuteMethod {
  312. // Commute method isn't specified.
  313. COMMUTE_METHOD_UNSPECIFIED = 0;
  314. // Commute time is calculated based on driving time.
  315. DRIVING = 1;
  316. // Commute time is calculated based on public transit including bus, metro,
  317. // subway, and so on.
  318. TRANSIT = 2;
  319. // Commute time is calculated based on walking time.
  320. WALKING = 3;
  321. // Commute time is calculated based on biking time.
  322. CYCLING = 4;
  323. }
  324. // A resource that represents a location with full geographic information.
  325. message Location {
  326. // An enum which represents the type of a location.
  327. enum LocationType {
  328. // Default value if the type isn't specified.
  329. LOCATION_TYPE_UNSPECIFIED = 0;
  330. // A country level location.
  331. COUNTRY = 1;
  332. // A state or equivalent level location.
  333. ADMINISTRATIVE_AREA = 2;
  334. // A county or equivalent level location.
  335. SUB_ADMINISTRATIVE_AREA = 3;
  336. // A city or equivalent level location.
  337. LOCALITY = 4;
  338. // A postal code level location.
  339. POSTAL_CODE = 5;
  340. // A sublocality is a subdivision of a locality, for example a city borough,
  341. // ward, or arrondissement. Sublocalities are usually recognized by a local
  342. // political authority. For example, Manhattan and Brooklyn are recognized
  343. // as boroughs by the City of New York, and are therefore modeled as
  344. // sublocalities.
  345. SUB_LOCALITY = 6;
  346. // A district or equivalent level location.
  347. SUB_LOCALITY_1 = 7;
  348. // A smaller district or equivalent level display.
  349. SUB_LOCALITY_2 = 8;
  350. // A neighborhood level location.
  351. NEIGHBORHOOD = 9;
  352. // A street address level location.
  353. STREET_ADDRESS = 10;
  354. }
  355. // The type of a location, which corresponds to the address lines field of
  356. // [google.type.PostalAddress][google.type.PostalAddress]. For example, "Downtown, Atlanta, GA, USA"
  357. // has a type of [LocationType.NEIGHBORHOOD][google.cloud.talent.v4beta1.Location.LocationType.NEIGHBORHOOD], and "Kansas City, KS, USA"
  358. // has a type of [LocationType.LOCALITY][google.cloud.talent.v4beta1.Location.LocationType.LOCALITY].
  359. LocationType location_type = 1;
  360. // Postal address of the location that includes human readable information,
  361. // such as postal delivery and payments addresses. Given a postal address,
  362. // a postal service can deliver items to a premises, P.O. Box, or other
  363. // delivery location.
  364. google.type.PostalAddress postal_address = 2;
  365. // An object representing a latitude/longitude pair.
  366. google.type.LatLng lat_lng = 3;
  367. // Radius in miles of the job location. This value is derived from the
  368. // location bounding box in which a circle with the specified radius
  369. // centered from [google.type.LatLng][google.type.LatLng] covers the area associated with the
  370. // job location.
  371. // For example, currently, "Mountain View, CA, USA" has a radius of
  372. // 6.17 miles.
  373. double radius_miles = 4;
  374. }
  375. // Meta information related to the job searcher or entity
  376. // conducting the job search. This information is used to improve the
  377. // performance of the service.
  378. message RequestMetadata {
  379. // Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
  380. //
  381. // The client-defined scope or source of the service call, which typically
  382. // is the domain on
  383. // which the service has been implemented and is currently being run.
  384. //
  385. // For example, if the service is being run by client <em>Foo, Inc.</em>, on
  386. // job board www.foo.com and career site www.bar.com, then this field is
  387. // set to "foo.com" for use on the job board, and "bar.com" for use on the
  388. // career site.
  389. //
  390. // Note that any improvements to the model for a particular tenant site rely
  391. // on this field being set correctly to a unique domain.
  392. //
  393. // The maximum number of allowed characters is 255.
  394. string domain = 1;
  395. // Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
  396. //
  397. // A unique session identification string. A session is defined as the
  398. // duration of an end user's interaction with the service over a certain
  399. // period.
  400. // Obfuscate this field for privacy concerns before
  401. // providing it to the service.
  402. //
  403. // Note that any improvements to the model for a particular tenant site rely
  404. // on this field being set correctly to a unique session ID.
  405. //
  406. // The maximum number of allowed characters is 255.
  407. string session_id = 2;
  408. // Required if [allow_missing_ids][google.cloud.talent.v4beta1.RequestMetadata.allow_missing_ids] is unset or `false`.
  409. //
  410. // A unique user identification string, as determined by the client.
  411. // To have the strongest positive impact on search quality
  412. // make sure the client-level is unique.
  413. // Obfuscate this field for privacy concerns before
  414. // providing it to the service.
  415. //
  416. // Note that any improvements to the model for a particular tenant site rely
  417. // on this field being set correctly to a unique user ID.
  418. //
  419. // The maximum number of allowed characters is 255.
  420. string user_id = 3;
  421. // Only set when any of [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] isn't
  422. // available for some reason. It is highly recommended not to set this field
  423. // and provide accurate [domain][google.cloud.talent.v4beta1.RequestMetadata.domain], [session_id][google.cloud.talent.v4beta1.RequestMetadata.session_id] and [user_id][google.cloud.talent.v4beta1.RequestMetadata.user_id] for the
  424. // best service experience.
  425. bool allow_missing_ids = 4;
  426. // The type of device used by the job seeker at the time of the call to the
  427. // service.
  428. DeviceInfo device_info = 5;
  429. }
  430. // Additional information returned to client, such as debugging information.
  431. message ResponseMetadata {
  432. // A unique id associated with this call.
  433. // This id is logged for tracking purposes.
  434. string request_id = 1;
  435. }
  436. // Device information collected from the job seeker, candidate, or
  437. // other entity conducting the job search. Providing this information improves
  438. // the quality of the search results across devices.
  439. message DeviceInfo {
  440. // An enumeration describing an API access portal and exposure mechanism.
  441. enum DeviceType {
  442. // The device type isn't specified.
  443. DEVICE_TYPE_UNSPECIFIED = 0;
  444. // A desktop web browser, such as, Chrome, Firefox, Safari, or Internet
  445. // Explorer)
  446. WEB = 1;
  447. // A mobile device web browser, such as a phone or tablet with a Chrome
  448. // browser.
  449. MOBILE_WEB = 2;
  450. // An Android device native application.
  451. ANDROID = 3;
  452. // An iOS device native application.
  453. IOS = 4;
  454. // A bot, as opposed to a device operated by human beings, such as a web
  455. // crawler.
  456. BOT = 5;
  457. // Other devices types.
  458. OTHER = 6;
  459. }
  460. // Type of the device.
  461. DeviceType device_type = 1;
  462. // A device-specific ID. The ID must be a unique identifier that
  463. // distinguishes the device from other devices.
  464. string id = 2;
  465. }
  466. // Custom attribute values that are either filterable or non-filterable.
  467. message CustomAttribute {
  468. // Exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must be specified.
  469. //
  470. // This field is used to perform a string match (`CASE_SENSITIVE_MATCH` or
  471. // `CASE_INSENSITIVE_MATCH`) search.
  472. // For filterable `string_value`s, a maximum total number of 200 values
  473. // is allowed, with each `string_value` has a byte size of no more than
  474. // 500B. For unfilterable `string_values`, the maximum total byte size of
  475. // unfilterable `string_values` is 50KB.
  476. //
  477. // Empty string isn't allowed.
  478. repeated string string_values = 1;
  479. // Exactly one of [string_values][google.cloud.talent.v4beta1.CustomAttribute.string_values] or [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] must be specified.
  480. //
  481. // This field is used to perform number range search.
  482. // (`EQ`, `GT`, `GE`, `LE`, `LT`) over filterable `long_value`.
  483. //
  484. // Currently at most 1 [long_values][google.cloud.talent.v4beta1.CustomAttribute.long_values] is supported.
  485. repeated int64 long_values = 2;
  486. // If the `filterable` flag is true, the custom field values may be used for
  487. // custom attribute filters [JobQuery.custom_attribute_filter][google.cloud.talent.v4beta1.JobQuery.custom_attribute_filter].
  488. // If false, these values may not be used for custom attribute filters.
  489. //
  490. // Default is false.
  491. bool filterable = 3;
  492. // If the `keyword_searchable` flag is true, the keywords in custom fields are
  493. // searchable by keyword match.
  494. // If false, the values are not searchable by keyword match.
  495. //
  496. // Default is false.
  497. bool keyword_searchable = 4;
  498. }
  499. // Spell check result.
  500. message SpellingCorrection {
  501. // Indicates if the query was corrected by the spell checker.
  502. bool corrected = 1;
  503. // Correction output consisting of the corrected keyword string.
  504. string corrected_text = 2;
  505. // Corrected output with html tags to highlight the corrected words.
  506. // Corrected words are called out with the "<b><i>...</i></b>" html tags.
  507. //
  508. // For example, the user input query is "software enginear", where the second
  509. // word, "enginear," is incorrect. It should be "engineer". When spelling
  510. // correction is enabled, this value is
  511. // "software <b><i>engineer</i></b>".
  512. string corrected_html = 3;
  513. }
  514. // Job compensation details.
  515. message CompensationInfo {
  516. // A compensation entry that represents one component of compensation, such
  517. // as base pay, bonus, or other compensation type.
  518. //
  519. // Annualization: One compensation entry can be annualized if
  520. // - it contains valid [amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range].
  521. // - and its [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year] is set or can be derived.
  522. // Its annualized range is determined as ([amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]) times
  523. // [expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
  524. message CompensationEntry {
  525. // Compensation type.
  526. //
  527. // Default is [CompensationType.COMPENSATION_TYPE_UNSPECIFIED][google.cloud.talent.v4beta1.CompensationInfo.CompensationType.COMPENSATION_TYPE_UNSPECIFIED].
  528. CompensationType type = 1;
  529. // Frequency of the specified amount.
  530. //
  531. // Default is [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED].
  532. CompensationUnit unit = 2;
  533. // Compensation amount. It could be a fixed amount or a floating range.
  534. oneof compensation_amount {
  535. // Compensation amount.
  536. google.type.Money amount = 3;
  537. // Compensation range.
  538. CompensationRange range = 4;
  539. }
  540. // Compensation description. For example, could
  541. // indicate equity terms or provide additional context to an estimated
  542. // bonus.
  543. string description = 5;
  544. // Expected number of units paid each year. If not specified, when
  545. // [Job.employment_types][google.cloud.talent.v4beta1.Job.employment_types] is FULLTIME, a default value is inferred
  546. // based on [unit][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.unit]. Default values:
  547. // - HOURLY: 2080
  548. // - DAILY: 260
  549. // - WEEKLY: 52
  550. // - MONTHLY: 12
  551. // - ANNUAL: 1
  552. google.protobuf.DoubleValue expected_units_per_year = 6;
  553. }
  554. // The type of compensation.
  555. //
  556. // For compensation amounts specified in non-monetary amounts,
  557. // describe the compensation scheme in the [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description].
  558. //
  559. // For example, tipping format is described in
  560. // [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] (for example, "expect 15-20% tips based
  561. // on customer bill.") and an estimate of the tips provided in
  562. // [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range] ($10 per hour).
  563. //
  564. // For example, equity is described in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description]
  565. // (for example, "1% - 2% equity vesting over 4 years, 1 year cliff") and
  566. // value estimated in [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] or
  567. // [CompensationEntry.range][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.range]. If no value estimate is possible, units are
  568. // [CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED][google.cloud.talent.v4beta1.CompensationInfo.CompensationUnit.COMPENSATION_UNIT_UNSPECIFIED] and then further
  569. // clarified in [CompensationEntry.description][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.description] field.
  570. enum CompensationType {
  571. // Default value.
  572. COMPENSATION_TYPE_UNSPECIFIED = 0;
  573. // Base compensation: Refers to the fixed amount of money paid to an
  574. // employee by an employer in return for work performed. Base compensation
  575. // does not include benefits, bonuses or any other potential compensation
  576. // from an employer.
  577. BASE = 1;
  578. // Bonus.
  579. BONUS = 2;
  580. // Signing bonus.
  581. SIGNING_BONUS = 3;
  582. // Equity.
  583. EQUITY = 4;
  584. // Profit sharing.
  585. PROFIT_SHARING = 5;
  586. // Commission.
  587. COMMISSIONS = 6;
  588. // Tips.
  589. TIPS = 7;
  590. // Other compensation type.
  591. OTHER_COMPENSATION_TYPE = 8;
  592. }
  593. // Pay frequency.
  594. enum CompensationUnit {
  595. // Default value.
  596. COMPENSATION_UNIT_UNSPECIFIED = 0;
  597. // Hourly.
  598. HOURLY = 1;
  599. // Daily.
  600. DAILY = 2;
  601. // Weekly
  602. WEEKLY = 3;
  603. // Monthly.
  604. MONTHLY = 4;
  605. // Yearly.
  606. YEARLY = 5;
  607. // One time.
  608. ONE_TIME = 6;
  609. // Other compensation units.
  610. OTHER_COMPENSATION_UNIT = 7;
  611. }
  612. // Compensation range.
  613. message CompensationRange {
  614. // The maximum amount of compensation. If left empty, the value is set
  615. // to a maximal compensation value and the currency code is set to
  616. // match the [currency code][google.type.Money.currency_code] of
  617. // min_compensation.
  618. google.type.Money max_compensation = 2;
  619. // The minimum amount of compensation. If left empty, the value is set
  620. // to zero and the currency code is set to match the
  621. // [currency code][google.type.Money.currency_code] of max_compensation.
  622. google.type.Money min_compensation = 1;
  623. }
  624. // Job compensation information.
  625. //
  626. // At most one entry can be of type
  627. // [CompensationInfo.CompensationType.BASE][google.cloud.talent.v4beta1.CompensationInfo.CompensationType.BASE], which is
  628. // referred as **base compensation entry** for the job.
  629. repeated CompensationEntry entries = 1;
  630. // Output only. Annualized base compensation range. Computed as base compensation entry's
  631. // [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] times
  632. // [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
  633. //
  634. // See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
  635. CompensationRange annualized_base_compensation_range = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  636. // Output only. Annualized total compensation range. Computed as all compensation entries'
  637. // [CompensationEntry.amount][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.amount] times
  638. // [CompensationEntry.expected_units_per_year][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry.expected_units_per_year].
  639. //
  640. // See [CompensationEntry][google.cloud.talent.v4beta1.CompensationInfo.CompensationEntry] for explanation on compensation annualization.
  641. CompensationRange annualized_total_compensation_range = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
  642. }
  643. // Metadata used for long running operations returned by CTS batch APIs.
  644. // It's used to replace [google.longrunning.Operation.metadata][google.longrunning.Operation.metadata].
  645. message BatchOperationMetadata {
  646. enum State {
  647. // Default value.
  648. STATE_UNSPECIFIED = 0;
  649. // The batch operation is being prepared for processing.
  650. INITIALIZING = 1;
  651. // The batch operation is actively being processed.
  652. PROCESSING = 2;
  653. // The batch operation is processed, and at least one item has been
  654. // successfully processed.
  655. SUCCEEDED = 3;
  656. // The batch operation is done and no item has been successfully processed.
  657. FAILED = 4;
  658. // The batch operation is in the process of cancelling after
  659. // [google.longrunning.Operations.CancelOperation][google.longrunning.Operations.CancelOperation] is called.
  660. CANCELLING = 5;
  661. // The batch operation is done after
  662. // [google.longrunning.Operations.CancelOperation][google.longrunning.Operations.CancelOperation] is called. Any items
  663. // processed before cancelling are returned in the response.
  664. CANCELLED = 6;
  665. }
  666. // The state of a long running operation.
  667. State state = 1;
  668. // More detailed information about operation state.
  669. string state_description = 2;
  670. // Count of successful item(s) inside an operation.
  671. int32 success_count = 3;
  672. // Count of failed item(s) inside an operation.
  673. int32 failure_count = 4;
  674. // Count of total item(s) inside an operation.
  675. int32 total_count = 5;
  676. // The time when the batch operation is created.
  677. google.protobuf.Timestamp create_time = 6;
  678. // The time when the batch operation status is updated. The metadata and the
  679. // [update_time][google.cloud.talent.v4beta1.BatchOperationMetadata.update_time] is refreshed every minute otherwise cached data is
  680. // returned.
  681. google.protobuf.Timestamp update_time = 7;
  682. // The time when the batch operation is finished and
  683. // [google.longrunning.Operation.done][google.longrunning.Operation.done] is set to `true`.
  684. google.protobuf.Timestamp end_time = 8;
  685. }