google-api-client 0.50.0 → 0.51.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (299) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/release-please.yml +3 -1
  3. data/CHANGELOG.md +127 -0
  4. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  5. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +50 -6
  6. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +18 -0
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +3 -1
  8. data/generated/google/apis/admob_v1.rb +1 -1
  9. data/generated/google/apis/admob_v1beta.rb +1 -1
  10. data/generated/google/apis/analyticsadmin_v1alpha.rb +1 -1
  11. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +24 -8
  12. data/generated/google/apis/analyticsdata_v1alpha.rb +2 -2
  13. data/generated/google/apis/analyticsdata_v1alpha/classes.rb +93 -28
  14. data/generated/google/apis/analyticsdata_v1alpha/representations.rb +2 -0
  15. data/generated/google/apis/analyticsdata_v1alpha/service.rb +5 -5
  16. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  17. data/generated/google/apis/androidenterprise_v1/service.rb +4 -1
  18. data/generated/google/apis/androidmanagement_v1.rb +1 -1
  19. data/generated/google/apis/androidmanagement_v1/classes.rb +69 -4
  20. data/generated/google/apis/androidmanagement_v1/representations.rb +19 -0
  21. data/generated/google/apis/androidpublisher_v3.rb +1 -1
  22. data/generated/google/apis/androidpublisher_v3/service.rb +4 -4
  23. data/generated/google/apis/apigee_v1.rb +1 -1
  24. data/generated/google/apis/apigee_v1/classes.rb +7 -7
  25. data/generated/google/apis/apigee_v1/service.rb +8 -7
  26. data/generated/google/apis/appengine_v1beta.rb +1 -1
  27. data/generated/google/apis/appengine_v1beta/classes.rb +8 -0
  28. data/generated/google/apis/appengine_v1beta/representations.rb +1 -0
  29. data/generated/google/apis/area120tables_v1alpha1.rb +4 -1
  30. data/generated/google/apis/artifactregistry_v1beta2.rb +38 -0
  31. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +1037 -0
  32. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +443 -0
  33. data/generated/google/apis/artifactregistry_v1beta2/service.rb +944 -0
  34. data/generated/google/apis/{assuredworkloads_v1beta1.rb → assuredworkloads_v1.rb} +6 -6
  35. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/classes.rb +49 -137
  36. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/representations.rb +27 -87
  37. data/generated/google/apis/{assuredworkloads_v1beta1 → assuredworkloads_v1}/service.rb +46 -46
  38. data/generated/google/apis/binaryauthorization_v1.rb +1 -1
  39. data/generated/google/apis/binaryauthorization_v1/classes.rb +0 -6
  40. data/generated/google/apis/binaryauthorization_v1/representations.rb +0 -1
  41. data/generated/google/apis/binaryauthorization_v1beta1.rb +1 -1
  42. data/generated/google/apis/binaryauthorization_v1beta1/classes.rb +2 -7
  43. data/generated/google/apis/binaryauthorization_v1beta1/representations.rb +0 -1
  44. data/generated/google/apis/chat_v1.rb +1 -1
  45. data/generated/google/apis/chat_v1/service.rb +176 -0
  46. data/generated/google/apis/cloudasset_v1.rb +1 -1
  47. data/generated/google/apis/cloudasset_v1/classes.rb +6 -3
  48. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  49. data/generated/google/apis/cloudbuild_v1/classes.rb +1 -1
  50. data/generated/google/apis/cloudbuild_v1/service.rb +1 -1
  51. data/generated/google/apis/cloudidentity_v1.rb +1 -1
  52. data/generated/google/apis/cloudidentity_v1/service.rb +8 -4
  53. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  54. data/generated/google/apis/cloudidentity_v1beta1/service.rb +8 -4
  55. data/generated/google/apis/cloudiot_v1.rb +1 -1
  56. data/generated/google/apis/cloudiot_v1/classes.rb +0 -6
  57. data/generated/google/apis/cloudiot_v1/representations.rb +0 -1
  58. data/generated/google/apis/cloudsearch_v1.rb +1 -1
  59. data/generated/google/apis/cloudsearch_v1/classes.rb +10 -5
  60. data/generated/google/apis/cloudtasks_v2.rb +1 -1
  61. data/generated/google/apis/cloudtasks_v2/classes.rb +0 -6
  62. data/generated/google/apis/cloudtasks_v2/representations.rb +0 -1
  63. data/generated/google/apis/cloudtasks_v2beta2.rb +1 -1
  64. data/generated/google/apis/cloudtasks_v2beta2/classes.rb +0 -6
  65. data/generated/google/apis/cloudtasks_v2beta2/representations.rb +0 -1
  66. data/generated/google/apis/cloudtasks_v2beta3.rb +1 -1
  67. data/generated/google/apis/cloudtasks_v2beta3/classes.rb +0 -6
  68. data/generated/google/apis/cloudtasks_v2beta3/representations.rb +0 -1
  69. data/generated/google/apis/composer_v1.rb +1 -1
  70. data/generated/google/apis/composer_v1/classes.rb +123 -0
  71. data/generated/google/apis/composer_v1/representations.rb +49 -0
  72. data/generated/google/apis/composer_v1/service.rb +19 -15
  73. data/generated/google/apis/composer_v1beta1.rb +1 -1
  74. data/generated/google/apis/composer_v1beta1/classes.rb +109 -0
  75. data/generated/google/apis/composer_v1beta1/representations.rb +46 -0
  76. data/generated/google/apis/composer_v1beta1/service.rb +39 -1
  77. data/generated/google/apis/compute_v1.rb +1 -1
  78. data/generated/google/apis/compute_v1/classes.rb +7 -2
  79. data/generated/google/apis/compute_v1/representations.rb +1 -0
  80. data/generated/google/apis/compute_v1/service.rb +691 -544
  81. data/generated/google/apis/containeranalysis_v1alpha1.rb +1 -1
  82. data/generated/google/apis/containeranalysis_v1alpha1/classes.rb +0 -6
  83. data/generated/google/apis/containeranalysis_v1alpha1/representations.rb +0 -1
  84. data/generated/google/apis/containeranalysis_v1beta1.rb +1 -1
  85. data/generated/google/apis/containeranalysis_v1beta1/classes.rb +2 -7
  86. data/generated/google/apis/containeranalysis_v1beta1/representations.rb +0 -1
  87. data/generated/google/apis/content_v2.rb +1 -1
  88. data/generated/google/apis/content_v2/classes.rb +4 -4
  89. data/generated/google/apis/content_v2_1.rb +1 -1
  90. data/generated/google/apis/content_v2_1/classes.rb +175 -4
  91. data/generated/google/apis/content_v2_1/representations.rb +78 -0
  92. data/generated/google/apis/content_v2_1/service.rb +179 -0
  93. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  94. data/generated/google/apis/datacatalog_v1beta1/classes.rb +0 -6
  95. data/generated/google/apis/datacatalog_v1beta1/representations.rb +0 -1
  96. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  97. data/generated/google/apis/dataflow_v1b3/classes.rb +17 -1
  98. data/generated/google/apis/dataflow_v1b3/representations.rb +2 -0
  99. data/generated/google/apis/dataproc_v1.rb +1 -1
  100. data/generated/google/apis/dataproc_v1/classes.rb +78 -6
  101. data/generated/google/apis/dataproc_v1/representations.rb +22 -1
  102. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  103. data/generated/google/apis/dataproc_v1beta2/classes.rb +46 -6
  104. data/generated/google/apis/dataproc_v1beta2/representations.rb +18 -1
  105. data/generated/google/apis/deploymentmanager_v2.rb +1 -1
  106. data/generated/google/apis/deploymentmanager_v2/classes.rb +0 -6
  107. data/generated/google/apis/deploymentmanager_v2/representations.rb +0 -1
  108. data/generated/google/apis/deploymentmanager_v2beta.rb +1 -1
  109. data/generated/google/apis/deploymentmanager_v2beta/classes.rb +0 -6
  110. data/generated/google/apis/deploymentmanager_v2beta/representations.rb +0 -1
  111. data/generated/google/apis/dialogflow_v2.rb +1 -1
  112. data/generated/google/apis/dialogflow_v2/classes.rb +15 -647
  113. data/generated/google/apis/dialogflow_v2/representations.rb +1 -299
  114. data/generated/google/apis/dialogflow_v2/service.rb +12 -4
  115. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  116. data/generated/google/apis/dialogflow_v2beta1/classes.rb +13 -650
  117. data/generated/google/apis/dialogflow_v2beta1/representations.rb +1 -299
  118. data/generated/google/apis/dialogflow_v2beta1/service.rb +496 -32
  119. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  120. data/generated/google/apis/dialogflow_v3beta1/classes.rb +15 -647
  121. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1 -299
  122. data/generated/google/apis/dialogflow_v3beta1/service.rb +10 -2
  123. data/generated/google/apis/displayvideo_v1.rb +1 -1
  124. data/generated/google/apis/displayvideo_v1/classes.rb +97 -3
  125. data/generated/google/apis/displayvideo_v1/representations.rb +45 -0
  126. data/generated/google/apis/displayvideo_v1/service.rb +103 -39
  127. data/generated/google/apis/dns_v1.rb +1 -1
  128. data/generated/google/apis/dns_v1/classes.rb +6 -0
  129. data/generated/google/apis/dns_v1/representations.rb +1 -0
  130. data/generated/google/apis/dns_v1beta2.rb +1 -1
  131. data/generated/google/apis/dns_v1beta2/classes.rb +6 -0
  132. data/generated/google/apis/dns_v1beta2/representations.rb +1 -0
  133. data/generated/google/apis/doubleclickbidmanager_v1_1.rb +1 -1
  134. data/generated/google/apis/drive_v2.rb +1 -1
  135. data/generated/google/apis/drive_v2/classes.rb +4 -1
  136. data/generated/google/apis/drive_v2/service.rb +24 -56
  137. data/generated/google/apis/drive_v3.rb +1 -1
  138. data/generated/google/apis/drive_v3/classes.rb +4 -1
  139. data/generated/google/apis/drive_v3/service.rb +14 -30
  140. data/generated/google/apis/eventarc_v1beta1.rb +1 -1
  141. data/generated/google/apis/eventarc_v1beta1/classes.rb +0 -6
  142. data/generated/google/apis/eventarc_v1beta1/representations.rb +0 -1
  143. data/generated/google/apis/firebasedatabase_v1beta.rb +44 -0
  144. data/generated/google/apis/firebasedatabase_v1beta/classes.rb +130 -0
  145. data/generated/google/apis/firebasedatabase_v1beta/representations.rb +82 -0
  146. data/generated/google/apis/firebasedatabase_v1beta/service.rb +292 -0
  147. data/generated/google/apis/games_v1.rb +1 -1
  148. data/generated/google/apis/games_v1/classes.rb +67 -14
  149. data/generated/google/apis/games_v1/representations.rb +31 -2
  150. data/generated/google/apis/games_v1/service.rb +33 -0
  151. data/generated/google/apis/gmailpostmastertools_v1beta1.rb +1 -1
  152. data/generated/google/apis/gmailpostmastertools_v1beta1/classes.rb +9 -0
  153. data/generated/google/apis/gmailpostmastertools_v1beta1/representations.rb +1 -0
  154. data/generated/google/apis/healthcare_v1.rb +1 -1
  155. data/generated/google/apis/healthcare_v1/classes.rb +18 -17
  156. data/generated/google/apis/healthcare_v1beta1.rb +1 -1
  157. data/generated/google/apis/healthcare_v1beta1/classes.rb +18 -17
  158. data/generated/google/apis/iam_v1.rb +1 -1
  159. data/generated/google/apis/iam_v1/classes.rb +101 -0
  160. data/generated/google/apis/iam_v1/representations.rb +33 -0
  161. data/generated/google/apis/iam_v1/service.rb +62 -0
  162. data/generated/google/apis/jobs_v3.rb +1 -1
  163. data/generated/google/apis/jobs_v3/classes.rb +9 -807
  164. data/generated/google/apis/jobs_v3/representations.rb +0 -272
  165. data/generated/google/apis/jobs_v3p1beta1.rb +1 -1
  166. data/generated/google/apis/jobs_v3p1beta1/classes.rb +9 -768
  167. data/generated/google/apis/jobs_v3p1beta1/representations.rb +0 -257
  168. data/generated/google/apis/{jobs_v2.rb → jobs_v4.rb} +6 -6
  169. data/generated/google/apis/jobs_v4/classes.rb +2699 -0
  170. data/generated/google/apis/jobs_v4/representations.rb +934 -0
  171. data/generated/google/apis/jobs_v4/service.rb +903 -0
  172. data/generated/google/apis/licensing_v1.rb +1 -1
  173. data/generated/google/apis/licensing_v1/classes.rb +26 -8
  174. data/generated/google/apis/licensing_v1/representations.rb +12 -0
  175. data/generated/google/apis/licensing_v1/service.rb +32 -29
  176. data/generated/google/apis/lifesciences_v2beta.rb +1 -1
  177. data/generated/google/apis/lifesciences_v2beta/classes.rb +25 -0
  178. data/generated/google/apis/lifesciences_v2beta/representations.rb +15 -0
  179. data/generated/google/apis/logging_v2.rb +1 -1
  180. data/generated/google/apis/logging_v2/classes.rb +5 -4
  181. data/generated/google/apis/managedidentities_v1.rb +1 -1
  182. data/generated/google/apis/managedidentities_v1/classes.rb +16 -11
  183. data/generated/google/apis/managedidentities_v1/representations.rb +0 -1
  184. data/generated/google/apis/managedidentities_v1alpha1.rb +1 -1
  185. data/generated/google/apis/managedidentities_v1alpha1/classes.rb +18 -12
  186. data/generated/google/apis/managedidentities_v1alpha1/representations.rb +0 -1
  187. data/generated/google/apis/managedidentities_v1beta1.rb +1 -1
  188. data/generated/google/apis/managedidentities_v1beta1/classes.rb +4 -7
  189. data/generated/google/apis/managedidentities_v1beta1/representations.rb +0 -1
  190. data/generated/google/apis/ml_v1.rb +1 -1
  191. data/generated/google/apis/ml_v1/classes.rb +0 -6
  192. data/generated/google/apis/ml_v1/representations.rb +0 -1
  193. data/generated/google/apis/monitoring_v3.rb +1 -1
  194. data/generated/google/apis/monitoring_v3/classes.rb +5 -4
  195. data/generated/google/apis/monitoring_v3/service.rb +5 -4
  196. data/generated/google/apis/notebooks_v1.rb +1 -1
  197. data/generated/google/apis/notebooks_v1/classes.rb +0 -6
  198. data/generated/google/apis/notebooks_v1/representations.rb +0 -1
  199. data/generated/google/apis/osconfig_v1.rb +1 -1
  200. data/generated/google/apis/osconfig_v1/classes.rb +419 -0
  201. data/generated/google/apis/osconfig_v1/representations.rb +168 -0
  202. data/generated/google/apis/osconfig_v1beta.rb +1 -1
  203. data/generated/google/apis/osconfig_v1beta/classes.rb +419 -0
  204. data/generated/google/apis/osconfig_v1beta/representations.rb +168 -0
  205. data/generated/google/apis/pagespeedonline_v5.rb +1 -1
  206. data/generated/google/apis/pagespeedonline_v5/service.rb +3 -3
  207. data/generated/google/apis/people_v1.rb +1 -1
  208. data/generated/google/apis/people_v1/classes.rb +6 -2
  209. data/generated/google/apis/pubsub_v1.rb +1 -1
  210. data/generated/google/apis/pubsub_v1/classes.rb +0 -6
  211. data/generated/google/apis/pubsub_v1/representations.rb +0 -1
  212. data/generated/google/apis/pubsub_v1beta2.rb +1 -1
  213. data/generated/google/apis/pubsub_v1beta2/classes.rb +0 -6
  214. data/generated/google/apis/pubsub_v1beta2/representations.rb +0 -1
  215. data/generated/google/apis/recommender_v1.rb +1 -1
  216. data/generated/google/apis/recommender_v1/classes.rb +2 -2
  217. data/generated/google/apis/recommender_v1beta1.rb +1 -1
  218. data/generated/google/apis/recommender_v1beta1/classes.rb +2 -2
  219. data/generated/google/apis/remotebuildexecution_v1.rb +1 -1
  220. data/generated/google/apis/remotebuildexecution_v1/classes.rb +5 -30
  221. data/generated/google/apis/remotebuildexecution_v1/representations.rb +1 -16
  222. data/generated/google/apis/remotebuildexecution_v1alpha.rb +1 -1
  223. data/generated/google/apis/remotebuildexecution_v1alpha/classes.rb +5 -30
  224. data/generated/google/apis/remotebuildexecution_v1alpha/representations.rb +1 -16
  225. data/generated/google/apis/remotebuildexecution_v2.rb +1 -1
  226. data/generated/google/apis/remotebuildexecution_v2/classes.rb +5 -30
  227. data/generated/google/apis/remotebuildexecution_v2/representations.rb +1 -16
  228. data/generated/google/apis/reseller_v1.rb +4 -4
  229. data/generated/google/apis/reseller_v1/service.rb +5 -5
  230. data/generated/google/apis/run_v1.rb +1 -1
  231. data/generated/google/apis/run_v1/classes.rb +2 -1
  232. data/generated/google/apis/run_v1alpha1.rb +1 -1
  233. data/generated/google/apis/run_v1alpha1/classes.rb +2 -1
  234. data/generated/google/apis/securitycenter_v1.rb +1 -1
  235. data/generated/google/apis/securitycenter_v1/classes.rb +91 -0
  236. data/generated/google/apis/securitycenter_v1/representations.rb +37 -0
  237. data/generated/google/apis/securitycenter_v1/service.rb +1448 -414
  238. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  239. data/generated/google/apis/securitycenter_v1beta1/classes.rb +68 -0
  240. data/generated/google/apis/securitycenter_v1beta1/representations.rb +32 -0
  241. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  242. data/generated/google/apis/securitycenter_v1beta2/classes.rb +68 -0
  243. data/generated/google/apis/securitycenter_v1beta2/representations.rb +32 -0
  244. data/generated/google/apis/servicedirectory_v1beta1.rb +1 -1
  245. data/generated/google/apis/servicedirectory_v1beta1/classes.rb +0 -6
  246. data/generated/google/apis/servicedirectory_v1beta1/representations.rb +0 -1
  247. data/generated/google/apis/servicenetworking_v1.rb +1 -1
  248. data/generated/google/apis/servicenetworking_v1/classes.rb +56 -3
  249. data/generated/google/apis/servicenetworking_v1/representations.rb +19 -1
  250. data/generated/google/apis/servicenetworking_v1beta.rb +1 -1
  251. data/generated/google/apis/servicenetworking_v1beta/classes.rb +36 -3
  252. data/generated/google/apis/servicenetworking_v1beta/representations.rb +17 -1
  253. data/generated/google/apis/sheets_v4.rb +1 -1
  254. data/generated/google/apis/sheets_v4/classes.rb +309 -0
  255. data/generated/google/apis/sheets_v4/representations.rb +99 -0
  256. data/generated/google/apis/slides_v1.rb +1 -1
  257. data/generated/google/apis/spanner_v1.rb +1 -1
  258. data/generated/google/apis/spanner_v1/classes.rb +9 -6
  259. data/generated/google/apis/spanner_v1/representations.rb +1 -1
  260. data/generated/google/apis/speech_v1p1beta1.rb +1 -1
  261. data/generated/google/apis/speech_v1p1beta1/classes.rb +22 -0
  262. data/generated/google/apis/speech_v1p1beta1/representations.rb +2 -0
  263. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  264. data/generated/google/apis/sqladmin_v1beta4/classes.rb +90 -7
  265. data/generated/google/apis/sqladmin_v1beta4/representations.rb +34 -0
  266. data/generated/google/apis/sqladmin_v1beta4/service.rb +1 -1
  267. data/generated/google/apis/storage_v1.rb +1 -1
  268. data/generated/google/apis/storage_v1/classes.rb +7 -0
  269. data/generated/google/apis/storage_v1/representations.rb +1 -0
  270. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  271. data/generated/google/apis/storagetransfer_v1/classes.rb +14 -16
  272. data/generated/google/apis/vault_v1.rb +1 -1
  273. data/generated/google/apis/vault_v1/classes.rb +76 -0
  274. data/generated/google/apis/vault_v1/representations.rb +45 -0
  275. data/generated/google/apis/vectortile_v1.rb +1 -1
  276. data/generated/google/apis/vectortile_v1/classes.rb +59 -4
  277. data/generated/google/apis/vectortile_v1/representations.rb +19 -0
  278. data/generated/google/apis/videointelligence_v1.rb +1 -1
  279. data/generated/google/apis/videointelligence_v1/classes.rb +65 -0
  280. data/generated/google/apis/videointelligence_v1/representations.rb +15 -0
  281. data/generated/google/apis/videointelligence_v1beta2.rb +1 -1
  282. data/generated/google/apis/videointelligence_v1beta2/classes.rb +65 -0
  283. data/generated/google/apis/videointelligence_v1beta2/representations.rb +15 -0
  284. data/generated/google/apis/videointelligence_v1p1beta1.rb +1 -1
  285. data/generated/google/apis/videointelligence_v1p1beta1/classes.rb +65 -0
  286. data/generated/google/apis/videointelligence_v1p1beta1/representations.rb +15 -0
  287. data/generated/google/apis/videointelligence_v1p2beta1.rb +1 -1
  288. data/generated/google/apis/videointelligence_v1p2beta1/classes.rb +65 -0
  289. data/generated/google/apis/videointelligence_v1p2beta1/representations.rb +15 -0
  290. data/generated/google/apis/videointelligence_v1p3beta1.rb +1 -1
  291. data/generated/google/apis/videointelligence_v1p3beta1/classes.rb +65 -0
  292. data/generated/google/apis/videointelligence_v1p3beta1/representations.rb +15 -0
  293. data/generated/google/apis/youtube_v3.rb +1 -1
  294. data/generated/google/apis/youtube_v3/classes.rb +2 -2
  295. data/lib/google/apis/version.rb +1 -1
  296. metadata +19 -11
  297. data/generated/google/apis/jobs_v2/classes.rb +0 -4012
  298. data/generated/google/apis/jobs_v2/representations.rb +0 -1396
  299. data/generated/google/apis/jobs_v2/service.rb +0 -693
