common.proto 40 KB

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