@@ -178,90 +178,6 @@ module Google
178
178
  include Google::Apis::Core::JsonObjectSupport
179
179
  end
180
180
 
181
- class GoogleCloudTalentV4BatchCreateJobsResponse
182
- class Representation < Google::Apis::Core::JsonRepresentation; end
183
-
184
- include Google::Apis::Core::JsonObjectSupport
185
- end
186
-
187
- class GoogleCloudTalentV4BatchDeleteJobsResponse
188
- class Representation < Google::Apis::Core::JsonRepresentation; end
189
-
190
- include Google::Apis::Core::JsonObjectSupport
191
- end
192
-
193
- class GoogleCloudTalentV4BatchOperationMetadata
194
- class Representation < Google::Apis::Core::JsonRepresentation; end
195
-
196
- include Google::Apis::Core::JsonObjectSupport
197
- end
198
-
199
- class GoogleCloudTalentV4BatchUpdateJobsResponse
200
- class Representation < Google::Apis::Core::JsonRepresentation; end
201
-
202
- include Google::Apis::Core::JsonObjectSupport
203
- end
204
-
205
- class GoogleCloudTalentV4CompensationInfo
206
- class Representation < Google::Apis::Core::JsonRepresentation; end
207
-
208
- include Google::Apis::Core::JsonObjectSupport
209
- end
210
-
211
- class GoogleCloudTalentV4CompensationInfoCompensationEntry
212
- class Representation < Google::Apis::Core::JsonRepresentation; end
213
-
214
- include Google::Apis::Core::JsonObjectSupport
215
- end
216
-
217
- class GoogleCloudTalentV4CompensationInfoCompensationRange
218
- class Representation < Google::Apis::Core::JsonRepresentation; end
219
-
220
- include Google::Apis::Core::JsonObjectSupport
221
- end
222
-
223
- class GoogleCloudTalentV4CustomAttribute
224
- class Representation < Google::Apis::Core::JsonRepresentation; end
225
-
226
- include Google::Apis::Core::JsonObjectSupport
227
- end
228
-
229
- class GoogleCloudTalentV4Job
230
- class Representation < Google::Apis::Core::JsonRepresentation; end
231
-
232
- include Google::Apis::Core::JsonObjectSupport
233
- end
234
-
235
- class GoogleCloudTalentV4JobApplicationInfo
236
- class Representation < Google::Apis::Core::JsonRepresentation; end
237
-
238
- include Google::Apis::Core::JsonObjectSupport
239
- end
240
-
241
- class GoogleCloudTalentV4JobDerivedInfo
242
- class Representation < Google::Apis::Core::JsonRepresentation; end
243
-
244
- include Google::Apis::Core::JsonObjectSupport
245
- end
246
-
247
- class GoogleCloudTalentV4JobProcessingOptions
248
- class Representation < Google::Apis::Core::JsonRepresentation; end
249
-
250
- include Google::Apis::Core::JsonObjectSupport
251
- end
252
-
253
- class GoogleCloudTalentV4JobResult
254
- class Representation < Google::Apis::Core::JsonRepresentation; end
255
-
256
- include Google::Apis::Core::JsonObjectSupport
257
- end
258
-
259
- class GoogleCloudTalentV4Location
260
- class Representation < Google::Apis::Core::JsonRepresentation; end
261
-
262
- include Google::Apis::Core::JsonObjectSupport
263
- end
264
-
265
181
  class HistogramFacets
266
182
  class Representation < Google::Apis::Core::JsonRepresentation; end
267
183
 
@@ -716,179 +632,6 @@ module Google
716
632
  end
717
633
  end
718
634
 
719
- class GoogleCloudTalentV4BatchCreateJobsResponse
720
- # @private
721
- class Representation < Google::Apis::Core::JsonRepresentation
722
- collection :job_results, as: 'jobResults', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult::Representation
723
-
724
- end
725
- end
726
-
727
- class GoogleCloudTalentV4BatchDeleteJobsResponse
728
- # @private
729
- class Representation < Google::Apis::Core::JsonRepresentation
730
- collection :job_results, as: 'jobResults', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult::Representation
731
-
732
- end
733
- end
734
-
735
- class GoogleCloudTalentV4BatchOperationMetadata
736
- # @private
737
- class Representation < Google::Apis::Core::JsonRepresentation
738
- property :create_time, as: 'createTime'
739
- property :end_time, as: 'endTime'
740
- property :failure_count, as: 'failureCount'
741
- property :state, as: 'state'
742
- property :state_description, as: 'stateDescription'
743
- property :success_count, as: 'successCount'
744
- property :total_count, as: 'totalCount'
745
- property :update_time, as: 'updateTime'
746
- end
747
- end
748
-
749
- class GoogleCloudTalentV4BatchUpdateJobsResponse
750
- # @private
751
- class Representation < Google::Apis::Core::JsonRepresentation
752
- collection :job_results, as: 'jobResults', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobResult::Representation
753
-
754
- end
755
- end
756
-
757
- class GoogleCloudTalentV4CompensationInfo
758
- # @private
759
- class Representation < Google::Apis::Core::JsonRepresentation
760
- property :annualized_base_compensation_range, as: 'annualizedBaseCompensationRange', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange::Representation
761
-
762
- property :annualized_total_compensation_range, as: 'annualizedTotalCompensationRange', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange::Representation
763
-
764
- collection :entries, as: 'entries', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationEntry, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationEntry::Representation
765
-
766
- end
767
- end
768
-
769
- class GoogleCloudTalentV4CompensationInfoCompensationEntry
770
- # @private
771
- class Representation < Google::Apis::Core::JsonRepresentation
772
- property :amount, as: 'amount', class: Google::Apis::JobsV3p1beta1::Money, decorator: Google::Apis::JobsV3p1beta1::Money::Representation
773
-
774
- property :description, as: 'description'
775
- property :expected_units_per_year, as: 'expectedUnitsPerYear'
776
- property :range, as: 'range', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfoCompensationRange::Representation
777
-
778
- property :type, as: 'type'
779
- property :unit, as: 'unit'
780
- end
781
- end
782
-
783
- class GoogleCloudTalentV4CompensationInfoCompensationRange
784
- # @private
785
- class Representation < Google::Apis::Core::JsonRepresentation
786
- property :max_compensation, as: 'maxCompensation', class: Google::Apis::JobsV3p1beta1::Money, decorator: Google::Apis::JobsV3p1beta1::Money::Representation
787
-
788
- property :min_compensation, as: 'minCompensation', class: Google::Apis::JobsV3p1beta1::Money, decorator: Google::Apis::JobsV3p1beta1::Money::Representation
789
-
790
- end
791
- end
792
-
793
- class GoogleCloudTalentV4CustomAttribute
794
- # @private
795
- class Representation < Google::Apis::Core::JsonRepresentation
796
- property :filterable, as: 'filterable'
797
- property :keyword_searchable, as: 'keywordSearchable'
798
- collection :long_values, as: 'longValues'
799
- collection :string_values, as: 'stringValues'
800
- end
801
- end
802
-
803
- class GoogleCloudTalentV4Job
804
- # @private
805
- class Representation < Google::Apis::Core::JsonRepresentation
806
- collection :addresses, as: 'addresses'
807
- property :application_info, as: 'applicationInfo', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobApplicationInfo, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobApplicationInfo::Representation
808
-
809
- property :company, as: 'company'
810
- property :company_display_name, as: 'companyDisplayName'
811
- property :compensation_info, as: 'compensationInfo', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfo, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CompensationInfo::Representation
812
-
813
- hash :custom_attributes, as: 'customAttributes', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CustomAttribute, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4CustomAttribute::Representation
814
-
815
- collection :degree_types, as: 'degreeTypes'
816
- property :department, as: 'department'
817
- property :derived_info, as: 'derivedInfo', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobDerivedInfo, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobDerivedInfo::Representation
818
-
819
- property :description, as: 'description'
820
- collection :employment_types, as: 'employmentTypes'
821
- property :incentives, as: 'incentives'
822
- collection :job_benefits, as: 'jobBenefits'
823
- property :job_end_time, as: 'jobEndTime'
824
- property :job_level, as: 'jobLevel'
825
- property :job_start_time, as: 'jobStartTime'
826
- property :language_code, as: 'languageCode'
827
- property :name, as: 'name'
828
- property :posting_create_time, as: 'postingCreateTime'
829
- property :posting_expire_time, as: 'postingExpireTime'
830
- property :posting_publish_time, as: 'postingPublishTime'
831
- property :posting_region, as: 'postingRegion'
832
- property :posting_update_time, as: 'postingUpdateTime'
833
- property :processing_options, as: 'processingOptions', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobProcessingOptions, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4JobProcessingOptions::Representation
834
-
835
- property :promotion_value, as: 'promotionValue'
836
- property :qualifications, as: 'qualifications'
837
- property :requisition_id, as: 'requisitionId'
838
- property :responsibilities, as: 'responsibilities'
839
- property :title, as: 'title'
840
- property :visibility, as: 'visibility'
841
- end
842
- end
843
-
844
- class GoogleCloudTalentV4JobApplicationInfo
845
- # @private
846
- class Representation < Google::Apis::Core::JsonRepresentation
847
- collection :emails, as: 'emails'
848
- property :instruction, as: 'instruction'
849
- collection :uris, as: 'uris'
850
- end
851
- end
852
-
853
- class GoogleCloudTalentV4JobDerivedInfo
854
- # @private
855
- class Representation < Google::Apis::Core::JsonRepresentation
856
- collection :job_categories, as: 'jobCategories'
857
- collection :locations, as: 'locations', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4Location, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4Location::Representation
858
-
859
- end
860
- end
861
-
862
- class GoogleCloudTalentV4JobProcessingOptions
863
- # @private
864
- class Representation < Google::Apis::Core::JsonRepresentation
865
- property :disable_street_address_resolution, as: 'disableStreetAddressResolution'
866
- property :html_sanitization, as: 'htmlSanitization'
867
- end
868
- end
869
-
870
- class GoogleCloudTalentV4JobResult
871
- # @private
872
- class Representation < Google::Apis::Core::JsonRepresentation
873
- property :job, as: 'job', class: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4Job, decorator: Google::Apis::JobsV3p1beta1::GoogleCloudTalentV4Job::Representation
874
-
875
- property :status, as: 'status', class: Google::Apis::JobsV3p1beta1::Status, decorator: Google::Apis::JobsV3p1beta1::Status::Representation
876
-
877
- end
878
- end
879
-
880
- class GoogleCloudTalentV4Location
881
- # @private
882
- class Representation < Google::Apis::Core::JsonRepresentation
883
- property :lat_lng, as: 'latLng', class: Google::Apis::JobsV3p1beta1::LatLng, decorator: Google::Apis::JobsV3p1beta1::LatLng::Representation
884
-
885
- property :location_type, as: 'locationType'
886
- property :postal_address, as: 'postalAddress', class: Google::Apis::JobsV3p1beta1::PostalAddress, decorator: Google::Apis::JobsV3p1beta1::PostalAddress::Representation
887
-
888
- property :radius_miles, as: 'radiusMiles'
889
- end
890
- end
891
-
892
635
  class HistogramFacets
893
636
  # @private
894
637
  class Representation < Google::Apis::Core::JsonRepresentation
@@ -12,9 +12,9 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- require 'google/apis/jobs_v2/service.rb'
16
- require 'google/apis/jobs_v2/classes.rb'
17
- require 'google/apis/jobs_v2/representations.rb'
15
+ require 'google/apis/jobs_v4/service.rb'
16
+ require 'google/apis/jobs_v4/classes.rb'
17
+ require 'google/apis/jobs_v4/representations.rb'
18
18
 
19
19
  module Google
20
20
  module Apis
@@ -24,9 +24,9 @@ module Google
24
24
  # delete job postings, as well as search jobs based on keywords and filters.
25
25
  #
26
26
  # @see https://cloud.google.com/talent-solution/job-search/docs/
27
- module JobsV2
28
- VERSION = 'V2'
29
- REVISION = '20200929'
27
+ module JobsV4
28
+ VERSION = 'V4'
29
+ REVISION = '20201124'
30
30
 
31
31
  # View and manage your data across Google Cloud Platform services
32
32
  AUTH_CLOUD_PLATFORM = 'https://www.googleapis.com/auth/cloud-platform'
@@ -0,0 +1,2699 @@
1
+ # Copyright 2015 Google Inc.
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
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module JobsV4
24
+
25
+ # Application related details of a job posting.
26
+ class ApplicationInfo
27
+ include Google::Apis::Core::Hashable
28
+
29
+ # Use this field to specify email address(es) to which resumes or applications
30
+ # can be sent. The maximum number of allowed characters for each entry is 255.
31
+ # Corresponds to the JSON property `emails`
32
+ # @return [Array<String>]
33
+ attr_accessor :emails
34
+
35
+ # Use this field to provide instructions, such as "Mail your application to ...",
36
+ # that a candidate can follow to apply for the job. This field accepts and
37
+ # sanitizes HTML input, and also accepts bold, italic, ordered list, and
38
+ # unordered list markup tags. The maximum number of allowed characters is 3,000.
39
+ # Corresponds to the JSON property `instruction`
40
+ # @return [String]
41
+ attr_accessor :instruction
42
+
43
+ # Use this URI field to direct an applicant to a website, for example to link to
44
+ # an online application form. The maximum number of allowed characters for each
45
+ # entry is 2,000.
46
+ # Corresponds to the JSON property `uris`
47
+ # @return [Array<String>]
48
+ attr_accessor :uris
49
+
50
+ def initialize(**args)
51
+ update!(**args)
52
+ end
53
+
54
+ # Update properties of this object
55
+ def update!(**args)
56
+ @emails = args[:emails] if args.key?(:emails)
57
+ @instruction = args[:instruction] if args.key?(:instruction)
58
+ @uris = args[:uris] if args.key?(:uris)
59
+ end
60
+ end
61
+
62
+ # Request to create a batch of jobs.
63
+ class BatchCreateJobsRequest
64
+ include Google::Apis::Core::Hashable
65
+
66
+ # Required. The jobs to be created. A maximum of 200 jobs can be created in a
67
+ # batch.
68
+ # Corresponds to the JSON property `jobs`
69
+ # @return [Array<Google::Apis::JobsV4::Job>]
70
+ attr_accessor :jobs
71
+
72
+ def initialize(**args)
73
+ update!(**args)
74
+ end
75
+
76
+ # Update properties of this object
77
+ def update!(**args)
78
+ @jobs = args[:jobs] if args.key?(:jobs)
79
+ end
80
+ end
81
+
82
+ # The result of JobService.BatchCreateJobs. It's used to replace google.
83
+ # longrunning.Operation.response in case of success.
84
+ class BatchCreateJobsResponse
85
+ include Google::Apis::Core::Hashable
86
+
87
+ # List of job mutation results from a batch create operation. It can change
88
+ # until operation status is FINISHED, FAILED or CANCELLED.
89
+ # Corresponds to the JSON property `jobResults`
90
+ # @return [Array<Google::Apis::JobsV4::JobResult>]
91
+ attr_accessor :job_results
92
+
93
+ def initialize(**args)
94
+ update!(**args)
95
+ end
96
+
97
+ # Update properties of this object
98
+ def update!(**args)
99
+ @job_results = args[:job_results] if args.key?(:job_results)
100
+ end
101
+ end
102
+
103
+ # Request to delete a batch of jobs.
104
+ class BatchDeleteJobsRequest
105
+ include Google::Apis::Core::Hashable
106
+
107
+ # The names of the jobs to delete. The format is "projects/`project_id`/tenants/`
108
+ # tenant_id`/jobs/`job_id`". For example, "projects/foo/tenants/bar/jobs/baz". A
109
+ # maximum of 200 jobs can be deleted in a batch.
110
+ # Corresponds to the JSON property `names`
111
+ # @return [Array<String>]
112
+ attr_accessor :names
113
+
114
+ def initialize(**args)
115
+ update!(**args)
116
+ end
117
+
118
+ # Update properties of this object
119
+ def update!(**args)
120
+ @names = args[:names] if args.key?(:names)
121
+ end
122
+ end
123
+
124
+ # The result of JobService.BatchDeleteJobs. It's used to replace google.
125
+ # longrunning.Operation.response in case of success.
126
+ class BatchDeleteJobsResponse
127
+ include Google::Apis::Core::Hashable
128
+
129
+ # List of job mutation results from a batch delete operation. It can change
130
+ # until operation status is FINISHED, FAILED or CANCELLED.
131
+ # Corresponds to the JSON property `jobResults`
132
+ # @return [Array<Google::Apis::JobsV4::JobResult>]
133
+ attr_accessor :job_results
134
+
135
+ def initialize(**args)
136
+ update!(**args)
137
+ end
138
+
139
+ # Update properties of this object
140
+ def update!(**args)
141
+ @job_results = args[:job_results] if args.key?(:job_results)
142
+ end
143
+ end
144
+
145
+ # Metadata used for long running operations returned by CTS batch APIs. It's
146
+ # used to replace google.longrunning.Operation.metadata.
147
+ class BatchOperationMetadata
148
+ include Google::Apis::Core::Hashable
149
+
150
+ # The time when the batch operation is created.
151
+ # Corresponds to the JSON property `createTime`
152
+ # @return [String]
153
+ attr_accessor :create_time
154
+
155
+ # The time when the batch operation is finished and google.longrunning.Operation.
156
+ # done is set to `true`.
157
+ # Corresponds to the JSON property `endTime`
158
+ # @return [String]
159
+ attr_accessor :end_time
160
+
161
+ # Count of failed item(s) inside an operation.
162
+ # Corresponds to the JSON property `failureCount`
163
+ # @return [Fixnum]
164
+ attr_accessor :failure_count
165
+
166
+ # The state of a long running operation.
167
+ # Corresponds to the JSON property `state`
168
+ # @return [String]
169
+ attr_accessor :state
170
+
171
+ # More detailed information about operation state.
172
+ # Corresponds to the JSON property `stateDescription`
173
+ # @return [String]
174
+ attr_accessor :state_description
175
+
176
+ # Count of successful item(s) inside an operation.
177
+ # Corresponds to the JSON property `successCount`
178
+ # @return [Fixnum]
179
+ attr_accessor :success_count
180
+
181
+ # Count of total item(s) inside an operation.
182
+ # Corresponds to the JSON property `totalCount`
183
+ # @return [Fixnum]
184
+ attr_accessor :total_count
185
+
186
+ # The time when the batch operation status is updated. The metadata and the
187
+ # update_time is refreshed every minute otherwise cached data is returned.
188
+ # Corresponds to the JSON property `updateTime`
189
+ # @return [String]
190
+ attr_accessor :update_time
191
+
192
+ def initialize(**args)
193
+ update!(**args)
194
+ end
195
+
196
+ # Update properties of this object
197
+ def update!(**args)
198
+ @create_time = args[:create_time] if args.key?(:create_time)
199
+ @end_time = args[:end_time] if args.key?(:end_time)
200
+ @failure_count = args[:failure_count] if args.key?(:failure_count)
201
+ @state = args[:state] if args.key?(:state)
202
+ @state_description = args[:state_description] if args.key?(:state_description)
203
+ @success_count = args[:success_count] if args.key?(:success_count)
204
+ @total_count = args[:total_count] if args.key?(:total_count)
205
+ @update_time = args[:update_time] if args.key?(:update_time)
206
+ end
207
+ end
208
+
209
+ # Request to update a batch of jobs.
210
+ class BatchUpdateJobsRequest
211
+ include Google::Apis::Core::Hashable
212
+
213
+ # Required. The jobs to be updated. A maximum of 200 jobs can be updated in a
214
+ # batch.
215
+ # Corresponds to the JSON property `jobs`
216
+ # @return [Array<Google::Apis::JobsV4::Job>]
217
+ attr_accessor :jobs
218
+
219
+ # Strongly recommended for the best service experience. Be aware that it will
220
+ # also increase latency when checking the status of a batch operation. If
221
+ # update_mask is provided, only the specified fields in Job are updated.
222
+ # Otherwise all the fields are updated. A field mask to restrict the fields that
223
+ # are updated. Only top level fields of Job are supported. If update_mask is
224
+ # provided, The Job inside JobResult will only contains fields that is updated,
225
+ # plus the Id of the Job. Otherwise, Job will include all fields, which can
226
+ # yield a very large response.
227
+ # Corresponds to the JSON property `updateMask`
228
+ # @return [String]
229
+ attr_accessor :update_mask
230
+
231
+ def initialize(**args)
232
+ update!(**args)
233
+ end
234
+
235
+ # Update properties of this object
236
+ def update!(**args)
237
+ @jobs = args[:jobs] if args.key?(:jobs)
238
+ @update_mask = args[:update_mask] if args.key?(:update_mask)
239
+ end
240
+ end
241
+
242
+ # The result of JobService.BatchUpdateJobs. It's used to replace google.
243
+ # longrunning.Operation.response in case of success.
244
+ class BatchUpdateJobsResponse
245
+ include Google::Apis::Core::Hashable
246
+
247
+ # List of job mutation results from a batch update operation. It can change
248
+ # until operation status is FINISHED, FAILED or CANCELLED.
249
+ # Corresponds to the JSON property `jobResults`
250
+ # @return [Array<Google::Apis::JobsV4::JobResult>]
251
+ attr_accessor :job_results
252
+
253
+ def initialize(**args)
254
+ update!(**args)
255
+ end
256
+
257
+ # Update properties of this object
258
+ def update!(**args)
259
+ @job_results = args[:job_results] if args.key?(:job_results)
260
+ end
261
+ end
262
+
263
+ # An event issued when an end user interacts with the application that
264
+ # implements Cloud Talent Solution. Providing this information improves the
265
+ # quality of results for the API clients, enabling the service to perform
266
+ # optimally. The number of events sent must be consistent with other calls, such
267
+ # as job searches, issued to the service by the client.
268
+ class ClientEvent
269
+ include Google::Apis::Core::Hashable
270
+
271
+ # Required. The timestamp of the event.
272
+ # Corresponds to the JSON property `createTime`
273
+ # @return [String]
274
+ attr_accessor :create_time
275
+
276
+ # Required. A unique identifier, generated by the client application.
277
+ # Corresponds to the JSON property `eventId`
278
+ # @return [String]
279
+ attr_accessor :event_id
280
+
281
+ # Notes about the event provided by recruiters or other users, for example,
282
+ # feedback on why a job was bookmarked.
283
+ # Corresponds to the JSON property `eventNotes`
284
+ # @return [String]
285
+ attr_accessor :event_notes
286
+
287
+ # An event issued when a job seeker interacts with the application that
288
+ # implements Cloud Talent Solution.
289
+ # Corresponds to the JSON property `jobEvent`
290
+ # @return [Google::Apis::JobsV4::JobEvent]
291
+ attr_accessor :job_event
292
+
293
+ # Strongly recommended for the best service experience. A unique ID generated in
294
+ # the API responses. It can be found in ResponseMetadata.request_id.
295
+ # Corresponds to the JSON property `requestId`
296
+ # @return [String]
297
+ attr_accessor :request_id
298
+
299
+ def initialize(**args)
300
+ update!(**args)
301
+ end
302
+
303
+ # Update properties of this object
304
+ def update!(**args)
305
+ @create_time = args[:create_time] if args.key?(:create_time)
306
+ @event_id = args[:event_id] if args.key?(:event_id)
307
+ @event_notes = args[:event_notes] if args.key?(:event_notes)
308
+ @job_event = args[:job_event] if args.key?(:job_event)
309
+ @request_id = args[:request_id] if args.key?(:request_id)
310
+ end
311
+ end
312
+
313
+ # Parameters needed for commute search.
314
+ class CommuteFilter
315
+ include Google::Apis::Core::Hashable
316
+
317
+ # If `true`, jobs without street level addresses may also be returned. For city
318
+ # level addresses, the city center is used. For state and coarser level
319
+ # addresses, text matching is used. If this field is set to `false` or isn't
320
+ # specified, only jobs that include street level addresses will be returned by
321
+ # commute search.
322
+ # Corresponds to the JSON property `allowImpreciseAddresses`
323
+ # @return [Boolean]
324
+ attr_accessor :allow_imprecise_addresses
325
+ alias_method :allow_imprecise_addresses?, :allow_imprecise_addresses
326
+
327
+ # Required. The method of transportation to calculate the commute time for.
328
+ # Corresponds to the JSON property `commuteMethod`
329
+ # @return [String]
330
+ attr_accessor :commute_method
331
+
332
+ # Represents a time of day. The date and time zone are either not significant or
333
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
334
+ # types are google.type.Date and `google.protobuf.Timestamp`.
335
+ # Corresponds to the JSON property `departureTime`
336
+ # @return [Google::Apis::JobsV4::TimeOfDay]
337
+ attr_accessor :departure_time
338
+
339
+ # Specifies the traffic density to use when calculating commute time.
340
+ # Corresponds to the JSON property `roadTraffic`
341
+ # @return [String]
342
+ attr_accessor :road_traffic
343
+
344
+ # An object that represents a latitude/longitude pair. This is expressed as a
345
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
346
+ # specified otherwise, this must conform to the WGS84 standard. Values must be
347
+ # within normalized ranges.
348
+ # Corresponds to the JSON property `startCoordinates`
349
+ # @return [Google::Apis::JobsV4::LatLng]
350
+ attr_accessor :start_coordinates
351
+
352
+ # Required. The maximum travel time in seconds. The maximum allowed value is `
353
+ # 3600s` (one hour). Format is `123s`.
354
+ # Corresponds to the JSON property `travelDuration`
355
+ # @return [String]
356
+ attr_accessor :travel_duration
357
+
358
+ def initialize(**args)
359
+ update!(**args)
360
+ end
361
+
362
+ # Update properties of this object
363
+ def update!(**args)
364
+ @allow_imprecise_addresses = args[:allow_imprecise_addresses] if args.key?(:allow_imprecise_addresses)
365
+ @commute_method = args[:commute_method] if args.key?(:commute_method)
366
+ @departure_time = args[:departure_time] if args.key?(:departure_time)
367
+ @road_traffic = args[:road_traffic] if args.key?(:road_traffic)
368
+ @start_coordinates = args[:start_coordinates] if args.key?(:start_coordinates)
369
+ @travel_duration = args[:travel_duration] if args.key?(:travel_duration)
370
+ end
371
+ end
372
+
373
+ # Commute details related to this job.
374
+ class CommuteInfo
375
+ include Google::Apis::Core::Hashable
376
+
377
+ # A resource that represents a location with full geographic information.
378
+ # Corresponds to the JSON property `jobLocation`
379
+ # @return [Google::Apis::JobsV4::Location]
380
+ attr_accessor :job_location
381
+
382
+ # The number of seconds required to travel to the job location from the query
383
+ # location. A duration of 0 seconds indicates that the job isn't reachable
384
+ # within the requested duration, but was returned as part of an expanded query.
385
+ # Corresponds to the JSON property `travelDuration`
386
+ # @return [String]
387
+ attr_accessor :travel_duration
388
+
389
+ def initialize(**args)
390
+ update!(**args)
391
+ end
392
+
393
+ # Update properties of this object
394
+ def update!(**args)
395
+ @job_location = args[:job_location] if args.key?(:job_location)
396
+ @travel_duration = args[:travel_duration] if args.key?(:travel_duration)
397
+ end
398
+ end
399
+
400
+ # A Company resource represents a company in the service. A company is the
401
+ # entity that owns job postings, that is, the hiring entity responsible for
402
+ # employing applicants for the job position.
403
+ class Company
404
+ include Google::Apis::Core::Hashable
405
+
406
+ # The URI to employer's career site or careers page on the employer's web site,
407
+ # for example, "https://careers.google.com".
408
+ # Corresponds to the JSON property `careerSiteUri`
409
+ # @return [String]
410
+ attr_accessor :career_site_uri
411
+
412
+ # Derived details about the company.
413
+ # Corresponds to the JSON property `derivedInfo`
414
+ # @return [Google::Apis::JobsV4::CompanyDerivedInfo]
415
+ attr_accessor :derived_info
416
+
417
+ # Required. The display name of the company, for example, "Google LLC".
418
+ # Corresponds to the JSON property `displayName`
419
+ # @return [String]
420
+ attr_accessor :display_name
421
+
422
+ # Equal Employment Opportunity legal disclaimer text to be associated with all
423
+ # jobs, and typically to be displayed in all roles. The maximum number of
424
+ # allowed characters is 500.
425
+ # Corresponds to the JSON property `eeoText`
426
+ # @return [String]
427
+ attr_accessor :eeo_text
428
+
429
+ # Required. Client side company identifier, used to uniquely identify the
430
+ # company. The maximum number of allowed characters is 255.
431
+ # Corresponds to the JSON property `externalId`
432
+ # @return [String]
433
+ attr_accessor :external_id
434
+
435
+ # The street address of the company's main headquarters, which may be different
436
+ # from the job location. The service attempts to geolocate the provided address,
437
+ # and populates a more specific location wherever possible in DerivedInfo.
438
+ # headquarters_location.
439
+ # Corresponds to the JSON property `headquartersAddress`
440
+ # @return [String]
441
+ attr_accessor :headquarters_address
442
+
443
+ # Set to true if it is the hiring agency that post jobs for other employers.
444
+ # Defaults to false if not provided.
445
+ # Corresponds to the JSON property `hiringAgency`
446
+ # @return [Boolean]
447
+ attr_accessor :hiring_agency
448
+ alias_method :hiring_agency?, :hiring_agency
449
+
450
+ # A URI that hosts the employer's company logo.
451
+ # Corresponds to the JSON property `imageUri`
452
+ # @return [String]
453
+ attr_accessor :image_uri
454
+
455
+ # A list of keys of filterable Job.custom_attributes, whose corresponding `
456
+ # string_values` are used in keyword searches. Jobs with `string_values` under
457
+ # these specified field keys are returned if any of the values match the search
458
+ # keyword. Custom field values with parenthesis, brackets and special symbols
459
+ # are not searchable as-is, and those keyword queries must be surrounded by
460
+ # quotes.
461
+ # Corresponds to the JSON property `keywordSearchableJobCustomAttributes`
462
+ # @return [Array<String>]
463
+ attr_accessor :keyword_searchable_job_custom_attributes
464
+
465
+ # Required during company update. The resource name for a company. This is
466
+ # generated by the service when a company is created. The format is "projects/`
467
+ # project_id`/tenants/`tenant_id`/companies/`company_id`", for example, "
468
+ # projects/foo/tenants/bar/companies/baz".
469
+ # Corresponds to the JSON property `name`
470
+ # @return [String]
471
+ attr_accessor :name
472
+
473
+ # The employer's company size.
474
+ # Corresponds to the JSON property `size`
475
+ # @return [String]
476
+ attr_accessor :size
477
+
478
+ # Output only. Indicates whether a company is flagged to be suspended from
479
+ # public availability by the service when job content appears suspicious,
480
+ # abusive, or spammy.
481
+ # Corresponds to the JSON property `suspended`
482
+ # @return [Boolean]
483
+ attr_accessor :suspended
484
+ alias_method :suspended?, :suspended
485
+
486
+ # The URI representing the company's primary web site or home page, for example,
487
+ # "https://www.google.com". The maximum number of allowed characters is 255.
488
+ # Corresponds to the JSON property `websiteUri`
489
+ # @return [String]
490
+ attr_accessor :website_uri
491
+
492
+ def initialize(**args)
493
+ update!(**args)
494
+ end
495
+
496
+ # Update properties of this object
497
+ def update!(**args)
498
+ @career_site_uri = args[:career_site_uri] if args.key?(:career_site_uri)
499
+ @derived_info = args[:derived_info] if args.key?(:derived_info)
500
+ @display_name = args[:display_name] if args.key?(:display_name)
501
+ @eeo_text = args[:eeo_text] if args.key?(:eeo_text)
502
+ @external_id = args[:external_id] if args.key?(:external_id)
503
+ @headquarters_address = args[:headquarters_address] if args.key?(:headquarters_address)
504
+ @hiring_agency = args[:hiring_agency] if args.key?(:hiring_agency)
505
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
506
+ @keyword_searchable_job_custom_attributes = args[:keyword_searchable_job_custom_attributes] if args.key?(:keyword_searchable_job_custom_attributes)
507
+ @name = args[:name] if args.key?(:name)
508
+ @size = args[:size] if args.key?(:size)
509
+ @suspended = args[:suspended] if args.key?(:suspended)
510
+ @website_uri = args[:website_uri] if args.key?(:website_uri)
511
+ end
512
+ end
513
+
514
+ # Derived details about the company.
515
+ class CompanyDerivedInfo
516
+ include Google::Apis::Core::Hashable
517
+
518
+ # A resource that represents a location with full geographic information.
519
+ # Corresponds to the JSON property `headquartersLocation`
520
+ # @return [Google::Apis::JobsV4::Location]
521
+ attr_accessor :headquarters_location
522
+
523
+ def initialize(**args)
524
+ update!(**args)
525
+ end
526
+
527
+ # Update properties of this object
528
+ def update!(**args)
529
+ @headquarters_location = args[:headquarters_location] if args.key?(:headquarters_location)
530
+ end
531
+ end
532
+
533
+ # A compensation entry that represents one component of compensation, such as
534
+ # base pay, bonus, or other compensation type. Annualization: One compensation
535
+ # entry can be annualized if - it contains valid amount or range. - and its
536
+ # expected_units_per_year is set or can be derived. Its annualized range is
537
+ # determined as (amount or range) times expected_units_per_year.
538
+ class CompensationEntry
539
+ include Google::Apis::Core::Hashable
540
+
541
+ # Represents an amount of money with its currency type.
542
+ # Corresponds to the JSON property `amount`
543
+ # @return [Google::Apis::JobsV4::Money]
544
+ attr_accessor :amount
545
+
546
+ # Compensation description. For example, could indicate equity terms or provide
547
+ # additional context to an estimated bonus.
548
+ # Corresponds to the JSON property `description`
549
+ # @return [String]
550
+ attr_accessor :description
551
+
552
+ # Expected number of units paid each year. If not specified, when Job.
553
+ # employment_types is FULLTIME, a default value is inferred based on unit.
554
+ # Default values: - HOURLY: 2080 - DAILY: 260 - WEEKLY: 52 - MONTHLY: 12 -
555
+ # ANNUAL: 1
556
+ # Corresponds to the JSON property `expectedUnitsPerYear`
557
+ # @return [Float]
558
+ attr_accessor :expected_units_per_year
559
+
560
+ # Compensation range.
561
+ # Corresponds to the JSON property `range`
562
+ # @return [Google::Apis::JobsV4::CompensationRange]
563
+ attr_accessor :range
564
+
565
+ # Compensation type. Default is CompensationType.COMPENSATION_TYPE_UNSPECIFIED.
566
+ # Corresponds to the JSON property `type`
567
+ # @return [String]
568
+ attr_accessor :type
569
+
570
+ # Frequency of the specified amount. Default is CompensationUnit.
571
+ # COMPENSATION_UNIT_UNSPECIFIED.
572
+ # Corresponds to the JSON property `unit`
573
+ # @return [String]
574
+ attr_accessor :unit
575
+
576
+ def initialize(**args)
577
+ update!(**args)
578
+ end
579
+
580
+ # Update properties of this object
581
+ def update!(**args)
582
+ @amount = args[:amount] if args.key?(:amount)
583
+ @description = args[:description] if args.key?(:description)
584
+ @expected_units_per_year = args[:expected_units_per_year] if args.key?(:expected_units_per_year)
585
+ @range = args[:range] if args.key?(:range)
586
+ @type = args[:type] if args.key?(:type)
587
+ @unit = args[:unit] if args.key?(:unit)
588
+ end
589
+ end
590
+
591
+ # Filter on job compensation type and amount.
592
+ class CompensationFilter
593
+ include Google::Apis::Core::Hashable
594
+
595
+ # If set to true, jobs with unspecified compensation range fields are included.
596
+ # Corresponds to the JSON property `includeJobsWithUnspecifiedCompensationRange`
597
+ # @return [Boolean]
598
+ attr_accessor :include_jobs_with_unspecified_compensation_range
599
+ alias_method :include_jobs_with_unspecified_compensation_range?, :include_jobs_with_unspecified_compensation_range
600
+
601
+ # Compensation range.
602
+ # Corresponds to the JSON property `range`
603
+ # @return [Google::Apis::JobsV4::CompensationRange]
604
+ attr_accessor :range
605
+
606
+ # Required. Type of filter.
607
+ # Corresponds to the JSON property `type`
608
+ # @return [String]
609
+ attr_accessor :type
610
+
611
+ # Required. Specify desired `base compensation entry's` CompensationInfo.
612
+ # CompensationUnit.
613
+ # Corresponds to the JSON property `units`
614
+ # @return [Array<String>]
615
+ attr_accessor :units
616
+
617
+ def initialize(**args)
618
+ update!(**args)
619
+ end
620
+
621
+ # Update properties of this object
622
+ def update!(**args)
623
+ @include_jobs_with_unspecified_compensation_range = args[:include_jobs_with_unspecified_compensation_range] if args.key?(:include_jobs_with_unspecified_compensation_range)
624
+ @range = args[:range] if args.key?(:range)
625
+ @type = args[:type] if args.key?(:type)
626
+ @units = args[:units] if args.key?(:units)
627
+ end
628
+ end
629
+
630
+ # Job compensation details.
631
+ class CompensationInfo
632
+ include Google::Apis::Core::Hashable
633
+
634
+ # Compensation range.
635
+ # Corresponds to the JSON property `annualizedBaseCompensationRange`
636
+ # @return [Google::Apis::JobsV4::CompensationRange]
637
+ attr_accessor :annualized_base_compensation_range
638
+
639
+ # Compensation range.
640
+ # Corresponds to the JSON property `annualizedTotalCompensationRange`
641
+ # @return [Google::Apis::JobsV4::CompensationRange]
642
+ attr_accessor :annualized_total_compensation_range
643
+
644
+ # Job compensation information. At most one entry can be of type
645
+ # CompensationInfo.CompensationType.BASE, which is referred as **base
646
+ # compensation entry** for the job.
647
+ # Corresponds to the JSON property `entries`
648
+ # @return [Array<Google::Apis::JobsV4::CompensationEntry>]
649
+ attr_accessor :entries
650
+
651
+ def initialize(**args)
652
+ update!(**args)
653
+ end
654
+
655
+ # Update properties of this object
656
+ def update!(**args)
657
+ @annualized_base_compensation_range = args[:annualized_base_compensation_range] if args.key?(:annualized_base_compensation_range)
658
+ @annualized_total_compensation_range = args[:annualized_total_compensation_range] if args.key?(:annualized_total_compensation_range)
659
+ @entries = args[:entries] if args.key?(:entries)
660
+ end
661
+ end
662
+
663
+ # Compensation range.
664
+ class CompensationRange
665
+ include Google::Apis::Core::Hashable
666
+
667
+ # Represents an amount of money with its currency type.
668
+ # Corresponds to the JSON property `maxCompensation`
669
+ # @return [Google::Apis::JobsV4::Money]
670
+ attr_accessor :max_compensation
671
+
672
+ # Represents an amount of money with its currency type.
673
+ # Corresponds to the JSON property `minCompensation`
674
+ # @return [Google::Apis::JobsV4::Money]
675
+ attr_accessor :min_compensation
676
+
677
+ def initialize(**args)
678
+ update!(**args)
679
+ end
680
+
681
+ # Update properties of this object
682
+ def update!(**args)
683
+ @max_compensation = args[:max_compensation] if args.key?(:max_compensation)
684
+ @min_compensation = args[:min_compensation] if args.key?(:min_compensation)
685
+ end
686
+ end
687
+
688
+ # Response of auto-complete query.
689
+ class CompleteQueryResponse
690
+ include Google::Apis::Core::Hashable
691
+
692
+ # Results of the matching job/company candidates.
693
+ # Corresponds to the JSON property `completionResults`
694
+ # @return [Array<Google::Apis::JobsV4::CompletionResult>]
695
+ attr_accessor :completion_results
696
+
697
+ # Additional information returned to client, such as debugging information.
698
+ # Corresponds to the JSON property `metadata`
699
+ # @return [Google::Apis::JobsV4::ResponseMetadata]
700
+ attr_accessor :metadata
701
+
702
+ def initialize(**args)
703
+ update!(**args)
704
+ end
705
+
706
+ # Update properties of this object
707
+ def update!(**args)
708
+ @completion_results = args[:completion_results] if args.key?(:completion_results)
709
+ @metadata = args[:metadata] if args.key?(:metadata)
710
+ end
711
+ end
712
+
713
+ # Resource that represents completion results.
714
+ class CompletionResult
715
+ include Google::Apis::Core::Hashable
716
+
717
+ # The URI of the company image for COMPANY_NAME.
718
+ # Corresponds to the JSON property `imageUri`
719
+ # @return [String]
720
+ attr_accessor :image_uri
721
+
722
+ # The suggestion for the query.
723
+ # Corresponds to the JSON property `suggestion`
724
+ # @return [String]
725
+ attr_accessor :suggestion
726
+
727
+ # The completion topic.
728
+ # Corresponds to the JSON property `type`
729
+ # @return [String]
730
+ attr_accessor :type
731
+
732
+ def initialize(**args)
733
+ update!(**args)
734
+ end
735
+
736
+ # Update properties of this object
737
+ def update!(**args)
738
+ @image_uri = args[:image_uri] if args.key?(:image_uri)
739
+ @suggestion = args[:suggestion] if args.key?(:suggestion)
740
+ @type = args[:type] if args.key?(:type)
741
+ end
742
+ end
743
+
744
+ # Custom attribute values that are either filterable or non-filterable.
745
+ class CustomAttribute
746
+ include Google::Apis::Core::Hashable
747
+
748
+ # If the `filterable` flag is true, the custom field values may be used for
749
+ # custom attribute filters JobQuery.custom_attribute_filter. If false, these
750
+ # values may not be used for custom attribute filters. Default is false.
751
+ # Corresponds to the JSON property `filterable`
752
+ # @return [Boolean]
753
+ attr_accessor :filterable
754
+ alias_method :filterable?, :filterable
755
+
756
+ # If the `keyword_searchable` flag is true, the keywords in custom fields are
757
+ # searchable by keyword match. If false, the values are not searchable by
758
+ # keyword match. Default is false.
759
+ # Corresponds to the JSON property `keywordSearchable`
760
+ # @return [Boolean]
761
+ attr_accessor :keyword_searchable
762
+ alias_method :keyword_searchable?, :keyword_searchable
763
+
764
+ # Exactly one of string_values or long_values must be specified. This field is
765
+ # used to perform number range search. (`EQ`, `GT`, `GE`, `LE`, `LT`) over
766
+ # filterable `long_value`. Currently at most 1 long_values is supported.
767
+ # Corresponds to the JSON property `longValues`
768
+ # @return [Array<Fixnum>]
769
+ attr_accessor :long_values
770
+
771
+ # Exactly one of string_values or long_values must be specified. This field is
772
+ # used to perform a string match (`CASE_SENSITIVE_MATCH` or `
773
+ # CASE_INSENSITIVE_MATCH`) search. For filterable `string_value`s, a maximum
774
+ # total number of 200 values is allowed, with each `string_value` has a byte
775
+ # size of no more than 500B. For unfilterable `string_values`, the maximum total
776
+ # byte size of unfilterable `string_values` is 50KB. Empty string isn't allowed.
777
+ # Corresponds to the JSON property `stringValues`
778
+ # @return [Array<String>]
779
+ attr_accessor :string_values
780
+
781
+ def initialize(**args)
782
+ update!(**args)
783
+ end
784
+
785
+ # Update properties of this object
786
+ def update!(**args)
787
+ @filterable = args[:filterable] if args.key?(:filterable)
788
+ @keyword_searchable = args[:keyword_searchable] if args.key?(:keyword_searchable)
789
+ @long_values = args[:long_values] if args.key?(:long_values)
790
+ @string_values = args[:string_values] if args.key?(:string_values)
791
+ end
792
+ end
793
+
794
+ # Custom ranking information for SearchJobsRequest.
795
+ class CustomRankingInfo
796
+ include Google::Apis::Core::Hashable
797
+
798
+ # Required. Controls over how important the score of CustomRankingInfo.
799
+ # ranking_expression gets applied to job's final ranking position. An error is
800
+ # thrown if not specified.
801
+ # Corresponds to the JSON property `importanceLevel`
802
+ # @return [String]
803
+ attr_accessor :importance_level
804
+
805
+ # Required. Controls over how job documents get ranked on top of existing
806
+ # relevance score (determined by API algorithm). A combination of the ranking
807
+ # expression and relevance score is used to determine job's final ranking
808
+ # position. The syntax for this expression is a subset of Google SQL syntax.
809
+ # Supported operators are: +, -, *, /, where the left and right side of the
810
+ # operator is either a numeric Job.custom_attributes key, integer/double value
811
+ # or an expression that can be evaluated to a number. Parenthesis are supported
812
+ # to adjust calculation precedence. The expression must be < 100 characters in
813
+ # length. The expression is considered invalid for a job if the expression
814
+ # references custom attributes that are not populated on the job or if the
815
+ # expression results in a divide by zero. If an expression is invalid for a job,
816
+ # that job is demoted to the end of the results. Sample ranking expression (year
817
+ # + 25) * 0.25 - (freshness / 0.5)
818
+ # Corresponds to the JSON property `rankingExpression`
819
+ # @return [String]
820
+ attr_accessor :ranking_expression
821
+
822
+ def initialize(**args)
823
+ update!(**args)
824
+ end
825
+
826
+ # Update properties of this object
827
+ def update!(**args)
828
+ @importance_level = args[:importance_level] if args.key?(:importance_level)
829
+ @ranking_expression = args[:ranking_expression] if args.key?(:ranking_expression)
830
+ end
831
+ end
832
+
833
+ # Device information collected from the job seeker, candidate, or other entity
834
+ # conducting the job search. Providing this information improves the quality of
835
+ # the search results across devices.
836
+ class DeviceInfo
837
+ include Google::Apis::Core::Hashable
838
+
839
+ # Type of the device.
840
+ # Corresponds to the JSON property `deviceType`
841
+ # @return [String]
842
+ attr_accessor :device_type
843
+
844
+ # A device-specific ID. The ID must be a unique identifier that distinguishes
845
+ # the device from other devices.
846
+ # Corresponds to the JSON property `id`
847
+ # @return [String]
848
+ attr_accessor :id
849
+
850
+ def initialize(**args)
851
+ update!(**args)
852
+ end
853
+
854
+ # Update properties of this object
855
+ def update!(**args)
856
+ @device_type = args[:device_type] if args.key?(:device_type)
857
+ @id = args[:id] if args.key?(:id)
858
+ end
859
+ end
860
+
861
+ # A generic empty message that you can re-use to avoid defining duplicated empty
862
+ # messages in your APIs. A typical example is to use it as the request or the
863
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
864
+ # protobuf.Empty) returns (google.protobuf.Empty); ` The JSON representation for
865
+ # `Empty` is empty JSON object ````.
866
+ class Empty
867
+ include Google::Apis::Core::Hashable
868
+
869
+ def initialize(**args)
870
+ update!(**args)
871
+ end
872
+
873
+ # Update properties of this object
874
+ def update!(**args)
875
+ end
876
+ end
877
+
878
+ # The histogram request.
879
+ class HistogramQuery
880
+ include Google::Apis::Core::Hashable
881
+
882
+ # An expression specifies a histogram request against matching jobs for searches.
883
+ # See SearchJobsRequest.histogram_queries for details about syntax.
884
+ # Corresponds to the JSON property `histogramQuery`
885
+ # @return [String]
886
+ attr_accessor :histogram_query
887
+
888
+ def initialize(**args)
889
+ update!(**args)
890
+ end
891
+
892
+ # Update properties of this object
893
+ def update!(**args)
894
+ @histogram_query = args[:histogram_query] if args.key?(:histogram_query)
895
+ end
896
+ end
897
+
898
+ # Histogram result that matches HistogramQuery specified in searches.
899
+ class HistogramQueryResult
900
+ include Google::Apis::Core::Hashable
901
+
902
+ # A map from the values of the facet associated with distinct values to the
903
+ # number of matching entries with corresponding value. The key format is: * (for
904
+ # string histogram) string values stored in the field. * (for named numeric
905
+ # bucket) name specified in `bucket()` function, like for `bucket(0, MAX, "non-
906
+ # negative")`, the key will be `non-negative`. * (for anonymous numeric bucket)
907
+ # range formatted as `-`, for example, `0-1000`, `MIN-0`, and `0-MAX`.
908
+ # Corresponds to the JSON property `histogram`
909
+ # @return [Hash<String,Fixnum>]
910
+ attr_accessor :histogram
911
+
912
+ # Requested histogram expression.
913
+ # Corresponds to the JSON property `histogramQuery`
914
+ # @return [String]
915
+ attr_accessor :histogram_query
916
+
917
+ def initialize(**args)
918
+ update!(**args)
919
+ end
920
+
921
+ # Update properties of this object
922
+ def update!(**args)
923
+ @histogram = args[:histogram] if args.key?(:histogram)
924
+ @histogram_query = args[:histogram_query] if args.key?(:histogram_query)
925
+ end
926
+ end
927
+
928
+ # A Job resource represents a job posting (also referred to as a "job listing"
929
+ # or "job requisition"). A job belongs to a Company, which is the hiring entity
930
+ # responsible for the job.
931
+ class Job
932
+ include Google::Apis::Core::Hashable
933
+
934
+ # Strongly recommended for the best service experience. Location(s) where the
935
+ # employer is looking to hire for this job posting. Specifying the full street
936
+ # address(es) of the hiring location enables better API results, especially job
937
+ # searches by commute time. At most 50 locations are allowed for best search
938
+ # performance. If a job has more locations, it is suggested to split it into
939
+ # multiple jobs with unique requisition_ids (e.g. 'ReqA' becomes 'ReqA-1', 'ReqA-
940
+ # 2', and so on.) as multiple jobs with the same company, language_code and
941
+ # requisition_id are not allowed. If the original requisition_id must be
942
+ # preserved, a custom field should be used for storage. It is also suggested to
943
+ # group the locations that close to each other in the same job for better search
944
+ # experience. The maximum number of allowed characters is 500.
945
+ # Corresponds to the JSON property `addresses`
946
+ # @return [Array<String>]
947
+ attr_accessor :addresses
948
+
949
+ # Application related details of a job posting.
950
+ # Corresponds to the JSON property `applicationInfo`
951
+ # @return [Google::Apis::JobsV4::ApplicationInfo]
952
+ attr_accessor :application_info
953
+
954
+ # Required. The resource name of the company listing the job. The format is "
955
+ # projects/`project_id`/tenants/`tenant_id`/companies/`company_id`". For example,
956
+ # "projects/foo/tenants/bar/companies/baz".
957
+ # Corresponds to the JSON property `company`
958
+ # @return [String]
959
+ attr_accessor :company
960
+
961
+ # Output only. Display name of the company listing the job.
962
+ # Corresponds to the JSON property `companyDisplayName`
963
+ # @return [String]
964
+ attr_accessor :company_display_name
965
+
966
+ # Job compensation details.
967
+ # Corresponds to the JSON property `compensationInfo`
968
+ # @return [Google::Apis::JobsV4::CompensationInfo]
969
+ attr_accessor :compensation_info
970
+
971
+ # A map of fields to hold both filterable and non-filterable custom job
972
+ # attributes that are not covered by the provided structured fields. The keys of
973
+ # the map are strings up to 64 bytes and must match the pattern: a-zA-Z*. For
974
+ # example, key0LikeThis or KEY_1_LIKE_THIS. At most 100 filterable and at most
975
+ # 100 unfilterable keys are supported. For filterable `string_values`, across
976
+ # all keys at most 200 values are allowed, with each string no more than 255
977
+ # characters. For unfilterable `string_values`, the maximum total size of `
978
+ # string_values` across all keys is 50KB.
979
+ # Corresponds to the JSON property `customAttributes`
980
+ # @return [Hash<String,Google::Apis::JobsV4::CustomAttribute>]
981
+ attr_accessor :custom_attributes
982
+
983
+ # The desired education degrees for the job, such as Bachelors, Masters.
984
+ # Corresponds to the JSON property `degreeTypes`
985
+ # @return [Array<String>]
986
+ attr_accessor :degree_types
987
+
988
+ # The department or functional area within the company with the open position.
989
+ # The maximum number of allowed characters is 255.
990
+ # Corresponds to the JSON property `department`
991
+ # @return [String]
992
+ attr_accessor :department
993
+
994
+ # Derived details about the job posting.
995
+ # Corresponds to the JSON property `derivedInfo`
996
+ # @return [Google::Apis::JobsV4::JobDerivedInfo]
997
+ attr_accessor :derived_info
998
+
999
+ # Required. The description of the job, which typically includes a multi-
1000
+ # paragraph description of the company and related information. Separate fields
1001
+ # are provided on the job object for responsibilities, qualifications, and other
1002
+ # job characteristics. Use of these separate job fields is recommended. This
1003
+ # field accepts and sanitizes HTML input, and also accepts bold, italic, ordered
1004
+ # list, and unordered list markup tags. The maximum number of allowed characters
1005
+ # is 100,000.
1006
+ # Corresponds to the JSON property `description`
1007
+ # @return [String]
1008
+ attr_accessor :description
1009
+
1010
+ # The employment type(s) of a job, for example, full time or part time.
1011
+ # Corresponds to the JSON property `employmentTypes`
1012
+ # @return [Array<String>]
1013
+ attr_accessor :employment_types
1014
+
1015
+ # A description of bonus, commission, and other compensation incentives
1016
+ # associated with the job not including salary or pay. The maximum number of
1017
+ # allowed characters is 10,000.
1018
+ # Corresponds to the JSON property `incentives`
1019
+ # @return [String]
1020
+ attr_accessor :incentives
1021
+
1022
+ # The benefits included with the job.
1023
+ # Corresponds to the JSON property `jobBenefits`
1024
+ # @return [Array<String>]
1025
+ attr_accessor :job_benefits
1026
+
1027
+ # The end timestamp of the job. Typically this field is used for contracting
1028
+ # engagements. Invalid timestamps are ignored.
1029
+ # Corresponds to the JSON property `jobEndTime`
1030
+ # @return [String]
1031
+ attr_accessor :job_end_time
1032
+
1033
+ # The experience level associated with the job, such as "Entry Level".
1034
+ # Corresponds to the JSON property `jobLevel`
1035
+ # @return [String]
1036
+ attr_accessor :job_level
1037
+
1038
+ # The start timestamp of the job in UTC time zone. Typically this field is used
1039
+ # for contracting engagements. Invalid timestamps are ignored.
1040
+ # Corresponds to the JSON property `jobStartTime`
1041
+ # @return [String]
1042
+ attr_accessor :job_start_time
1043
+
1044
+ # The language of the posting. This field is distinct from any requirements for
1045
+ # fluency that are associated with the job. Language codes must be in BCP-47
1046
+ # format, such as "en-US" or "sr-Latn". For more information, see [Tags for
1047
+ # Identifying Languages](https://tools.ietf.org/html/bcp47)`: class="external"
1048
+ # target="_blank" `. If this field is unspecified and Job.description is present,
1049
+ # detected language code based on Job.description is assigned, otherwise
1050
+ # defaults to 'en_US'.
1051
+ # Corresponds to the JSON property `languageCode`
1052
+ # @return [String]
1053
+ attr_accessor :language_code
1054
+
1055
+ # Required during job update. The resource name for the job. This is generated
1056
+ # by the service when a job is created. The format is "projects/`project_id`/
1057
+ # tenants/`tenant_id`/jobs/`job_id`". For example, "projects/foo/tenants/bar/
1058
+ # jobs/baz". Use of this field in job queries and API calls is preferred over
1059
+ # the use of requisition_id since this value is unique.
1060
+ # Corresponds to the JSON property `name`
1061
+ # @return [String]
1062
+ attr_accessor :name
1063
+
1064
+ # Output only. The timestamp when this job posting was created.
1065
+ # Corresponds to the JSON property `postingCreateTime`
1066
+ # @return [String]
1067
+ attr_accessor :posting_create_time
1068
+
1069
+ # Strongly recommended for the best service experience. The expiration timestamp
1070
+ # of the job. After this timestamp, the job is marked as expired, and it no
1071
+ # longer appears in search results. The expired job can't be listed by the
1072
+ # ListJobs API, but it can be retrieved with the GetJob API or updated with the
1073
+ # UpdateJob API or deleted with the DeleteJob API. An expired job can be updated
1074
+ # and opened again by using a future expiration timestamp. Updating an expired
1075
+ # job fails if there is another existing open job with same company,
1076
+ # language_code and requisition_id. The expired jobs are retained in our system
1077
+ # for 90 days. However, the overall expired job count cannot exceed 3 times the
1078
+ # maximum number of open jobs over previous 7 days. If this threshold is
1079
+ # exceeded, expired jobs are cleaned out in order of earliest expire time.
1080
+ # Expired jobs are no longer accessible after they are cleaned out. Invalid
1081
+ # timestamps are ignored, and treated as expire time not provided. If the
1082
+ # timestamp is before the instant request is made, the job is treated as expired
1083
+ # immediately on creation. This kind of job can not be updated. And when
1084
+ # creating a job with past timestamp, the posting_publish_time must be set
1085
+ # before posting_expire_time. The purpose of this feature is to allow other
1086
+ # objects, such as Application, to refer a job that didn't exist in the system
1087
+ # prior to becoming expired. If you want to modify a job that was expired on
1088
+ # creation, delete it and create a new one. If this value isn't provided at the
1089
+ # time of job creation or is invalid, the job posting expires after 30 days from
1090
+ # the job's creation time. For example, if the job was created on 2017/01/01 13:
1091
+ # 00AM UTC with an unspecified expiration date, the job expires after 2017/01/31
1092
+ # 13:00AM UTC. If this value isn't provided on job update, it depends on the
1093
+ # field masks set by UpdateJobRequest.update_mask. If the field masks include
1094
+ # job_end_time, or the masks are empty meaning that every field is updated, the
1095
+ # job posting expires after 30 days from the job's last update time. Otherwise
1096
+ # the expiration date isn't updated.
1097
+ # Corresponds to the JSON property `postingExpireTime`
1098
+ # @return [String]
1099
+ attr_accessor :posting_expire_time
1100
+
1101
+ # The timestamp this job posting was most recently published. The default value
1102
+ # is the time the request arrives at the server. Invalid timestamps are ignored.
1103
+ # Corresponds to the JSON property `postingPublishTime`
1104
+ # @return [String]
1105
+ attr_accessor :posting_publish_time
1106
+
1107
+ # The job PostingRegion (for example, state, country) throughout which the job
1108
+ # is available. If this field is set, a LocationFilter in a search query within
1109
+ # the job region finds this job posting if an exact location match isn't
1110
+ # specified. If this field is set to PostingRegion.NATION or PostingRegion.
1111
+ # ADMINISTRATIVE_AREA, setting job Job.addresses to the same location level as
1112
+ # this field is strongly recommended.
1113
+ # Corresponds to the JSON property `postingRegion`
1114
+ # @return [String]
1115
+ attr_accessor :posting_region
1116
+
1117
+ # Output only. The timestamp when this job posting was last updated.
1118
+ # Corresponds to the JSON property `postingUpdateTime`
1119
+ # @return [String]
1120
+ attr_accessor :posting_update_time
1121
+
1122
+ # Options for job processing.
1123
+ # Corresponds to the JSON property `processingOptions`
1124
+ # @return [Google::Apis::JobsV4::ProcessingOptions]
1125
+ attr_accessor :processing_options
1126
+
1127
+ # A promotion value of the job, as determined by the client. The value
1128
+ # determines the sort order of the jobs returned when searching for jobs using
1129
+ # the featured jobs search call, with higher promotional values being returned
1130
+ # first and ties being resolved by relevance sort. Only the jobs with a
1131
+ # promotionValue >0 are returned in a FEATURED_JOB_SEARCH. Default value is 0,
1132
+ # and negative values are treated as 0.
1133
+ # Corresponds to the JSON property `promotionValue`
1134
+ # @return [Fixnum]
1135
+ attr_accessor :promotion_value
1136
+
1137
+ # A description of the qualifications required to perform the job. The use of
1138
+ # this field is recommended as an alternative to using the more general
1139
+ # description field. This field accepts and sanitizes HTML input, and also
1140
+ # accepts bold, italic, ordered list, and unordered list markup tags. The
1141
+ # maximum number of allowed characters is 10,000.
1142
+ # Corresponds to the JSON property `qualifications`
1143
+ # @return [String]
1144
+ attr_accessor :qualifications
1145
+
1146
+ # Required. The requisition ID, also referred to as the posting ID, is assigned
1147
+ # by the client to identify a job. This field is intended to be used by clients
1148
+ # for client identification and tracking of postings. A job isn't allowed to be
1149
+ # created if there is another job with the same company, language_code and
1150
+ # requisition_id. The maximum number of allowed characters is 255.
1151
+ # Corresponds to the JSON property `requisitionId`
1152
+ # @return [String]
1153
+ attr_accessor :requisition_id
1154
+
1155
+ # A description of job responsibilities. The use of this field is recommended as
1156
+ # an alternative to using the more general description field. This field accepts
1157
+ # and sanitizes HTML input, and also accepts bold, italic, ordered list, and
1158
+ # unordered list markup tags. The maximum number of allowed characters is 10,000.
1159
+ # Corresponds to the JSON property `responsibilities`
1160
+ # @return [String]
1161
+ attr_accessor :responsibilities
1162
+
1163
+ # Required. The title of the job, such as "Software Engineer" The maximum number
1164
+ # of allowed characters is 500.
1165
+ # Corresponds to the JSON property `title`
1166
+ # @return [String]
1167
+ attr_accessor :title
1168
+
1169
+ # Deprecated. The job is only visible to the owner. The visibility of the job.
1170
+ # Defaults to Visibility.ACCOUNT_ONLY if not specified.
1171
+ # Corresponds to the JSON property `visibility`
1172
+ # @return [String]
1173
+ attr_accessor :visibility
1174
+
1175
+ def initialize(**args)
1176
+ update!(**args)
1177
+ end
1178
+
1179
+ # Update properties of this object
1180
+ def update!(**args)
1181
+ @addresses = args[:addresses] if args.key?(:addresses)
1182
+ @application_info = args[:application_info] if args.key?(:application_info)
1183
+ @company = args[:company] if args.key?(:company)
1184
+ @company_display_name = args[:company_display_name] if args.key?(:company_display_name)
1185
+ @compensation_info = args[:compensation_info] if args.key?(:compensation_info)
1186
+ @custom_attributes = args[:custom_attributes] if args.key?(:custom_attributes)
1187
+ @degree_types = args[:degree_types] if args.key?(:degree_types)
1188
+ @department = args[:department] if args.key?(:department)
1189
+ @derived_info = args[:derived_info] if args.key?(:derived_info)
1190
+ @description = args[:description] if args.key?(:description)
1191
+ @employment_types = args[:employment_types] if args.key?(:employment_types)
1192
+ @incentives = args[:incentives] if args.key?(:incentives)
1193
+ @job_benefits = args[:job_benefits] if args.key?(:job_benefits)
1194
+ @job_end_time = args[:job_end_time] if args.key?(:job_end_time)
1195
+ @job_level = args[:job_level] if args.key?(:job_level)
1196
+ @job_start_time = args[:job_start_time] if args.key?(:job_start_time)
1197
+ @language_code = args[:language_code] if args.key?(:language_code)
1198
+ @name = args[:name] if args.key?(:name)
1199
+ @posting_create_time = args[:posting_create_time] if args.key?(:posting_create_time)
1200
+ @posting_expire_time = args[:posting_expire_time] if args.key?(:posting_expire_time)
1201
+ @posting_publish_time = args[:posting_publish_time] if args.key?(:posting_publish_time)
1202
+ @posting_region = args[:posting_region] if args.key?(:posting_region)
1203
+ @posting_update_time = args[:posting_update_time] if args.key?(:posting_update_time)
1204
+ @processing_options = args[:processing_options] if args.key?(:processing_options)
1205
+ @promotion_value = args[:promotion_value] if args.key?(:promotion_value)
1206
+ @qualifications = args[:qualifications] if args.key?(:qualifications)
1207
+ @requisition_id = args[:requisition_id] if args.key?(:requisition_id)
1208
+ @responsibilities = args[:responsibilities] if args.key?(:responsibilities)
1209
+ @title = args[:title] if args.key?(:title)
1210
+ @visibility = args[:visibility] if args.key?(:visibility)
1211
+ end
1212
+ end
1213
+
1214
+ # Derived details about the job posting.
1215
+ class JobDerivedInfo
1216
+ include Google::Apis::Core::Hashable
1217
+
1218
+ # Job categories derived from Job.title and Job.description.
1219
+ # Corresponds to the JSON property `jobCategories`
1220
+ # @return [Array<String>]
1221
+ attr_accessor :job_categories
1222
+
1223
+ # Structured locations of the job, resolved from Job.addresses. locations are
1224
+ # exactly matched to Job.addresses in the same order.
1225
+ # Corresponds to the JSON property `locations`
1226
+ # @return [Array<Google::Apis::JobsV4::Location>]
1227
+ attr_accessor :locations
1228
+
1229
+ def initialize(**args)
1230
+ update!(**args)
1231
+ end
1232
+
1233
+ # Update properties of this object
1234
+ def update!(**args)
1235
+ @job_categories = args[:job_categories] if args.key?(:job_categories)
1236
+ @locations = args[:locations] if args.key?(:locations)
1237
+ end
1238
+ end
1239
+
1240
+ # An event issued when a job seeker interacts with the application that
1241
+ # implements Cloud Talent Solution.
1242
+ class JobEvent
1243
+ include Google::Apis::Core::Hashable
1244
+
1245
+ # Required. The job name(s) associated with this event. For example, if this is
1246
+ # an impression event, this field contains the identifiers of all jobs shown to
1247
+ # the job seeker. If this was a view event, this field contains the identifier
1248
+ # of the viewed job. The format is "projects/`project_id`/tenants/`tenant_id`/
1249
+ # jobs/`job_id`", for example, "projects/foo/tenants/bar/jobs/baz".
1250
+ # Corresponds to the JSON property `jobs`
1251
+ # @return [Array<String>]
1252
+ attr_accessor :jobs
1253
+
1254
+ # Required. The type of the event (see JobEventType).
1255
+ # Corresponds to the JSON property `type`
1256
+ # @return [String]
1257
+ attr_accessor :type
1258
+
1259
+ def initialize(**args)
1260
+ update!(**args)
1261
+ end
1262
+
1263
+ # Update properties of this object
1264
+ def update!(**args)
1265
+ @jobs = args[:jobs] if args.key?(:jobs)
1266
+ @type = args[:type] if args.key?(:type)
1267
+ end
1268
+ end
1269
+
1270
+ # The query required to perform a search query.
1271
+ class JobQuery
1272
+ include Google::Apis::Core::Hashable
1273
+
1274
+ # Parameters needed for commute search.
1275
+ # Corresponds to the JSON property `commuteFilter`
1276
+ # @return [Google::Apis::JobsV4::CommuteFilter]
1277
+ attr_accessor :commute_filter
1278
+
1279
+ # This filter specifies the company entities to search against. If a value isn't
1280
+ # specified, jobs are searched for against all companies. If multiple values are
1281
+ # specified, jobs are searched against the companies specified. The format is "
1282
+ # projects/`project_id`/tenants/`tenant_id`/companies/`company_id`". For example,
1283
+ # "projects/foo/tenants/bar/companies/baz". At most 20 company filters are
1284
+ # allowed.
1285
+ # Corresponds to the JSON property `companies`
1286
+ # @return [Array<String>]
1287
+ attr_accessor :companies
1288
+
1289
+ # This filter specifies the exact company Company.display_name of the jobs to
1290
+ # search against. If a value isn't specified, jobs within the search results are
1291
+ # associated with any company. If multiple values are specified, jobs within the
1292
+ # search results may be associated with any of the specified companies. At most
1293
+ # 20 company display name filters are allowed.
1294
+ # Corresponds to the JSON property `companyDisplayNames`
1295
+ # @return [Array<String>]
1296
+ attr_accessor :company_display_names
1297
+
1298
+ # Filter on job compensation type and amount.
1299
+ # Corresponds to the JSON property `compensationFilter`
1300
+ # @return [Google::Apis::JobsV4::CompensationFilter]
1301
+ attr_accessor :compensation_filter
1302
+
1303
+ # This filter specifies a structured syntax to match against the Job.
1304
+ # custom_attributes marked as `filterable`. The syntax for this expression is a
1305
+ # subset of SQL syntax. Supported operators are: `=`, `!=`, `<`, `<=`, `>`, and `
1306
+ # >=` where the left of the operator is a custom field key and the right of the
1307
+ # operator is a number or a quoted string. You must escape backslash (\\) and
1308
+ # quote (\") characters. Supported functions are `LOWER([field_name])` to
1309
+ # perform a case insensitive match and `EMPTY([field_name])` to filter on the
1310
+ # existence of a key. Boolean expressions (AND/OR/NOT) are supported up to 3
1311
+ # levels of nesting (for example, "((A AND B AND C) OR NOT D) AND E"), a maximum
1312
+ # of 100 comparisons or functions are allowed in the expression. The expression
1313
+ # must be < 6000 bytes in length. Sample Query: `(LOWER(driving_license)="class \
1314
+ # "a\"" OR EMPTY(driving_license)) AND driving_years > 10`
1315
+ # Corresponds to the JSON property `customAttributeFilter`
1316
+ # @return [String]
1317
+ attr_accessor :custom_attribute_filter
1318
+
1319
+ # This flag controls the spell-check feature. If false, the service attempts to
1320
+ # correct a misspelled query, for example, "enginee" is corrected to "engineer".
1321
+ # Defaults to false: a spell check is performed.
1322
+ # Corresponds to the JSON property `disableSpellCheck`
1323
+ # @return [Boolean]
1324
+ attr_accessor :disable_spell_check
1325
+ alias_method :disable_spell_check?, :disable_spell_check
1326
+
1327
+ # The employment type filter specifies the employment type of jobs to search
1328
+ # against, such as EmploymentType.FULL_TIME. If a value isn't specified, jobs in
1329
+ # the search results includes any employment type. If multiple values are
1330
+ # specified, jobs in the search results include any of the specified employment
1331
+ # types.
1332
+ # Corresponds to the JSON property `employmentTypes`
1333
+ # @return [Array<String>]
1334
+ attr_accessor :employment_types
1335
+
1336
+ # This filter specifies a list of job names to be excluded during search. At
1337
+ # most 400 excluded job names are allowed.
1338
+ # Corresponds to the JSON property `excludedJobs`
1339
+ # @return [Array<String>]
1340
+ attr_accessor :excluded_jobs
1341
+
1342
+ # The category filter specifies the categories of jobs to search against. See
1343
+ # JobCategory for more information. If a value isn't specified, jobs from any
1344
+ # category are searched against. If multiple values are specified, jobs from any
1345
+ # of the specified categories are searched against.
1346
+ # Corresponds to the JSON property `jobCategories`
1347
+ # @return [Array<String>]
1348
+ attr_accessor :job_categories
1349
+
1350
+ # This filter specifies the locale of jobs to search against, for example, "en-
1351
+ # US". If a value isn't specified, the search results can contain jobs in any
1352
+ # locale. Language codes should be in BCP-47 format, such as "en-US" or "sr-Latn"
1353
+ # . For more information, see [Tags for Identifying Languages](https://tools.
1354
+ # ietf.org/html/bcp47). At most 10 language code filters are allowed.
1355
+ # Corresponds to the JSON property `languageCodes`
1356
+ # @return [Array<String>]
1357
+ attr_accessor :language_codes
1358
+
1359
+ # The location filter specifies geo-regions containing the jobs to search
1360
+ # against. See LocationFilter for more information. If a location value isn't
1361
+ # specified, jobs fitting the other search criteria are retrieved regardless of
1362
+ # where they're located. If multiple values are specified, jobs are retrieved
1363
+ # from any of the specified locations. If different values are specified for the
1364
+ # LocationFilter.distance_in_miles parameter, the maximum provided distance is
1365
+ # used for all locations. At most 5 location filters are allowed.
1366
+ # Corresponds to the JSON property `locationFilters`
1367
+ # @return [Array<Google::Apis::JobsV4::LocationFilter>]
1368
+ attr_accessor :location_filters
1369
+
1370
+ # Message representing a period of time between two timestamps.
1371
+ # Corresponds to the JSON property `publishTimeRange`
1372
+ # @return [Google::Apis::JobsV4::TimestampRange]
1373
+ attr_accessor :publish_time_range
1374
+
1375
+ # The query string that matches against the job title, description, and location
1376
+ # fields. The maximum number of allowed characters is 255.
1377
+ # Corresponds to the JSON property `query`
1378
+ # @return [String]
1379
+ attr_accessor :query
1380
+
1381
+ # The language code of query. For example, "en-US". This field helps to better
1382
+ # interpret the query. If a value isn't specified, the query language code is
1383
+ # automatically detected, which may not be accurate. Language code should be in
1384
+ # BCP-47 format, such as "en-US" or "sr-Latn". For more information, see [Tags
1385
+ # for Identifying Languages](https://tools.ietf.org/html/bcp47).
1386
+ # Corresponds to the JSON property `queryLanguageCode`
1387
+ # @return [String]
1388
+ attr_accessor :query_language_code
1389
+
1390
+ def initialize(**args)
1391
+ update!(**args)
1392
+ end
1393
+
1394
+ # Update properties of this object
1395
+ def update!(**args)
1396
+ @commute_filter = args[:commute_filter] if args.key?(:commute_filter)
1397
+ @companies = args[:companies] if args.key?(:companies)
1398
+ @company_display_names = args[:company_display_names] if args.key?(:company_display_names)
1399
+ @compensation_filter = args[:compensation_filter] if args.key?(:compensation_filter)
1400
+ @custom_attribute_filter = args[:custom_attribute_filter] if args.key?(:custom_attribute_filter)
1401
+ @disable_spell_check = args[:disable_spell_check] if args.key?(:disable_spell_check)
1402
+ @employment_types = args[:employment_types] if args.key?(:employment_types)
1403
+ @excluded_jobs = args[:excluded_jobs] if args.key?(:excluded_jobs)
1404
+ @job_categories = args[:job_categories] if args.key?(:job_categories)
1405
+ @language_codes = args[:language_codes] if args.key?(:language_codes)
1406
+ @location_filters = args[:location_filters] if args.key?(:location_filters)
1407
+ @publish_time_range = args[:publish_time_range] if args.key?(:publish_time_range)
1408
+ @query = args[:query] if args.key?(:query)
1409
+ @query_language_code = args[:query_language_code] if args.key?(:query_language_code)
1410
+ end
1411
+ end
1412
+
1413
+ # Mutation result of a job from a batch operation.
1414
+ class JobResult
1415
+ include Google::Apis::Core::Hashable
1416
+
1417
+ # A Job resource represents a job posting (also referred to as a "job listing"
1418
+ # or "job requisition"). A job belongs to a Company, which is the hiring entity
1419
+ # responsible for the job.
1420
+ # Corresponds to the JSON property `job`
1421
+ # @return [Google::Apis::JobsV4::Job]
1422
+ attr_accessor :job
1423
+
1424
+ # The `Status` type defines a logical error model that is suitable for different
1425
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1426
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1427
+ # data: error code, error message, and error details. You can find out more
1428
+ # about this error model and how to work with it in the [API Design Guide](https:
1429
+ # //cloud.google.com/apis/design/errors).
1430
+ # Corresponds to the JSON property `status`
1431
+ # @return [Google::Apis::JobsV4::Status]
1432
+ attr_accessor :status
1433
+
1434
+ def initialize(**args)
1435
+ update!(**args)
1436
+ end
1437
+
1438
+ # Update properties of this object
1439
+ def update!(**args)
1440
+ @job = args[:job] if args.key?(:job)
1441
+ @status = args[:status] if args.key?(:status)
1442
+ end
1443
+ end
1444
+
1445
+ # An object that represents a latitude/longitude pair. This is expressed as a
1446
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
1447
+ # specified otherwise, this must conform to the WGS84 standard. Values must be
1448
+ # within normalized ranges.
1449
+ class LatLng
1450
+ include Google::Apis::Core::Hashable
1451
+
1452
+ # The latitude in degrees. It must be in the range [-90.0, +90.0].
1453
+ # Corresponds to the JSON property `latitude`
1454
+ # @return [Float]
1455
+ attr_accessor :latitude
1456
+
1457
+ # The longitude in degrees. It must be in the range [-180.0, +180.0].
1458
+ # Corresponds to the JSON property `longitude`
1459
+ # @return [Float]
1460
+ attr_accessor :longitude
1461
+
1462
+ def initialize(**args)
1463
+ update!(**args)
1464
+ end
1465
+
1466
+ # Update properties of this object
1467
+ def update!(**args)
1468
+ @latitude = args[:latitude] if args.key?(:latitude)
1469
+ @longitude = args[:longitude] if args.key?(:longitude)
1470
+ end
1471
+ end
1472
+
1473
+ # The List companies response object.
1474
+ class ListCompaniesResponse
1475
+ include Google::Apis::Core::Hashable
1476
+
1477
+ # Companies for the current client.
1478
+ # Corresponds to the JSON property `companies`
1479
+ # @return [Array<Google::Apis::JobsV4::Company>]
1480
+ attr_accessor :companies
1481
+
1482
+ # Additional information returned to client, such as debugging information.
1483
+ # Corresponds to the JSON property `metadata`
1484
+ # @return [Google::Apis::JobsV4::ResponseMetadata]
1485
+ attr_accessor :metadata
1486
+
1487
+ # A token to retrieve the next page of results.
1488
+ # Corresponds to the JSON property `nextPageToken`
1489
+ # @return [String]
1490
+ attr_accessor :next_page_token
1491
+
1492
+ def initialize(**args)
1493
+ update!(**args)
1494
+ end
1495
+
1496
+ # Update properties of this object
1497
+ def update!(**args)
1498
+ @companies = args[:companies] if args.key?(:companies)
1499
+ @metadata = args[:metadata] if args.key?(:metadata)
1500
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1501
+ end
1502
+ end
1503
+
1504
+ # List jobs response.
1505
+ class ListJobsResponse
1506
+ include Google::Apis::Core::Hashable
1507
+
1508
+ # The Jobs for a given company. The maximum number of items returned is based on
1509
+ # the limit field provided in the request.
1510
+ # Corresponds to the JSON property `jobs`
1511
+ # @return [Array<Google::Apis::JobsV4::Job>]
1512
+ attr_accessor :jobs
1513
+
1514
+ # Additional information returned to client, such as debugging information.
1515
+ # Corresponds to the JSON property `metadata`
1516
+ # @return [Google::Apis::JobsV4::ResponseMetadata]
1517
+ attr_accessor :metadata
1518
+
1519
+ # A token to retrieve the next page of results.
1520
+ # Corresponds to the JSON property `nextPageToken`
1521
+ # @return [String]
1522
+ attr_accessor :next_page_token
1523
+
1524
+ def initialize(**args)
1525
+ update!(**args)
1526
+ end
1527
+
1528
+ # Update properties of this object
1529
+ def update!(**args)
1530
+ @jobs = args[:jobs] if args.key?(:jobs)
1531
+ @metadata = args[:metadata] if args.key?(:metadata)
1532
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1533
+ end
1534
+ end
1535
+
1536
+ # The List tenants response object.
1537
+ class ListTenantsResponse
1538
+ include Google::Apis::Core::Hashable
1539
+
1540
+ # Additional information returned to client, such as debugging information.
1541
+ # Corresponds to the JSON property `metadata`
1542
+ # @return [Google::Apis::JobsV4::ResponseMetadata]
1543
+ attr_accessor :metadata
1544
+
1545
+ # A token to retrieve the next page of results.
1546
+ # Corresponds to the JSON property `nextPageToken`
1547
+ # @return [String]
1548
+ attr_accessor :next_page_token
1549
+
1550
+ # Tenants for the current client.
1551
+ # Corresponds to the JSON property `tenants`
1552
+ # @return [Array<Google::Apis::JobsV4::Tenant>]
1553
+ attr_accessor :tenants
1554
+
1555
+ def initialize(**args)
1556
+ update!(**args)
1557
+ end
1558
+
1559
+ # Update properties of this object
1560
+ def update!(**args)
1561
+ @metadata = args[:metadata] if args.key?(:metadata)
1562
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1563
+ @tenants = args[:tenants] if args.key?(:tenants)
1564
+ end
1565
+ end
1566
+
1567
+ # A resource that represents a location with full geographic information.
1568
+ class Location
1569
+ include Google::Apis::Core::Hashable
1570
+
1571
+ # An object that represents a latitude/longitude pair. This is expressed as a
1572
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
1573
+ # specified otherwise, this must conform to the WGS84 standard. Values must be
1574
+ # within normalized ranges.
1575
+ # Corresponds to the JSON property `latLng`
1576
+ # @return [Google::Apis::JobsV4::LatLng]
1577
+ attr_accessor :lat_lng
1578
+
1579
+ # The type of a location, which corresponds to the address lines field of google.
1580
+ # type.PostalAddress. For example, "Downtown, Atlanta, GA, USA" has a type of
1581
+ # LocationType.NEIGHBORHOOD, and "Kansas City, KS, USA" has a type of
1582
+ # LocationType.LOCALITY.
1583
+ # Corresponds to the JSON property `locationType`
1584
+ # @return [String]
1585
+ attr_accessor :location_type
1586
+
1587
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
1588
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
1589
+ # Box or similar. It is not intended to model geographical locations (roads,
1590
+ # towns, mountains). In typical usage an address would be created via user input
1591
+ # or from importing existing data, depending on the type of process. Advice on
1592
+ # address input / editing: - Use an i18n-ready address widget such as https://
1593
+ # github.com/google/libaddressinput) - Users should not be presented with UI
1594
+ # elements for input or editing of fields outside countries where that field is
1595
+ # used. For more guidance on how to use this schema, please see: https://support.
1596
+ # google.com/business/answer/6397478
1597
+ # Corresponds to the JSON property `postalAddress`
1598
+ # @return [Google::Apis::JobsV4::PostalAddress]
1599
+ attr_accessor :postal_address
1600
+
1601
+ # Radius in miles of the job location. This value is derived from the location
1602
+ # bounding box in which a circle with the specified radius centered from google.
1603
+ # type.LatLng covers the area associated with the job location. For example,
1604
+ # currently, "Mountain View, CA, USA" has a radius of 6.17 miles.
1605
+ # Corresponds to the JSON property `radiusMiles`
1606
+ # @return [Float]
1607
+ attr_accessor :radius_miles
1608
+
1609
+ def initialize(**args)
1610
+ update!(**args)
1611
+ end
1612
+
1613
+ # Update properties of this object
1614
+ def update!(**args)
1615
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
1616
+ @location_type = args[:location_type] if args.key?(:location_type)
1617
+ @postal_address = args[:postal_address] if args.key?(:postal_address)
1618
+ @radius_miles = args[:radius_miles] if args.key?(:radius_miles)
1619
+ end
1620
+ end
1621
+
1622
+ # Geographic region of the search.
1623
+ class LocationFilter
1624
+ include Google::Apis::Core::Hashable
1625
+
1626
+ # The address name, such as "Mountain View" or "Bay Area".
1627
+ # Corresponds to the JSON property `address`
1628
+ # @return [String]
1629
+ attr_accessor :address
1630
+
1631
+ # The distance_in_miles is applied when the location being searched for is
1632
+ # identified as a city or smaller. This field is ignored if the location being
1633
+ # searched for is a state or larger.
1634
+ # Corresponds to the JSON property `distanceInMiles`
1635
+ # @return [Float]
1636
+ attr_accessor :distance_in_miles
1637
+
1638
+ # An object that represents a latitude/longitude pair. This is expressed as a
1639
+ # pair of doubles to represent degrees latitude and degrees longitude. Unless
1640
+ # specified otherwise, this must conform to the WGS84 standard. Values must be
1641
+ # within normalized ranges.
1642
+ # Corresponds to the JSON property `latLng`
1643
+ # @return [Google::Apis::JobsV4::LatLng]
1644
+ attr_accessor :lat_lng
1645
+
1646
+ # CLDR region code of the country/region of the address. This is used to address
1647
+ # ambiguity of the user-input location, for example, "Liverpool" against "
1648
+ # Liverpool, NY, US" or "Liverpool, UK". Set this field to bias location
1649
+ # resolution toward a specific country or territory. If this field is not set,
1650
+ # application behavior is biased toward the United States by default. See https:/
1651
+ # /www.unicode.org/cldr/charts/30/supplemental/territory_information.html for
1652
+ # details. Example: "CH" for Switzerland.
1653
+ # Corresponds to the JSON property `regionCode`
1654
+ # @return [String]
1655
+ attr_accessor :region_code
1656
+
1657
+ # Allows the client to return jobs without a set location, specifically,
1658
+ # telecommuting jobs (telecommuting is considered by the service as a special
1659
+ # location. Job.posting_region indicates if a job permits telecommuting. If this
1660
+ # field is set to TelecommutePreference.TELECOMMUTE_ALLOWED, telecommuting jobs
1661
+ # are searched, and address and lat_lng are ignored. If not set or set to
1662
+ # TelecommutePreference.TELECOMMUTE_EXCLUDED, telecommute job are not searched.
1663
+ # This filter can be used by itself to search exclusively for telecommuting jobs,
1664
+ # or it can be combined with another location filter to search for a
1665
+ # combination of job locations, such as "Mountain View" or "telecommuting" jobs.
1666
+ # However, when used in combination with other location filters, telecommuting
1667
+ # jobs can be treated as less relevant than other jobs in the search response.
1668
+ # This field is only used for job search requests.
1669
+ # Corresponds to the JSON property `telecommutePreference`
1670
+ # @return [String]
1671
+ attr_accessor :telecommute_preference
1672
+
1673
+ def initialize(**args)
1674
+ update!(**args)
1675
+ end
1676
+
1677
+ # Update properties of this object
1678
+ def update!(**args)
1679
+ @address = args[:address] if args.key?(:address)
1680
+ @distance_in_miles = args[:distance_in_miles] if args.key?(:distance_in_miles)
1681
+ @lat_lng = args[:lat_lng] if args.key?(:lat_lng)
1682
+ @region_code = args[:region_code] if args.key?(:region_code)
1683
+ @telecommute_preference = args[:telecommute_preference] if args.key?(:telecommute_preference)
1684
+ end
1685
+ end
1686
+
1687
+ # Job entry with metadata inside SearchJobsResponse.
1688
+ class MatchingJob
1689
+ include Google::Apis::Core::Hashable
1690
+
1691
+ # Commute details related to this job.
1692
+ # Corresponds to the JSON property `commuteInfo`
1693
+ # @return [Google::Apis::JobsV4::CommuteInfo]
1694
+ attr_accessor :commute_info
1695
+
1696
+ # A Job resource represents a job posting (also referred to as a "job listing"
1697
+ # or "job requisition"). A job belongs to a Company, which is the hiring entity
1698
+ # responsible for the job.
1699
+ # Corresponds to the JSON property `job`
1700
+ # @return [Google::Apis::JobsV4::Job]
1701
+ attr_accessor :job
1702
+
1703
+ # A summary of the job with core information that's displayed on the search
1704
+ # results listing page.
1705
+ # Corresponds to the JSON property `jobSummary`
1706
+ # @return [String]
1707
+ attr_accessor :job_summary
1708
+
1709
+ # Contains snippets of text from the Job.title field most closely matching a
1710
+ # search query's keywords, if available. The matching query keywords are
1711
+ # enclosed in HTML bold tags.
1712
+ # Corresponds to the JSON property `jobTitleSnippet`
1713
+ # @return [String]
1714
+ attr_accessor :job_title_snippet
1715
+
1716
+ # Contains snippets of text from the Job.description and similar fields that
1717
+ # most closely match a search query's keywords, if available. All HTML tags in
1718
+ # the original fields are stripped when returned in this field, and matching
1719
+ # query keywords are enclosed in HTML bold tags.
1720
+ # Corresponds to the JSON property `searchTextSnippet`
1721
+ # @return [String]
1722
+ attr_accessor :search_text_snippet
1723
+
1724
+ def initialize(**args)
1725
+ update!(**args)
1726
+ end
1727
+
1728
+ # Update properties of this object
1729
+ def update!(**args)
1730
+ @commute_info = args[:commute_info] if args.key?(:commute_info)
1731
+ @job = args[:job] if args.key?(:job)
1732
+ @job_summary = args[:job_summary] if args.key?(:job_summary)
1733
+ @job_title_snippet = args[:job_title_snippet] if args.key?(:job_title_snippet)
1734
+ @search_text_snippet = args[:search_text_snippet] if args.key?(:search_text_snippet)
1735
+ end
1736
+ end
1737
+
1738
+ # Message representing input to a Mendel server for debug forcing. See go/mendel-
1739
+ # debug-forcing for more details. Next ID: 2
1740
+ class MendelDebugInput
1741
+ include Google::Apis::Core::Hashable
1742
+
1743
+ # When a request spans multiple servers, a MendelDebugInput may travel with the
1744
+ # request and take effect in all the servers. This field is a map of namespaces
1745
+ # to NamespacedMendelDebugInput protos. In a single server, up to two
1746
+ # NamespacedMendelDebugInput protos are applied: 1. NamespacedMendelDebugInput
1747
+ # with the global namespace (key == ""). 2. NamespacedMendelDebugInput with the
1748
+ # server's namespace. When both NamespacedMendelDebugInput protos are present,
1749
+ # they are merged. See go/mendel-debug-forcing for more details.
1750
+ # Corresponds to the JSON property `namespacedDebugInput`
1751
+ # @return [Hash<String,Google::Apis::JobsV4::NamespacedDebugInput>]
1752
+ attr_accessor :namespaced_debug_input
1753
+
1754
+ def initialize(**args)
1755
+ update!(**args)
1756
+ end
1757
+
1758
+ # Update properties of this object
1759
+ def update!(**args)
1760
+ @namespaced_debug_input = args[:namespaced_debug_input] if args.key?(:namespaced_debug_input)
1761
+ end
1762
+ end
1763
+
1764
+ # Represents an amount of money with its currency type.
1765
+ class Money
1766
+ include Google::Apis::Core::Hashable
1767
+
1768
+ # The three-letter currency code defined in ISO 4217.
1769
+ # Corresponds to the JSON property `currencyCode`
1770
+ # @return [String]
1771
+ attr_accessor :currency_code
1772
+
1773
+ # Number of nano (10^-9) units of the amount. The value must be between -999,999,
1774
+ # 999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be
1775
+ # positive or zero. If `units` is zero, `nanos` can be positive, zero, or
1776
+ # negative. If `units` is negative, `nanos` must be negative or zero. For
1777
+ # example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
1778
+ # Corresponds to the JSON property `nanos`
1779
+ # @return [Fixnum]
1780
+ attr_accessor :nanos
1781
+
1782
+ # The whole units of the amount. For example if `currencyCode` is `"USD"`, then
1783
+ # 1 unit is one US dollar.
1784
+ # Corresponds to the JSON property `units`
1785
+ # @return [Fixnum]
1786
+ attr_accessor :units
1787
+
1788
+ def initialize(**args)
1789
+ update!(**args)
1790
+ end
1791
+
1792
+ # Update properties of this object
1793
+ def update!(**args)
1794
+ @currency_code = args[:currency_code] if args.key?(:currency_code)
1795
+ @nanos = args[:nanos] if args.key?(:nanos)
1796
+ @units = args[:units] if args.key?(:units)
1797
+ end
1798
+ end
1799
+
1800
+ # Next ID: 15
1801
+ class NamespacedDebugInput
1802
+ include Google::Apis::Core::Hashable
1803
+
1804
+ # Set of experiment names to be absolutely forced. These experiments will be
1805
+ # forced without evaluating the conditions.
1806
+ # Corresponds to the JSON property `absolutelyForcedExpNames`
1807
+ # @return [Array<String>]
1808
+ attr_accessor :absolutely_forced_exp_names
1809
+
1810
+ # Set of experiment tags to be absolutely forced. The experiments with these
1811
+ # tags will be forced without evaluating the conditions.
1812
+ # Corresponds to the JSON property `absolutelyForcedExpTags`
1813
+ # @return [Array<String>]
1814
+ attr_accessor :absolutely_forced_exp_tags
1815
+
1816
+ # Set of experiment ids to be absolutely forced. These ids will be forced
1817
+ # without evaluating the conditions.
1818
+ # Corresponds to the JSON property `absolutelyForcedExps`
1819
+ # @return [Array<Fixnum>]
1820
+ attr_accessor :absolutely_forced_exps
1821
+
1822
+ # Set of experiment names to be conditionally forced. These experiments will be
1823
+ # forced only if their conditions and their parent domain's conditions are true.
1824
+ # Corresponds to the JSON property `conditionallyForcedExpNames`
1825
+ # @return [Array<String>]
1826
+ attr_accessor :conditionally_forced_exp_names
1827
+
1828
+ # Set of experiment tags to be conditionally forced. The experiments with these
1829
+ # tags will be forced only if their conditions and their parent domain's
1830
+ # conditions are true.
1831
+ # Corresponds to the JSON property `conditionallyForcedExpTags`
1832
+ # @return [Array<String>]
1833
+ attr_accessor :conditionally_forced_exp_tags
1834
+
1835
+ # Set of experiment ids to be conditionally forced. These ids will be forced
1836
+ # only if their conditions and their parent domain's conditions are true.
1837
+ # Corresponds to the JSON property `conditionallyForcedExps`
1838
+ # @return [Array<Fixnum>]
1839
+ attr_accessor :conditionally_forced_exps
1840
+
1841
+ # If true, disable automatic enrollment selection (at all diversion points).
1842
+ # Automatic enrollment selection means experiment selection process based on the
1843
+ # experiment's automatic enrollment condition. This does not disable selection
1844
+ # of forced experiments.
1845
+ # Corresponds to the JSON property `disableAutomaticEnrollmentSelection`
1846
+ # @return [Boolean]
1847
+ attr_accessor :disable_automatic_enrollment_selection
1848
+ alias_method :disable_automatic_enrollment_selection?, :disable_automatic_enrollment_selection
1849
+
1850
+ # Set of experiment names to be disabled. If an experiment is disabled, it is
1851
+ # never selected nor forced. If an aggregate experiment is disabled, its
1852
+ # partitions are disabled together. If an experiment with an enrollment is
1853
+ # disabled, the enrollment is disabled together. If a name corresponds to a
1854
+ # domain, the domain itself and all descendant experiments and domains are
1855
+ # disabled together.
1856
+ # Corresponds to the JSON property `disableExpNames`
1857
+ # @return [Array<String>]
1858
+ attr_accessor :disable_exp_names
1859
+
1860
+ # Set of experiment tags to be disabled. All experiments that are tagged with
1861
+ # one or more of these tags are disabled. If an experiment is disabled, it is
1862
+ # never selected nor forced. If an aggregate experiment is disabled, its
1863
+ # partitions are disabled together. If an experiment with an enrollment is
1864
+ # disabled, the enrollment is disabled together.
1865
+ # Corresponds to the JSON property `disableExpTags`
1866
+ # @return [Array<String>]
1867
+ attr_accessor :disable_exp_tags
1868
+
1869
+ # Set of experiment ids to be disabled. If an experiment is disabled, it is
1870
+ # never selected nor forced. If an aggregate experiment is disabled, its
1871
+ # partitions are disabled together. If an experiment with an enrollment is
1872
+ # disabled, the enrollment is disabled together. If an ID corresponds to a
1873
+ # domain, the domain itself and all descendant experiments and domains are
1874
+ # disabled together.
1875
+ # Corresponds to the JSON property `disableExps`
1876
+ # @return [Array<Fixnum>]
1877
+ attr_accessor :disable_exps
1878
+
1879
+ # If true, disable manual enrollment selection (at all diversion points). Manual
1880
+ # enrollment selection means experiment selection process based on the request's
1881
+ # manual enrollment states (a.k.a. opt-in experiments). This does not disable
1882
+ # selection of forced experiments.
1883
+ # Corresponds to the JSON property `disableManualEnrollmentSelection`
1884
+ # @return [Boolean]
1885
+ attr_accessor :disable_manual_enrollment_selection
1886
+ alias_method :disable_manual_enrollment_selection?, :disable_manual_enrollment_selection
1887
+
1888
+ # If true, disable organic experiment selection (at all diversion points).
1889
+ # Organic selection means experiment selection process based on traffic
1890
+ # allocation and diversion condition evaluation. This does not disable selection
1891
+ # of forced experiments. This is useful in cases when it is not known whether
1892
+ # experiment selection behavior is responsible for a error or breakage.
1893
+ # Disabling organic selection may help to isolate the cause of a given problem.
1894
+ # Corresponds to the JSON property `disableOrganicSelection`
1895
+ # @return [Boolean]
1896
+ attr_accessor :disable_organic_selection
1897
+ alias_method :disable_organic_selection?, :disable_organic_selection
1898
+
1899
+ # Flags to force in a particular experiment state. Map from flag name to flag
1900
+ # value.
1901
+ # Corresponds to the JSON property `forcedFlags`
1902
+ # @return [Hash<String,String>]
1903
+ attr_accessor :forced_flags
1904
+
1905
+ # Rollouts to force in a particular experiment state. Map from rollout name to
1906
+ # rollout value.
1907
+ # Corresponds to the JSON property `forcedRollouts`
1908
+ # @return [Hash<String,Boolean>]
1909
+ attr_accessor :forced_rollouts
1910
+
1911
+ def initialize(**args)
1912
+ update!(**args)
1913
+ end
1914
+
1915
+ # Update properties of this object
1916
+ def update!(**args)
1917
+ @absolutely_forced_exp_names = args[:absolutely_forced_exp_names] if args.key?(:absolutely_forced_exp_names)
1918
+ @absolutely_forced_exp_tags = args[:absolutely_forced_exp_tags] if args.key?(:absolutely_forced_exp_tags)
1919
+ @absolutely_forced_exps = args[:absolutely_forced_exps] if args.key?(:absolutely_forced_exps)
1920
+ @conditionally_forced_exp_names = args[:conditionally_forced_exp_names] if args.key?(:conditionally_forced_exp_names)
1921
+ @conditionally_forced_exp_tags = args[:conditionally_forced_exp_tags] if args.key?(:conditionally_forced_exp_tags)
1922
+ @conditionally_forced_exps = args[:conditionally_forced_exps] if args.key?(:conditionally_forced_exps)
1923
+ @disable_automatic_enrollment_selection = args[:disable_automatic_enrollment_selection] if args.key?(:disable_automatic_enrollment_selection)
1924
+ @disable_exp_names = args[:disable_exp_names] if args.key?(:disable_exp_names)
1925
+ @disable_exp_tags = args[:disable_exp_tags] if args.key?(:disable_exp_tags)
1926
+ @disable_exps = args[:disable_exps] if args.key?(:disable_exps)
1927
+ @disable_manual_enrollment_selection = args[:disable_manual_enrollment_selection] if args.key?(:disable_manual_enrollment_selection)
1928
+ @disable_organic_selection = args[:disable_organic_selection] if args.key?(:disable_organic_selection)
1929
+ @forced_flags = args[:forced_flags] if args.key?(:forced_flags)
1930
+ @forced_rollouts = args[:forced_rollouts] if args.key?(:forced_rollouts)
1931
+ end
1932
+ end
1933
+
1934
+ # This resource represents a long-running operation that is the result of a
1935
+ # network API call.
1936
+ class Operation
1937
+ include Google::Apis::Core::Hashable
1938
+
1939
+ # If the value is `false`, it means the operation is still in progress. If `true`
1940
+ # , the operation is completed, and either `error` or `response` is available.
1941
+ # Corresponds to the JSON property `done`
1942
+ # @return [Boolean]
1943
+ attr_accessor :done
1944
+ alias_method :done?, :done
1945
+
1946
+ # The `Status` type defines a logical error model that is suitable for different
1947
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1948
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1949
+ # data: error code, error message, and error details. You can find out more
1950
+ # about this error model and how to work with it in the [API Design Guide](https:
1951
+ # //cloud.google.com/apis/design/errors).
1952
+ # Corresponds to the JSON property `error`
1953
+ # @return [Google::Apis::JobsV4::Status]
1954
+ attr_accessor :error
1955
+
1956
+ # Service-specific metadata associated with the operation. It typically contains
1957
+ # progress information and common metadata such as create time. Some services
1958
+ # might not provide such metadata. Any method that returns a long-running
1959
+ # operation should document the metadata type, if any.
1960
+ # Corresponds to the JSON property `metadata`
1961
+ # @return [Hash<String,Object>]
1962
+ attr_accessor :metadata
1963
+
1964
+ # The server-assigned name, which is only unique within the same service that
1965
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1966
+ # be a resource name ending with `operations/`unique_id``.
1967
+ # Corresponds to the JSON property `name`
1968
+ # @return [String]
1969
+ attr_accessor :name
1970
+
1971
+ # The normal response of the operation in case of success. If the original
1972
+ # method returns no data on success, such as `Delete`, the response is `google.
1973
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1974
+ # the response should be the resource. For other methods, the response should
1975
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1976
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1977
+ # response type is `TakeSnapshotResponse`.
1978
+ # Corresponds to the JSON property `response`
1979
+ # @return [Hash<String,Object>]
1980
+ attr_accessor :response
1981
+
1982
+ def initialize(**args)
1983
+ update!(**args)
1984
+ end
1985
+
1986
+ # Update properties of this object
1987
+ def update!(**args)
1988
+ @done = args[:done] if args.key?(:done)
1989
+ @error = args[:error] if args.key?(:error)
1990
+ @metadata = args[:metadata] if args.key?(:metadata)
1991
+ @name = args[:name] if args.key?(:name)
1992
+ @response = args[:response] if args.key?(:response)
1993
+ end
1994
+ end
1995
+
1996
+ # Represents a postal address, e.g. for postal delivery or payments addresses.
1997
+ # Given a postal address, a postal service can deliver items to a premise, P.O.
1998
+ # Box or similar. It is not intended to model geographical locations (roads,
1999
+ # towns, mountains). In typical usage an address would be created via user input
2000
+ # or from importing existing data, depending on the type of process. Advice on
2001
+ # address input / editing: - Use an i18n-ready address widget such as https://
2002
+ # github.com/google/libaddressinput) - Users should not be presented with UI
2003
+ # elements for input or editing of fields outside countries where that field is
2004
+ # used. For more guidance on how to use this schema, please see: https://support.
2005
+ # google.com/business/answer/6397478
2006
+ class PostalAddress
2007
+ include Google::Apis::Core::Hashable
2008
+
2009
+ # Unstructured address lines describing the lower levels of an address. Because
2010
+ # values in address_lines do not have type information and may sometimes contain
2011
+ # multiple values in a single field (e.g. "Austin, TX"), it is important that
2012
+ # the line order is clear. The order of address lines should be "envelope order"
2013
+ # for the country/region of the address. In places where this can vary (e.g.
2014
+ # Japan), address_language is used to make it explicit (e.g. "ja" for large-to-
2015
+ # small ordering and "ja-Latn" or "en" for small-to-large). This way, the most
2016
+ # specific line of an address can be selected based on the language. The minimum
2017
+ # permitted structural representation of an address consists of a region_code
2018
+ # with all remaining information placed in the address_lines. It would be
2019
+ # possible to format such an address very approximately without geocoding, but
2020
+ # no semantic reasoning could be made about any of the address components until
2021
+ # it was at least partially resolved. Creating an address only containing a
2022
+ # region_code and address_lines, and then geocoding is the recommended way to
2023
+ # handle completely unstructured addresses (as opposed to guessing which parts
2024
+ # of the address should be localities or administrative areas).
2025
+ # Corresponds to the JSON property `addressLines`
2026
+ # @return [Array<String>]
2027
+ attr_accessor :address_lines
2028
+
2029
+ # Optional. Highest administrative subdivision which is used for postal
2030
+ # addresses of a country or region. For example, this can be a state, a province,
2031
+ # an oblast, or a prefecture. Specifically, for Spain this is the province and
2032
+ # not the autonomous community (e.g. "Barcelona" and not "Catalonia"). Many
2033
+ # countries don't use an administrative area in postal addresses. E.g. in
2034
+ # Switzerland this should be left unpopulated.
2035
+ # Corresponds to the JSON property `administrativeArea`
2036
+ # @return [String]
2037
+ attr_accessor :administrative_area
2038
+
2039
+ # Optional. BCP-47 language code of the contents of this address (if known).
2040
+ # This is often the UI language of the input form or is expected to match one of
2041
+ # the languages used in the address' country/region, or their transliterated
2042
+ # equivalents. This can affect formatting in certain countries, but is not
2043
+ # critical to the correctness of the data and will never affect any validation
2044
+ # or other non-formatting related operations. If this value is not known, it
2045
+ # should be omitted (rather than specifying a possibly incorrect default).
2046
+ # Examples: "zh-Hant", "ja", "ja-Latn", "en".
2047
+ # Corresponds to the JSON property `languageCode`
2048
+ # @return [String]
2049
+ attr_accessor :language_code
2050
+
2051
+ # Optional. Generally refers to the city/town portion of the address. Examples:
2052
+ # US city, IT comune, UK post town. In regions of the world where localities are
2053
+ # not well defined or do not fit into this structure well, leave locality empty
2054
+ # and use address_lines.
2055
+ # Corresponds to the JSON property `locality`
2056
+ # @return [String]
2057
+ attr_accessor :locality
2058
+
2059
+ # Optional. The name of the organization at the address.
2060
+ # Corresponds to the JSON property `organization`
2061
+ # @return [String]
2062
+ attr_accessor :organization
2063
+
2064
+ # Optional. Postal code of the address. Not all countries use or require postal
2065
+ # codes to be present, but where they are used, they may trigger additional
2066
+ # validation with other parts of the address (e.g. state/zip validation in the U.
2067
+ # S.A.).
2068
+ # Corresponds to the JSON property `postalCode`
2069
+ # @return [String]
2070
+ attr_accessor :postal_code
2071
+
2072
+ # Optional. The recipient at the address. This field may, under certain
2073
+ # circumstances, contain multiline information. For example, it might contain "
2074
+ # care of" information.
2075
+ # Corresponds to the JSON property `recipients`
2076
+ # @return [Array<String>]
2077
+ attr_accessor :recipients
2078
+
2079
+ # Required. CLDR region code of the country/region of the address. This is never
2080
+ # inferred and it is up to the user to ensure the value is correct. See http://
2081
+ # cldr.unicode.org/ and http://www.unicode.org/cldr/charts/30/supplemental/
2082
+ # territory_information.html for details. Example: "CH" for Switzerland.
2083
+ # Corresponds to the JSON property `regionCode`
2084
+ # @return [String]
2085
+ attr_accessor :region_code
2086
+
2087
+ # The schema revision of the `PostalAddress`. This must be set to 0, which is
2088
+ # the latest revision. All new revisions **must** be backward compatible with
2089
+ # old revisions.
2090
+ # Corresponds to the JSON property `revision`
2091
+ # @return [Fixnum]
2092
+ attr_accessor :revision
2093
+
2094
+ # Optional. Additional, country-specific, sorting code. This is not used in most
2095
+ # regions. Where it is used, the value is either a string like "CEDEX",
2096
+ # optionally followed by a number (e.g. "CEDEX 7"), or just a number alone,
2097
+ # representing the "sector code" (Jamaica), "delivery area indicator" (Malawi)
2098
+ # or "post office indicator" (e.g. Côte d'Ivoire).
2099
+ # Corresponds to the JSON property `sortingCode`
2100
+ # @return [String]
2101
+ attr_accessor :sorting_code
2102
+
2103
+ # Optional. Sublocality of the address. For example, this can be neighborhoods,
2104
+ # boroughs, districts.
2105
+ # Corresponds to the JSON property `sublocality`
2106
+ # @return [String]
2107
+ attr_accessor :sublocality
2108
+
2109
+ def initialize(**args)
2110
+ update!(**args)
2111
+ end
2112
+
2113
+ # Update properties of this object
2114
+ def update!(**args)
2115
+ @address_lines = args[:address_lines] if args.key?(:address_lines)
2116
+ @administrative_area = args[:administrative_area] if args.key?(:administrative_area)
2117
+ @language_code = args[:language_code] if args.key?(:language_code)
2118
+ @locality = args[:locality] if args.key?(:locality)
2119
+ @organization = args[:organization] if args.key?(:organization)
2120
+ @postal_code = args[:postal_code] if args.key?(:postal_code)
2121
+ @recipients = args[:recipients] if args.key?(:recipients)
2122
+ @region_code = args[:region_code] if args.key?(:region_code)
2123
+ @revision = args[:revision] if args.key?(:revision)
2124
+ @sorting_code = args[:sorting_code] if args.key?(:sorting_code)
2125
+ @sublocality = args[:sublocality] if args.key?(:sublocality)
2126
+ end
2127
+ end
2128
+
2129
+ # Options for job processing.
2130
+ class ProcessingOptions
2131
+ include Google::Apis::Core::Hashable
2132
+
2133
+ # If set to `true`, the service does not attempt to resolve a more precise
2134
+ # address for the job.
2135
+ # Corresponds to the JSON property `disableStreetAddressResolution`
2136
+ # @return [Boolean]
2137
+ attr_accessor :disable_street_address_resolution
2138
+ alias_method :disable_street_address_resolution?, :disable_street_address_resolution
2139
+
2140
+ # Option for job HTML content sanitization. Applied fields are: * description *
2141
+ # applicationInfo.instruction * incentives * qualifications * responsibilities
2142
+ # HTML tags in these fields may be stripped if sanitiazation isn't disabled.
2143
+ # Defaults to HtmlSanitization.SIMPLE_FORMATTING_ONLY.
2144
+ # Corresponds to the JSON property `htmlSanitization`
2145
+ # @return [String]
2146
+ attr_accessor :html_sanitization
2147
+
2148
+ def initialize(**args)
2149
+ update!(**args)
2150
+ end
2151
+
2152
+ # Update properties of this object
2153
+ def update!(**args)
2154
+ @disable_street_address_resolution = args[:disable_street_address_resolution] if args.key?(:disable_street_address_resolution)
2155
+ @html_sanitization = args[:html_sanitization] if args.key?(:html_sanitization)
2156
+ end
2157
+ end
2158
+
2159
+ # Meta information related to the job searcher or entity conducting the job
2160
+ # search. This information is used to improve the performance of the service.
2161
+ class RequestMetadata
2162
+ include Google::Apis::Core::Hashable
2163
+
2164
+ # Only set when any of domain, session_id and user_id isn't available for some
2165
+ # reason. It is highly recommended not to set this field and provide accurate
2166
+ # domain, session_id and user_id for the best service experience.
2167
+ # Corresponds to the JSON property `allowMissingIds`
2168
+ # @return [Boolean]
2169
+ attr_accessor :allow_missing_ids
2170
+ alias_method :allow_missing_ids?, :allow_missing_ids
2171
+
2172
+ # Device information collected from the job seeker, candidate, or other entity
2173
+ # conducting the job search. Providing this information improves the quality of
2174
+ # the search results across devices.
2175
+ # Corresponds to the JSON property `deviceInfo`
2176
+ # @return [Google::Apis::JobsV4::DeviceInfo]
2177
+ attr_accessor :device_info
2178
+
2179
+ # Required if allow_missing_ids is unset or `false`. The client-defined scope or
2180
+ # source of the service call, which typically is the domain on which the service
2181
+ # has been implemented and is currently being run. For example, if the service
2182
+ # is being run by client *Foo, Inc.*, on job board www.foo.com and career site
2183
+ # www.bar.com, then this field is set to "foo.com" for use on the job board, and
2184
+ # "bar.com" for use on the career site. Note that any improvements to the model
2185
+ # for a particular tenant site rely on this field being set correctly to a
2186
+ # unique domain. The maximum number of allowed characters is 255.
2187
+ # Corresponds to the JSON property `domain`
2188
+ # @return [String]
2189
+ attr_accessor :domain
2190
+
2191
+ # Required if allow_missing_ids is unset or `false`. A unique session
2192
+ # identification string. A session is defined as the duration of an end user's
2193
+ # interaction with the service over a certain period. Obfuscate this field for
2194
+ # privacy concerns before providing it to the service. Note that any
2195
+ # improvements to the model for a particular tenant site rely on this field
2196
+ # being set correctly to a unique session ID. The maximum number of allowed
2197
+ # characters is 255.
2198
+ # Corresponds to the JSON property `sessionId`
2199
+ # @return [String]
2200
+ attr_accessor :session_id
2201
+
2202
+ # Required if allow_missing_ids is unset or `false`. A unique user
2203
+ # identification string, as determined by the client. To have the strongest
2204
+ # positive impact on search quality make sure the client-level is unique.
2205
+ # Obfuscate this field for privacy concerns before providing it to the service.
2206
+ # Note that any improvements to the model for a particular tenant site rely on
2207
+ # this field being set correctly to a unique user ID. The maximum number of
2208
+ # allowed characters is 255.
2209
+ # Corresponds to the JSON property `userId`
2210
+ # @return [String]
2211
+ attr_accessor :user_id
2212
+
2213
+ def initialize(**args)
2214
+ update!(**args)
2215
+ end
2216
+
2217
+ # Update properties of this object
2218
+ def update!(**args)
2219
+ @allow_missing_ids = args[:allow_missing_ids] if args.key?(:allow_missing_ids)
2220
+ @device_info = args[:device_info] if args.key?(:device_info)
2221
+ @domain = args[:domain] if args.key?(:domain)
2222
+ @session_id = args[:session_id] if args.key?(:session_id)
2223
+ @user_id = args[:user_id] if args.key?(:user_id)
2224
+ end
2225
+ end
2226
+
2227
+ # Additional information returned to client, such as debugging information.
2228
+ class ResponseMetadata
2229
+ include Google::Apis::Core::Hashable
2230
+
2231
+ # A unique id associated with this call. This id is logged for tracking purposes.
2232
+ # Corresponds to the JSON property `requestId`
2233
+ # @return [String]
2234
+ attr_accessor :request_id
2235
+
2236
+ def initialize(**args)
2237
+ update!(**args)
2238
+ end
2239
+
2240
+ # Update properties of this object
2241
+ def update!(**args)
2242
+ @request_id = args[:request_id] if args.key?(:request_id)
2243
+ end
2244
+ end
2245
+
2246
+ # The Request body of the `SearchJobs` call.
2247
+ class SearchJobsRequest
2248
+ include Google::Apis::Core::Hashable
2249
+
2250
+ # Custom ranking information for SearchJobsRequest.
2251
+ # Corresponds to the JSON property `customRankingInfo`
2252
+ # @return [Google::Apis::JobsV4::CustomRankingInfo]
2253
+ attr_accessor :custom_ranking_info
2254
+
2255
+ # Controls whether to disable exact keyword match on Job.title, Job.description,
2256
+ # Job.company_display_name, Job.addresses, Job.qualifications. When disable
2257
+ # keyword match is turned off, a keyword match returns jobs that do not match
2258
+ # given category filters when there are matching keywords. For example, for the
2259
+ # query "program manager," a result is returned even if the job posting has the
2260
+ # title "software developer," which doesn't fall into "program manager" ontology,
2261
+ # but does have "program manager" appearing in its description. For queries
2262
+ # like "cloud" that don't contain title or location specific ontology, jobs with
2263
+ # "cloud" keyword matches are returned regardless of this flag's value. Use
2264
+ # Company.keyword_searchable_job_custom_attributes if company-specific globally
2265
+ # matched custom field/attribute string values are needed. Enabling keyword
2266
+ # match improves recall of subsequent search requests. Defaults to false.
2267
+ # Corresponds to the JSON property `disableKeywordMatch`
2268
+ # @return [Boolean]
2269
+ attr_accessor :disable_keyword_match
2270
+ alias_method :disable_keyword_match?, :disable_keyword_match
2271
+
2272
+ # Controls whether highly similar jobs are returned next to each other in the
2273
+ # search results. Jobs are identified as highly similar based on their titles,
2274
+ # job categories, and locations. Highly similar results are clustered so that
2275
+ # only one representative job of the cluster is displayed to the job seeker
2276
+ # higher up in the results, with the other jobs being displayed lower down in
2277
+ # the results. Defaults to DiversificationLevel.SIMPLE if no value is specified.
2278
+ # Corresponds to the JSON property `diversificationLevel`
2279
+ # @return [String]
2280
+ attr_accessor :diversification_level
2281
+
2282
+ # Controls whether to broaden the search when it produces sparse results.
2283
+ # Broadened queries append results to the end of the matching results list.
2284
+ # Defaults to false.
2285
+ # Corresponds to the JSON property `enableBroadening`
2286
+ # @return [Boolean]
2287
+ attr_accessor :enable_broadening
2288
+ alias_method :enable_broadening?, :enable_broadening
2289
+
2290
+ # An expression specifies a histogram request against matching jobs. Expression
2291
+ # syntax is an aggregation function call with histogram facets and other options.
2292
+ # Available aggregation function calls are: * `count(string_histogram_facet)`:
2293
+ # Count the number of matching entities, for each distinct attribute value. * `
2294
+ # count(numeric_histogram_facet, list of buckets)`: Count the number of matching
2295
+ # entities within each bucket. Data types: * Histogram facet: facet names with
2296
+ # format a-zA-Z+. * String: string like "any string with backslash escape for
2297
+ # quote(\")." * Number: whole number and floating point number like 10, -1 and -
2298
+ # 0.01. * List: list of elements with comma(,) separator surrounded by square
2299
+ # brackets, for example, [1, 2, 3] and ["one", "two", "three"]. Built-in
2300
+ # constants: * MIN (minimum number similar to java Double.MIN_VALUE) * MAX (
2301
+ # maximum number similar to java Double.MAX_VALUE) Built-in functions: * bucket(
2302
+ # start, end[, label]): bucket built-in function creates a bucket with range of
2303
+ # start, end). Note that the end is exclusive, for example, bucket(1, MAX, "
2304
+ # positive number") or bucket(1, 10). Job histogram facets: *
2305
+ # company_display_name: histogram by [Job.company_display_name. *
2306
+ # employment_type: histogram by Job.employment_types, for example, "FULL_TIME", "
2307
+ # PART_TIME". * company_size: histogram by CompanySize, for example, "SMALL", "
2308
+ # MEDIUM", "BIG". * publish_time_in_month: histogram by the Job.
2309
+ # posting_publish_time in months. Must specify list of numeric buckets in spec. *
2310
+ # publish_time_in_year: histogram by the Job.posting_publish_time in years.
2311
+ # Must specify list of numeric buckets in spec. * degree_types: histogram by the
2312
+ # Job.degree_types, for example, "Bachelors", "Masters". * job_level: histogram
2313
+ # by the Job.job_level, for example, "Entry Level". * country: histogram by the
2314
+ # country code of jobs, for example, "US", "FR". * admin1: histogram by the
2315
+ # admin1 code of jobs, which is a global placeholder referring to the state,
2316
+ # province, or the particular term a country uses to define the geographic
2317
+ # structure below the country level, for example, "CA", "IL". * city: histogram
2318
+ # by a combination of the "city name, admin1 code". For example, "Mountain View,
2319
+ # CA", "New York, NY". * admin1_country: histogram by a combination of the "
2320
+ # admin1 code, country", for example, "CA, US", "IL, US". * city_coordinate:
2321
+ # histogram by the city center's GPS coordinates (latitude and longitude), for
2322
+ # example, 37.4038522,-122.0987765. Since the coordinates of a city center can
2323
+ # change, customers may need to refresh them periodically. * locale: histogram
2324
+ # by the Job.language_code, for example, "en-US", "fr-FR". * language: histogram
2325
+ # by the language subtag of the Job.language_code, for example, "en", "fr". *
2326
+ # category: histogram by the JobCategory, for example, "COMPUTER_AND_IT", "
2327
+ # HEALTHCARE". * base_compensation_unit: histogram by the CompensationInfo.
2328
+ # CompensationUnit of base salary, for example, "WEEKLY", "MONTHLY". *
2329
+ # base_compensation: histogram by the base salary. Must specify list of numeric
2330
+ # buckets to group results by. * annualized_base_compensation: histogram by the
2331
+ # base annualized salary. Must specify list of numeric buckets to group results
2332
+ # by. * annualized_total_compensation: histogram by the total annualized salary.
2333
+ # Must specify list of numeric buckets to group results by. *
2334
+ # string_custom_attribute: histogram by string Job.custom_attributes. Values can
2335
+ # be accessed via square bracket notations like string_custom_attribute["key1"].
2336
+ # * numeric_custom_attribute: histogram by numeric Job.custom_attributes. Values
2337
+ # can be accessed via square bracket notations like numeric_custom_attribute["
2338
+ # key1"]. Must specify list of numeric buckets to group results by. Example
2339
+ # expressions: * `count(admin1)` * `count(base_compensation, [bucket(1000, 10000)
2340
+ # , bucket(10000, 100000), bucket(100000, MAX)])` * `count(
2341
+ # string_custom_attribute["some-string-custom-attribute"])` * `count(
2342
+ # numeric_custom_attribute["some-numeric-custom-attribute"], [bucket(MIN, 0, "
2343
+ # negative"), bucket(0, MAX, "non-negative"])`
2344
+ # Corresponds to the JSON property `histogramQueries`
2345
+ # @return [Array<Google::Apis::JobsV4::HistogramQuery>]
2346
+ attr_accessor :histogram_queries
2347
+
2348
+ # The query required to perform a search query.
2349
+ # Corresponds to the JSON property `jobQuery`
2350
+ # @return [Google::Apis::JobsV4::JobQuery]
2351
+ attr_accessor :job_query
2352
+
2353
+ # The desired job attributes returned for jobs in the search response. Defaults
2354
+ # to JobView.JOB_VIEW_SMALL if no value is specified.
2355
+ # Corresponds to the JSON property `jobView`
2356
+ # @return [String]
2357
+ attr_accessor :job_view
2358
+
2359
+ # A limit on the number of jobs returned in the search results. Increasing this
2360
+ # value above the default value of 10 can increase search response time. The
2361
+ # value can be between 1 and 100.
2362
+ # Corresponds to the JSON property `maxPageSize`
2363
+ # @return [Fixnum]
2364
+ attr_accessor :max_page_size
2365
+
2366
+ # An integer that specifies the current offset (that is, starting result
2367
+ # location, amongst the jobs deemed by the API as relevant) in search results.
2368
+ # This field is only considered if page_token is unset. The maximum allowed
2369
+ # value is 5000. Otherwise an error is thrown. For example, 0 means to return
2370
+ # results starting from the first matching job, and 10 means to return from the
2371
+ # 11th job. This can be used for pagination, (for example, pageSize = 10 and
2372
+ # offset = 10 means to return from the second page).
2373
+ # Corresponds to the JSON property `offset`
2374
+ # @return [Fixnum]
2375
+ attr_accessor :offset
2376
+
2377
+ # The criteria determining how search results are sorted. Default is `"relevance
2378
+ # desc"`. Supported options are: * `"relevance desc"`: By relevance descending,
2379
+ # as determined by the API algorithms. Relevance thresholding of query results
2380
+ # is only available with this ordering. * `"posting_publish_time desc"`: By Job.
2381
+ # posting_publish_time descending. * `"posting_update_time desc"`: By Job.
2382
+ # posting_update_time descending. * `"title"`: By Job.title ascending. * `"title
2383
+ # desc"`: By Job.title descending. * `"annualized_base_compensation"`: By job's
2384
+ # CompensationInfo.annualized_base_compensation_range ascending. Jobs whose
2385
+ # annualized base compensation is unspecified are put at the end of search
2386
+ # results. * `"annualized_base_compensation desc"`: By job's CompensationInfo.
2387
+ # annualized_base_compensation_range descending. Jobs whose annualized base
2388
+ # compensation is unspecified are put at the end of search results. * `"
2389
+ # annualized_total_compensation"`: By job's CompensationInfo.
2390
+ # annualized_total_compensation_range ascending. Jobs whose annualized base
2391
+ # compensation is unspecified are put at the end of search results. * `"
2392
+ # annualized_total_compensation desc"`: By job's CompensationInfo.
2393
+ # annualized_total_compensation_range descending. Jobs whose annualized base
2394
+ # compensation is unspecified are put at the end of search results. * `"
2395
+ # custom_ranking desc"`: By the relevance score adjusted to the
2396
+ # SearchJobsRequest.CustomRankingInfo.ranking_expression with weight factor
2397
+ # assigned by SearchJobsRequest.CustomRankingInfo.importance_level in descending
2398
+ # order. * Location sorting: Use the special syntax to order jobs by distance: `"
2399
+ # distance_from('Hawaii')"`: Order by distance from Hawaii. `"distance_from(19.
2400
+ # 89, 155.5)"`: Order by distance from a coordinate. `"distance_from('Hawaii'),
2401
+ # distance_from('Puerto Rico')"`: Order by multiple locations. See details below.
2402
+ # `"distance_from('Hawaii'), distance_from(19.89, 155.5)"`: Order by multiple
2403
+ # locations. See details below. The string can have a maximum of 256 characters.
2404
+ # When multiple distance centers are provided, a job that is close to any of the
2405
+ # distance centers would have a high rank. When a job has multiple locations,
2406
+ # the job location closest to one of the distance centers will be used. Jobs
2407
+ # that don't have locations will be ranked at the bottom. Distance is calculated
2408
+ # with a precision of 11.3 meters (37.4 feet). Diversification strategy is still
2409
+ # applied unless explicitly disabled in diversification_level.
2410
+ # Corresponds to the JSON property `orderBy`
2411
+ # @return [String]
2412
+ attr_accessor :order_by
2413
+
2414
+ # The token specifying the current offset within search results. See
2415
+ # SearchJobsResponse.next_page_token for an explanation of how to obtain the
2416
+ # next set of query results.
2417
+ # Corresponds to the JSON property `pageToken`
2418
+ # @return [String]
2419
+ attr_accessor :page_token
2420
+
2421
+ # Meta information related to the job searcher or entity conducting the job
2422
+ # search. This information is used to improve the performance of the service.
2423
+ # Corresponds to the JSON property `requestMetadata`
2424
+ # @return [Google::Apis::JobsV4::RequestMetadata]
2425
+ attr_accessor :request_metadata
2426
+
2427
+ # Mode of a search. Defaults to SearchMode.JOB_SEARCH.
2428
+ # Corresponds to the JSON property `searchMode`
2429
+ # @return [String]
2430
+ attr_accessor :search_mode
2431
+
2432
+ def initialize(**args)
2433
+ update!(**args)
2434
+ end
2435
+
2436
+ # Update properties of this object
2437
+ def update!(**args)
2438
+ @custom_ranking_info = args[:custom_ranking_info] if args.key?(:custom_ranking_info)
2439
+ @disable_keyword_match = args[:disable_keyword_match] if args.key?(:disable_keyword_match)
2440
+ @diversification_level = args[:diversification_level] if args.key?(:diversification_level)
2441
+ @enable_broadening = args[:enable_broadening] if args.key?(:enable_broadening)
2442
+ @histogram_queries = args[:histogram_queries] if args.key?(:histogram_queries)
2443
+ @job_query = args[:job_query] if args.key?(:job_query)
2444
+ @job_view = args[:job_view] if args.key?(:job_view)
2445
+ @max_page_size = args[:max_page_size] if args.key?(:max_page_size)
2446
+ @offset = args[:offset] if args.key?(:offset)
2447
+ @order_by = args[:order_by] if args.key?(:order_by)
2448
+ @page_token = args[:page_token] if args.key?(:page_token)
2449
+ @request_metadata = args[:request_metadata] if args.key?(:request_metadata)
2450
+ @search_mode = args[:search_mode] if args.key?(:search_mode)
2451
+ end
2452
+ end
2453
+
2454
+ # Response for SearchJob method.
2455
+ class SearchJobsResponse
2456
+ include Google::Apis::Core::Hashable
2457
+
2458
+ # If query broadening is enabled, we may append additional results from the
2459
+ # broadened query. This number indicates how many of the jobs returned in the
2460
+ # jobs field are from the broadened query. These results are always at the end
2461
+ # of the jobs list. In particular, a value of 0, or if the field isn't set, all
2462
+ # the jobs in the jobs list are from the original (without broadening) query. If
2463
+ # this field is non-zero, subsequent requests with offset after this result set
2464
+ # should contain all broadened results.
2465
+ # Corresponds to the JSON property `broadenedQueryJobsCount`
2466
+ # @return [Fixnum]
2467
+ attr_accessor :broadened_query_jobs_count
2468
+
2469
+ # The histogram results that match with specified SearchJobsRequest.
2470
+ # histogram_queries.
2471
+ # Corresponds to the JSON property `histogramQueryResults`
2472
+ # @return [Array<Google::Apis::JobsV4::HistogramQueryResult>]
2473
+ attr_accessor :histogram_query_results
2474
+
2475
+ # The location filters that the service applied to the specified query. If any
2476
+ # filters are lat-lng based, the Location.location_type is Location.LocationType.
2477
+ # LOCATION_TYPE_UNSPECIFIED.
2478
+ # Corresponds to the JSON property `locationFilters`
2479
+ # @return [Array<Google::Apis::JobsV4::Location>]
2480
+ attr_accessor :location_filters
2481
+
2482
+ # The Job entities that match the specified SearchJobsRequest.
2483
+ # Corresponds to the JSON property `matchingJobs`
2484
+ # @return [Array<Google::Apis::JobsV4::MatchingJob>]
2485
+ attr_accessor :matching_jobs
2486
+
2487
+ # Additional information returned to client, such as debugging information.
2488
+ # Corresponds to the JSON property `metadata`
2489
+ # @return [Google::Apis::JobsV4::ResponseMetadata]
2490
+ attr_accessor :metadata
2491
+
2492
+ # The token that specifies the starting position of the next page of results.
2493
+ # This field is empty if there are no more results.
2494
+ # Corresponds to the JSON property `nextPageToken`
2495
+ # @return [String]
2496
+ attr_accessor :next_page_token
2497
+
2498
+ # Spell check result.
2499
+ # Corresponds to the JSON property `spellCorrection`
2500
+ # @return [Google::Apis::JobsV4::SpellingCorrection]
2501
+ attr_accessor :spell_correction
2502
+
2503
+ # Number of jobs that match the specified query. Note: This size is precise only
2504
+ # if the total is less than 100,000.
2505
+ # Corresponds to the JSON property `totalSize`
2506
+ # @return [Fixnum]
2507
+ attr_accessor :total_size
2508
+
2509
+ def initialize(**args)
2510
+ update!(**args)
2511
+ end
2512
+
2513
+ # Update properties of this object
2514
+ def update!(**args)
2515
+ @broadened_query_jobs_count = args[:broadened_query_jobs_count] if args.key?(:broadened_query_jobs_count)
2516
+ @histogram_query_results = args[:histogram_query_results] if args.key?(:histogram_query_results)
2517
+ @location_filters = args[:location_filters] if args.key?(:location_filters)
2518
+ @matching_jobs = args[:matching_jobs] if args.key?(:matching_jobs)
2519
+ @metadata = args[:metadata] if args.key?(:metadata)
2520
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
2521
+ @spell_correction = args[:spell_correction] if args.key?(:spell_correction)
2522
+ @total_size = args[:total_size] if args.key?(:total_size)
2523
+ end
2524
+ end
2525
+
2526
+ # Spell check result.
2527
+ class SpellingCorrection
2528
+ include Google::Apis::Core::Hashable
2529
+
2530
+ # Indicates if the query was corrected by the spell checker.
2531
+ # Corresponds to the JSON property `corrected`
2532
+ # @return [Boolean]
2533
+ attr_accessor :corrected
2534
+ alias_method :corrected?, :corrected
2535
+
2536
+ # Corrected output with html tags to highlight the corrected words. Corrected
2537
+ # words are called out with the "*...*" html tags. For example, the user input
2538
+ # query is "software enginear", where the second word, "enginear," is incorrect.
2539
+ # It should be "engineer". When spelling correction is enabled, this value is "
2540
+ # software *engineer*".
2541
+ # Corresponds to the JSON property `correctedHtml`
2542
+ # @return [String]
2543
+ attr_accessor :corrected_html
2544
+
2545
+ # Correction output consisting of the corrected keyword string.
2546
+ # Corresponds to the JSON property `correctedText`
2547
+ # @return [String]
2548
+ attr_accessor :corrected_text
2549
+
2550
+ def initialize(**args)
2551
+ update!(**args)
2552
+ end
2553
+
2554
+ # Update properties of this object
2555
+ def update!(**args)
2556
+ @corrected = args[:corrected] if args.key?(:corrected)
2557
+ @corrected_html = args[:corrected_html] if args.key?(:corrected_html)
2558
+ @corrected_text = args[:corrected_text] if args.key?(:corrected_text)
2559
+ end
2560
+ end
2561
+
2562
+ # The `Status` type defines a logical error model that is suitable for different
2563
+ # programming environments, including REST APIs and RPC APIs. It is used by [
2564
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
2565
+ # data: error code, error message, and error details. You can find out more
2566
+ # about this error model and how to work with it in the [API Design Guide](https:
2567
+ # //cloud.google.com/apis/design/errors).
2568
+ class Status
2569
+ include Google::Apis::Core::Hashable
2570
+
2571
+ # The status code, which should be an enum value of google.rpc.Code.
2572
+ # Corresponds to the JSON property `code`
2573
+ # @return [Fixnum]
2574
+ attr_accessor :code
2575
+
2576
+ # A list of messages that carry the error details. There is a common set of
2577
+ # message types for APIs to use.
2578
+ # Corresponds to the JSON property `details`
2579
+ # @return [Array<Hash<String,Object>>]
2580
+ attr_accessor :details
2581
+
2582
+ # A developer-facing error message, which should be in English. Any user-facing
2583
+ # error message should be localized and sent in the google.rpc.Status.details
2584
+ # field, or localized by the client.
2585
+ # Corresponds to the JSON property `message`
2586
+ # @return [String]
2587
+ attr_accessor :message
2588
+
2589
+ def initialize(**args)
2590
+ update!(**args)
2591
+ end
2592
+
2593
+ # Update properties of this object
2594
+ def update!(**args)
2595
+ @code = args[:code] if args.key?(:code)
2596
+ @details = args[:details] if args.key?(:details)
2597
+ @message = args[:message] if args.key?(:message)
2598
+ end
2599
+ end
2600
+
2601
+ # A Tenant resource represents a tenant in the service. A tenant is a group or
2602
+ # entity that shares common access with specific privileges for resources like
2603
+ # jobs. Customer may create multiple tenants to provide data isolation for
2604
+ # different groups.
2605
+ class Tenant
2606
+ include Google::Apis::Core::Hashable
2607
+
2608
+ # Required. Client side tenant identifier, used to uniquely identify the tenant.
2609
+ # The maximum number of allowed characters is 255.
2610
+ # Corresponds to the JSON property `externalId`
2611
+ # @return [String]
2612
+ attr_accessor :external_id
2613
+
2614
+ # Required during tenant update. The resource name for a tenant. This is
2615
+ # generated by the service when a tenant is created. The format is "projects/`
2616
+ # project_id`/tenants/`tenant_id`", for example, "projects/foo/tenants/bar".
2617
+ # Corresponds to the JSON property `name`
2618
+ # @return [String]
2619
+ attr_accessor :name
2620
+
2621
+ def initialize(**args)
2622
+ update!(**args)
2623
+ end
2624
+
2625
+ # Update properties of this object
2626
+ def update!(**args)
2627
+ @external_id = args[:external_id] if args.key?(:external_id)
2628
+ @name = args[:name] if args.key?(:name)
2629
+ end
2630
+ end
2631
+
2632
+ # Represents a time of day. The date and time zone are either not significant or
2633
+ # are specified elsewhere. An API may choose to allow leap seconds. Related
2634
+ # types are google.type.Date and `google.protobuf.Timestamp`.
2635
+ class TimeOfDay
2636
+ include Google::Apis::Core::Hashable
2637
+
2638
+ # Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to
2639
+ # allow the value "24:00:00" for scenarios like business closing time.
2640
+ # Corresponds to the JSON property `hours`
2641
+ # @return [Fixnum]
2642
+ attr_accessor :hours
2643
+
2644
+ # Minutes of hour of day. Must be from 0 to 59.
2645
+ # Corresponds to the JSON property `minutes`
2646
+ # @return [Fixnum]
2647
+ attr_accessor :minutes
2648
+
2649
+ # Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.
2650
+ # Corresponds to the JSON property `nanos`
2651
+ # @return [Fixnum]
2652
+ attr_accessor :nanos
2653
+
2654
+ # Seconds of minutes of the time. Must normally be from 0 to 59. An API may
2655
+ # allow the value 60 if it allows leap-seconds.
2656
+ # Corresponds to the JSON property `seconds`
2657
+ # @return [Fixnum]
2658
+ attr_accessor :seconds
2659
+
2660
+ def initialize(**args)
2661
+ update!(**args)
2662
+ end
2663
+
2664
+ # Update properties of this object
2665
+ def update!(**args)
2666
+ @hours = args[:hours] if args.key?(:hours)
2667
+ @minutes = args[:minutes] if args.key?(:minutes)
2668
+ @nanos = args[:nanos] if args.key?(:nanos)
2669
+ @seconds = args[:seconds] if args.key?(:seconds)
2670
+ end
2671
+ end
2672
+
2673
+ # Message representing a period of time between two timestamps.
2674
+ class TimestampRange
2675
+ include Google::Apis::Core::Hashable
2676
+
2677
+ # End of the period (exclusive).
2678
+ # Corresponds to the JSON property `endTime`
2679
+ # @return [String]
2680
+ attr_accessor :end_time
2681
+
2682
+ # Begin of the period (inclusive).
2683
+ # Corresponds to the JSON property `startTime`
2684
+ # @return [String]
2685
+ attr_accessor :start_time
2686
+
2687
+ def initialize(**args)
2688
+ update!(**args)
2689
+ end
2690
+
2691
+ # Update properties of this object
2692
+ def update!(**args)
2693
+ @end_time = args[:end_time] if args.key?(:end_time)
2694
+ @start_time = args[:start_time] if args.key?(:start_time)
2695
+ end
2696
+ end
2697
+ end
2698
+ end
2699
+ end