@kombo-api/sdk 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (319) hide show
  1. package/README.md +7 -3
  2. package/esm/funcs/assessmentUpdateOrderResult.js.map +1 -1
  3. package/esm/funcs/atsAddApplicationAttachment.js.map +1 -1
  4. package/esm/funcs/atsAddApplicationNote.js.map +1 -1
  5. package/esm/funcs/atsAddApplicationResultLink.js.map +1 -1
  6. package/esm/funcs/atsAddCandidateAttachment.js.map +1 -1
  7. package/esm/funcs/atsAddCandidateResultLink.js.map +1 -1
  8. package/esm/funcs/atsAddCandidateTag.js.map +1 -1
  9. package/esm/funcs/atsCreateApplication.js.map +1 -1
  10. package/esm/funcs/atsGetApplicationAttachments.js.map +1 -1
  11. package/esm/funcs/atsGetCandidateAttachments.js.map +1 -1
  12. package/esm/funcs/atsGetRoles.d.ts +25 -0
  13. package/esm/funcs/atsGetRoles.d.ts.map +1 -0
  14. package/esm/funcs/atsGetRoles.js +125 -0
  15. package/esm/funcs/atsGetRoles.js.map +1 -0
  16. package/esm/funcs/atsMoveApplicationToStage.d.ts +2 -1
  17. package/esm/funcs/atsMoveApplicationToStage.d.ts.map +1 -1
  18. package/esm/funcs/atsMoveApplicationToStage.js +2 -1
  19. package/esm/funcs/atsMoveApplicationToStage.js.map +1 -1
  20. package/esm/funcs/atsRejectApplication.js.map +1 -1
  21. package/esm/funcs/atsRemoveCandidateTag.js.map +1 -1
  22. package/esm/funcs/connectGetIntegrationByToken.js.map +1 -1
  23. package/esm/funcs/generalCreateReconnectionLink.js.map +1 -1
  24. package/esm/funcs/generalDeleteIntegration.js.map +1 -1
  25. package/esm/funcs/generalGetCustomFields.js.map +1 -1
  26. package/esm/funcs/generalGetIntegrationDetails.js.map +1 -1
  27. package/esm/funcs/generalGetIntegrationFields.js.map +1 -1
  28. package/esm/funcs/generalGetTools.js.map +1 -1
  29. package/esm/funcs/generalSendPassthroughRequest.d.ts +18 -5
  30. package/esm/funcs/generalSendPassthroughRequest.d.ts.map +1 -1
  31. package/esm/funcs/generalSendPassthroughRequest.js +18 -5
  32. package/esm/funcs/generalSendPassthroughRequest.js.map +1 -1
  33. package/esm/funcs/generalSetIntegrationEnabled.js.map +1 -1
  34. package/esm/funcs/generalUpdateCustomFieldMapping.js.map +1 -1
  35. package/esm/funcs/generalUpdateIntegrationField.js.map +1 -1
  36. package/esm/funcs/hrisAddEmployeeDocument.js.map +1 -1
  37. package/esm/funcs/hrisDeleteAbsence.js.map +1 -1
  38. package/esm/funcs/hrisGetPerformanceReviewCycles.d.ts +0 -2
  39. package/esm/funcs/hrisGetPerformanceReviewCycles.d.ts.map +1 -1
  40. package/esm/funcs/hrisGetPerformanceReviewCycles.js +0 -2
  41. package/esm/funcs/hrisGetPerformanceReviewCycles.js.map +1 -1
  42. package/esm/funcs/hrisGetPerformanceReviews.d.ts +0 -2
  43. package/esm/funcs/hrisGetPerformanceReviews.d.ts.map +1 -1
  44. package/esm/funcs/hrisGetPerformanceReviews.js +0 -2
  45. package/esm/funcs/hrisGetPerformanceReviews.js.map +1 -1
  46. package/esm/funcs/hrisGetStaffingEntities.d.ts +33 -0
  47. package/esm/funcs/hrisGetStaffingEntities.d.ts.map +1 -0
  48. package/esm/funcs/hrisGetStaffingEntities.js +134 -0
  49. package/esm/funcs/hrisGetStaffingEntities.js.map +1 -0
  50. package/esm/lib/config.d.ts +3 -3
  51. package/esm/lib/config.js +3 -3
  52. package/esm/lib/config.js.map +1 -1
  53. package/esm/lib/encodings.d.ts.map +1 -1
  54. package/esm/lib/encodings.js +20 -5
  55. package/esm/lib/encodings.js.map +1 -1
  56. package/esm/lib/files.d.ts +13 -0
  57. package/esm/lib/files.d.ts.map +1 -1
  58. package/esm/lib/files.js +18 -0
  59. package/esm/lib/files.js.map +1 -1
  60. package/esm/lib/matchers.d.ts.map +1 -1
  61. package/esm/lib/matchers.js +0 -1
  62. package/esm/lib/matchers.js.map +1 -1
  63. package/esm/lib/sdks.d.ts.map +1 -1
  64. package/esm/lib/sdks.js +8 -4
  65. package/esm/lib/sdks.js.map +1 -1
  66. package/esm/lib/security.d.ts.map +1 -1
  67. package/esm/lib/security.js +1 -2
  68. package/esm/lib/security.js.map +1 -1
  69. package/esm/lib/url.d.ts.map +1 -1
  70. package/esm/lib/url.js +4 -2
  71. package/esm/lib/url.js.map +1 -1
  72. package/esm/models/assessmentorderreceivedwebhookpayload.d.ts +5 -2
  73. package/esm/models/assessmentorderreceivedwebhookpayload.d.ts.map +1 -1
  74. package/esm/models/assessmentorderreceivedwebhookpayload.js +5 -2
  75. package/esm/models/assessmentorderreceivedwebhookpayload.js.map +1 -1
  76. package/esm/models/datachangedwebhookpayload.d.ts +7 -0
  77. package/esm/models/datachangedwebhookpayload.d.ts.map +1 -1
  78. package/esm/models/datachangedwebhookpayload.js +7 -0
  79. package/esm/models/datachangedwebhookpayload.js.map +1 -1
  80. package/esm/models/getassessmentordersopenpositiveresponse.d.ts +4 -1
  81. package/esm/models/getassessmentordersopenpositiveresponse.d.ts.map +1 -1
  82. package/esm/models/getassessmentordersopenpositiveresponse.js +4 -1
  83. package/esm/models/getassessmentordersopenpositiveresponse.js.map +1 -1
  84. package/esm/models/getatsjobspositiveresponse.d.ts +67 -1
  85. package/esm/models/getatsjobspositiveresponse.d.ts.map +1 -1
  86. package/esm/models/getatsjobspositiveresponse.js +36 -0
  87. package/esm/models/getatsjobspositiveresponse.js.map +1 -1
  88. package/esm/models/getatsrolespositiveresponse.d.ts +85 -0
  89. package/esm/models/getatsrolespositiveresponse.d.ts.map +1 -0
  90. package/esm/models/getatsrolespositiveresponse.js +57 -0
  91. package/esm/models/getatsrolespositiveresponse.js.map +1 -0
  92. package/esm/models/getatsuserspositiveresponse.d.ts +61 -0
  93. package/esm/models/getatsuserspositiveresponse.d.ts.map +1 -1
  94. package/esm/models/getatsuserspositiveresponse.js +33 -0
  95. package/esm/models/getatsuserspositiveresponse.js.map +1 -1
  96. package/esm/models/gethrisemployeespositiveresponse.d.ts +12 -12
  97. package/esm/models/gethrisemployeespositiveresponse.d.ts.map +1 -1
  98. package/esm/models/gethrisemployeespositiveresponse.js +12 -13
  99. package/esm/models/gethrisemployeespositiveresponse.js.map +1 -1
  100. package/esm/models/gethrisstaffingentitiespositiveresponse.d.ts +261 -0
  101. package/esm/models/gethrisstaffingentitiespositiveresponse.d.ts.map +1 -0
  102. package/esm/models/gethrisstaffingentitiespositiveresponse.js +143 -0
  103. package/esm/models/gethrisstaffingentitiespositiveresponse.js.map +1 -0
  104. package/esm/models/index.d.ts +2 -0
  105. package/esm/models/index.d.ts.map +1 -1
  106. package/esm/models/index.js +2 -0
  107. package/esm/models/index.js.map +1 -1
  108. package/esm/models/inlineassessmentorderreceivedwebhookpayload.d.ts +5 -2
  109. package/esm/models/inlineassessmentorderreceivedwebhookpayload.d.ts.map +1 -1
  110. package/esm/models/inlineassessmentorderreceivedwebhookpayload.js +5 -2
  111. package/esm/models/inlineassessmentorderreceivedwebhookpayload.js.map +1 -1
  112. package/esm/models/komboatserror.d.ts +1 -0
  113. package/esm/models/komboatserror.d.ts.map +1 -1
  114. package/esm/models/komboatserror.js +1 -0
  115. package/esm/models/komboatserror.js.map +1 -1
  116. package/esm/models/kombogeneralerror.d.ts +1 -0
  117. package/esm/models/kombogeneralerror.d.ts.map +1 -1
  118. package/esm/models/kombogeneralerror.js +1 -0
  119. package/esm/models/kombogeneralerror.js.map +1 -1
  120. package/esm/models/kombohriserror.d.ts +1 -0
  121. package/esm/models/kombohriserror.d.ts.map +1 -1
  122. package/esm/models/kombohriserror.js +1 -0
  123. package/esm/models/kombohriserror.js.map +1 -1
  124. package/esm/models/operations/getatsapplications.d.ts +9 -0
  125. package/esm/models/operations/getatsapplications.d.ts.map +1 -1
  126. package/esm/models/operations/getatsapplications.js.map +1 -1
  127. package/esm/models/operations/getatsapplicationstages.d.ts +2 -0
  128. package/esm/models/operations/getatsapplicationstages.d.ts.map +1 -1
  129. package/esm/models/operations/getatsapplicationstages.js.map +1 -1
  130. package/esm/models/operations/getatscandidates.d.ts +8 -0
  131. package/esm/models/operations/getatscandidates.d.ts.map +1 -1
  132. package/esm/models/operations/getatscandidates.js.map +1 -1
  133. package/esm/models/operations/getatsinterviews.d.ts +8 -0
  134. package/esm/models/operations/getatsinterviews.d.ts.map +1 -1
  135. package/esm/models/operations/getatsinterviews.js.map +1 -1
  136. package/esm/models/operations/getatsjobs.d.ts +11 -0
  137. package/esm/models/operations/getatsjobs.d.ts.map +1 -1
  138. package/esm/models/operations/getatsjobs.js.map +1 -1
  139. package/esm/models/operations/getatsoffers.d.ts +6 -0
  140. package/esm/models/operations/getatsoffers.d.ts.map +1 -1
  141. package/esm/models/operations/getatsoffers.js.map +1 -1
  142. package/esm/models/operations/getatsrejectionreasons.d.ts +2 -0
  143. package/esm/models/operations/getatsrejectionreasons.d.ts.map +1 -1
  144. package/esm/models/operations/getatsrejectionreasons.js.map +1 -1
  145. package/esm/models/operations/getatsroles.d.ts +79 -0
  146. package/esm/models/operations/getatsroles.d.ts.map +1 -0
  147. package/esm/models/operations/getatsroles.js +33 -0
  148. package/esm/models/operations/getatsroles.js.map +1 -0
  149. package/esm/models/operations/getatstags.d.ts +2 -0
  150. package/esm/models/operations/getatstags.d.ts.map +1 -1
  151. package/esm/models/operations/getatstags.js.map +1 -1
  152. package/esm/models/operations/getatsusers.d.ts +5 -0
  153. package/esm/models/operations/getatsusers.d.ts.map +1 -1
  154. package/esm/models/operations/getatsusers.js.map +1 -1
  155. package/esm/models/operations/gethrisabsences.d.ts +4 -0
  156. package/esm/models/operations/gethrisabsences.d.ts.map +1 -1
  157. package/esm/models/operations/gethrisabsences.js.map +1 -1
  158. package/esm/models/operations/gethrisabsencetypes.d.ts +2 -0
  159. package/esm/models/operations/gethrisabsencetypes.d.ts.map +1 -1
  160. package/esm/models/operations/gethrisabsencetypes.js.map +1 -1
  161. package/esm/models/operations/gethrisemployeedocumentcategories.d.ts +2 -0
  162. package/esm/models/operations/gethrisemployeedocumentcategories.d.ts.map +1 -1
  163. package/esm/models/operations/gethrisemployeedocumentcategories.js.map +1 -1
  164. package/esm/models/operations/gethrisemployees.d.ts +10 -0
  165. package/esm/models/operations/gethrisemployees.d.ts.map +1 -1
  166. package/esm/models/operations/gethrisemployees.js.map +1 -1
  167. package/esm/models/operations/gethrisemployments.d.ts +2 -0
  168. package/esm/models/operations/gethrisemployments.d.ts.map +1 -1
  169. package/esm/models/operations/gethrisemployments.js.map +1 -1
  170. package/esm/models/operations/gethrisgroups.d.ts +2 -0
  171. package/esm/models/operations/gethrisgroups.d.ts.map +1 -1
  172. package/esm/models/operations/gethrisgroups.js.map +1 -1
  173. package/esm/models/operations/gethrislegalentities.d.ts +2 -0
  174. package/esm/models/operations/gethrislegalentities.d.ts.map +1 -1
  175. package/esm/models/operations/gethrislegalentities.js.map +1 -1
  176. package/esm/models/operations/gethrislocations.d.ts +2 -0
  177. package/esm/models/operations/gethrislocations.d.ts.map +1 -1
  178. package/esm/models/operations/gethrislocations.js.map +1 -1
  179. package/esm/models/operations/gethrisperformancereviewcycles.d.ts +2 -0
  180. package/esm/models/operations/gethrisperformancereviewcycles.d.ts.map +1 -1
  181. package/esm/models/operations/gethrisperformancereviewcycles.js.map +1 -1
  182. package/esm/models/operations/gethrisperformancereviews.d.ts +6 -0
  183. package/esm/models/operations/gethrisperformancereviews.d.ts.map +1 -1
  184. package/esm/models/operations/gethrisperformancereviews.js.map +1 -1
  185. package/esm/models/operations/gethrisstaffingentities.d.ts +93 -0
  186. package/esm/models/operations/gethrisstaffingentities.d.ts.map +1 -0
  187. package/esm/models/operations/gethrisstaffingentities.js +34 -0
  188. package/esm/models/operations/gethrisstaffingentities.js.map +1 -0
  189. package/esm/models/operations/gethristimeoffbalances.d.ts +4 -0
  190. package/esm/models/operations/gethristimeoffbalances.d.ts.map +1 -1
  191. package/esm/models/operations/gethristimeoffbalances.js.map +1 -1
  192. package/esm/models/operations/gethristimesheets.d.ts +2 -0
  193. package/esm/models/operations/gethristimesheets.d.ts.map +1 -1
  194. package/esm/models/operations/gethristimesheets.js.map +1 -1
  195. package/esm/models/operations/index.d.ts +2 -0
  196. package/esm/models/operations/index.d.ts.map +1 -1
  197. package/esm/models/operations/index.js +2 -0
  198. package/esm/models/operations/index.js.map +1 -1
  199. package/esm/models/postatsapplicationsapplicationidnotesrequestbody.d.ts +21 -0
  200. package/esm/models/postatsapplicationsapplicationidnotesrequestbody.d.ts.map +1 -1
  201. package/esm/models/postatsapplicationsapplicationidnotesrequestbody.js +8 -0
  202. package/esm/models/postatsapplicationsapplicationidnotesrequestbody.js.map +1 -1
  203. package/esm/models/postatscandidatesrequestbody.d.ts +60 -0
  204. package/esm/models/postatscandidatesrequestbody.d.ts.map +1 -1
  205. package/esm/models/postatscandidatesrequestbody.js +30 -0
  206. package/esm/models/postatscandidatesrequestbody.js.map +1 -1
  207. package/esm/models/postatsjobsjobidapplicationsrequestbody.d.ts +60 -0
  208. package/esm/models/postatsjobsjobidapplicationsrequestbody.d.ts.map +1 -1
  209. package/esm/models/postatsjobsjobidapplicationsrequestbody.js +30 -0
  210. package/esm/models/postatsjobsjobidapplicationsrequestbody.js.map +1 -1
  211. package/esm/models/postconnectcreatelinkrequestbody.d.ts +4 -0
  212. package/esm/models/postconnectcreatelinkrequestbody.d.ts.map +1 -1
  213. package/esm/models/postconnectcreatelinkrequestbody.js +4 -0
  214. package/esm/models/postconnectcreatelinkrequestbody.js.map +1 -1
  215. package/esm/models/putassessmentordersassessmentorderidresultrequestbody.d.ts +15 -0
  216. package/esm/models/putassessmentordersassessmentorderidresultrequestbody.d.ts.map +1 -1
  217. package/esm/models/putassessmentordersassessmentorderidresultrequestbody.js +9 -0
  218. package/esm/models/putassessmentordersassessmentorderidresultrequestbody.js.map +1 -1
  219. package/esm/models/putatsapplicationsapplicationidstagerequestbody.d.ts +40 -0
  220. package/esm/models/putatsapplicationsapplicationidstagerequestbody.d.ts.map +1 -1
  221. package/esm/models/putatsapplicationsapplicationidstagerequestbody.js +24 -0
  222. package/esm/models/putatsapplicationsapplicationidstagerequestbody.js.map +1 -1
  223. package/esm/sdk/ats.d.ts +15 -1
  224. package/esm/sdk/ats.d.ts.map +1 -1
  225. package/esm/sdk/ats.js +16 -1
  226. package/esm/sdk/ats.js.map +1 -1
  227. package/esm/sdk/general.d.ts +18 -5
  228. package/esm/sdk/general.d.ts.map +1 -1
  229. package/esm/sdk/general.js +18 -5
  230. package/esm/sdk/general.js.map +1 -1
  231. package/esm/sdk/hris.d.ts +21 -4
  232. package/esm/sdk/hris.d.ts.map +1 -1
  233. package/esm/sdk/hris.js +22 -4
  234. package/esm/sdk/hris.js.map +1 -1
  235. package/jsr.json +1 -1
  236. package/package.json +1 -1
  237. package/src/funcs/assessmentUpdateOrderResult.ts +0 -1
  238. package/src/funcs/atsAddApplicationAttachment.ts +0 -1
  239. package/src/funcs/atsAddApplicationNote.ts +0 -1
  240. package/src/funcs/atsAddApplicationResultLink.ts +0 -1
  241. package/src/funcs/atsAddCandidateAttachment.ts +0 -1
  242. package/src/funcs/atsAddCandidateResultLink.ts +0 -1
  243. package/src/funcs/atsAddCandidateTag.ts +0 -1
  244. package/src/funcs/atsCreateApplication.ts +0 -1
  245. package/src/funcs/atsGetApplicationAttachments.ts +0 -1
  246. package/src/funcs/atsGetCandidateAttachments.ts +0 -1
  247. package/src/funcs/atsGetRoles.ts +256 -0
  248. package/src/funcs/atsMoveApplicationToStage.ts +2 -2
  249. package/src/funcs/atsRejectApplication.ts +0 -1
  250. package/src/funcs/atsRemoveCandidateTag.ts +0 -1
  251. package/src/funcs/connectGetIntegrationByToken.ts +0 -1
  252. package/src/funcs/generalCreateReconnectionLink.ts +0 -1
  253. package/src/funcs/generalDeleteIntegration.ts +0 -1
  254. package/src/funcs/generalGetCustomFields.ts +0 -1
  255. package/src/funcs/generalGetIntegrationDetails.ts +0 -1
  256. package/src/funcs/generalGetIntegrationFields.ts +0 -1
  257. package/src/funcs/generalGetTools.ts +0 -1
  258. package/src/funcs/generalSendPassthroughRequest.ts +18 -6
  259. package/src/funcs/generalSetIntegrationEnabled.ts +0 -1
  260. package/src/funcs/generalUpdateCustomFieldMapping.ts +0 -1
  261. package/src/funcs/generalUpdateIntegrationField.ts +0 -1
  262. package/src/funcs/hrisAddEmployeeDocument.ts +0 -1
  263. package/src/funcs/hrisDeleteAbsence.ts +0 -1
  264. package/src/funcs/hrisGetPerformanceReviewCycles.ts +0 -2
  265. package/src/funcs/hrisGetPerformanceReviews.ts +0 -2
  266. package/src/funcs/hrisGetStaffingEntities.ts +267 -0
  267. package/src/lib/config.ts +3 -3
  268. package/src/lib/encodings.ts +23 -4
  269. package/src/lib/files.ts +22 -0
  270. package/src/lib/matchers.ts +3 -2
  271. package/src/lib/sdks.ts +7 -5
  272. package/src/lib/security.ts +1 -2
  273. package/src/lib/url.ts +16 -14
  274. package/src/models/assessmentorderreceivedwebhookpayload.ts +7 -4
  275. package/src/models/datachangedwebhookpayload.ts +8 -0
  276. package/src/models/getassessmentordersopenpositiveresponse.ts +5 -2
  277. package/src/models/getatsjobspositiveresponse.ts +100 -1
  278. package/src/models/getatsrolespositiveresponse.ts +167 -0
  279. package/src/models/getatsuserspositiveresponse.ts +97 -0
  280. package/src/models/gethrisemployeespositiveresponse.ts +55 -37
  281. package/src/models/gethrisstaffingentitiespositiveresponse.ts +509 -0
  282. package/src/models/index.ts +2 -0
  283. package/src/models/inlineassessmentorderreceivedwebhookpayload.ts +7 -4
  284. package/src/models/komboatserror.ts +1 -0
  285. package/src/models/kombogeneralerror.ts +1 -0
  286. package/src/models/kombohriserror.ts +1 -0
  287. package/src/models/operations/getatsapplications.ts +9 -0
  288. package/src/models/operations/getatsapplicationstages.ts +2 -0
  289. package/src/models/operations/getatscandidates.ts +8 -0
  290. package/src/models/operations/getatsinterviews.ts +8 -0
  291. package/src/models/operations/getatsjobs.ts +11 -0
  292. package/src/models/operations/getatsoffers.ts +6 -0
  293. package/src/models/operations/getatsrejectionreasons.ts +2 -0
  294. package/src/models/operations/getatsroles.ts +129 -0
  295. package/src/models/operations/getatstags.ts +2 -0
  296. package/src/models/operations/getatsusers.ts +5 -0
  297. package/src/models/operations/gethrisabsences.ts +4 -0
  298. package/src/models/operations/gethrisabsencetypes.ts +2 -0
  299. package/src/models/operations/gethrisemployeedocumentcategories.ts +2 -0
  300. package/src/models/operations/gethrisemployees.ts +10 -0
  301. package/src/models/operations/gethrisemployments.ts +2 -0
  302. package/src/models/operations/gethrisgroups.ts +2 -0
  303. package/src/models/operations/gethrislegalentities.ts +2 -0
  304. package/src/models/operations/gethrislocations.ts +2 -0
  305. package/src/models/operations/gethrisperformancereviewcycles.ts +2 -0
  306. package/src/models/operations/gethrisperformancereviews.ts +6 -0
  307. package/src/models/operations/gethrisstaffingentities.ts +146 -0
  308. package/src/models/operations/gethristimeoffbalances.ts +4 -0
  309. package/src/models/operations/gethristimesheets.ts +2 -0
  310. package/src/models/operations/index.ts +2 -0
  311. package/src/models/postatsapplicationsapplicationidnotesrequestbody.ts +46 -0
  312. package/src/models/postatscandidatesrequestbody.ts +110 -0
  313. package/src/models/postatsjobsjobidapplicationsrequestbody.ts +114 -0
  314. package/src/models/postconnectcreatelinkrequestbody.ts +4 -0
  315. package/src/models/putassessmentordersassessmentorderidresultrequestbody.ts +42 -0
  316. package/src/models/putatsapplicationsapplicationidstagerequestbody.ts +74 -0
  317. package/src/sdk/ats.ts +24 -1
  318. package/src/sdk/general.ts +18 -5
  319. package/src/sdk/hris.ts +32 -4
@@ -0,0 +1,267 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { KomboCore } from "../core.js";
6
+ import { dlv } from "../lib/dlv.js";
7
+ import { encodeFormQuery, encodeSimple, queryJoin } from "../lib/encodings.js";
8
+ import * as M from "../lib/matchers.js";
9
+ import { compactMap } from "../lib/primitives.js";
10
+ import { safeParse } from "../lib/schemas.js";
11
+ import { RequestOptions } from "../lib/sdks.js";
12
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
13
+ import { pathToFunc } from "../lib/url.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.js";
22
+ import { KomboError } from "../models/errors/komboerror.js";
23
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
24
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
25
+ import * as operations from "../models/operations/index.js";
26
+ import { APICall, APIPromise } from "../types/async.js";
27
+ import { Result } from "../types/fp.js";
28
+ import {
29
+ createPageIterator,
30
+ haltIterator,
31
+ PageIterator,
32
+ Paginator,
33
+ } from "../types/operations.js";
34
+
35
+ /**
36
+ * Get staffing entities
37
+ *
38
+ * @remarks
39
+ * Retrieve all staffing entities.
40
+ *
41
+ * Retrieve all staffing entities (positions, requisitions, and jobs) from the HRIS system.
42
+ *
43
+ * Many enterprise HRIS platforms distinguish between **positions**, **requisitions**, and **jobs** — three related but different concepts used to manage headcount and hiring. Not every HRIS uses all three, and naming varies across systems, but here is a general overview:
44
+ *
45
+ * - **Position**: A slot in the organizational structure that represents a role to be filled (or already filled) by one or more employees. Positions typically carry metadata like department, location, cost center, and reporting line. Think of it as "a chair at a desk" — it exists whether someone is sitting in it or not.
46
+ * - **Requisition**: A formal request to fill a position. When a manager wants to hire for an open position, they usually create a requisition that goes through an approval workflow. Requisitions are time-bound and tied to a specific hiring need. In Kombo's data model, a requisition's `parent_id` points to the position it was opened for.
47
+ * - **Job**: Some systems use "job" as a more generic or lightweight alternative to a requisition. Jobs often represent an ongoing, unlimited hiring need (e.g., a company that is always hiring for "Software Engineer") rather than a one-off backfill. This is reflected in the `OPEN_UNLIMITED` status.
48
+ *
49
+ * You can use the `model_types` filter to retrieve only the type(s) relevant to your use case. Each record's `model_type` field tells you which of the three concepts it represents.
50
+ *
51
+ * Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
52
+ */
53
+ export function hrisGetStaffingEntities(
54
+ client: KomboCore,
55
+ request?: operations.GetHrisStaffingEntitiesRequest | undefined,
56
+ options?: RequestOptions,
57
+ ): APIPromise<
58
+ PageIterator<
59
+ Result<
60
+ operations.GetHrisStaffingEntitiesResponse,
61
+ | errors.KomboHrisError
62
+ | KomboError
63
+ | ResponseValidationError
64
+ | ConnectionError
65
+ | RequestAbortedError
66
+ | RequestTimeoutError
67
+ | InvalidRequestError
68
+ | UnexpectedClientError
69
+ | SDKValidationError
70
+ >,
71
+ { cursor: string }
72
+ >
73
+ > {
74
+ return new APIPromise($do(
75
+ client,
76
+ request,
77
+ options,
78
+ ));
79
+ }
80
+
81
+ async function $do(
82
+ client: KomboCore,
83
+ request?: operations.GetHrisStaffingEntitiesRequest | undefined,
84
+ options?: RequestOptions,
85
+ ): Promise<
86
+ [
87
+ PageIterator<
88
+ Result<
89
+ operations.GetHrisStaffingEntitiesResponse,
90
+ | errors.KomboHrisError
91
+ | KomboError
92
+ | ResponseValidationError
93
+ | ConnectionError
94
+ | RequestAbortedError
95
+ | RequestTimeoutError
96
+ | InvalidRequestError
97
+ | UnexpectedClientError
98
+ | SDKValidationError
99
+ >,
100
+ { cursor: string }
101
+ >,
102
+ APICall,
103
+ ]
104
+ > {
105
+ const parsed = safeParse(
106
+ request,
107
+ (value) =>
108
+ operations.GetHrisStaffingEntitiesRequest$outboundSchema.optional().parse(
109
+ value,
110
+ ),
111
+ "Input validation failed",
112
+ );
113
+ if (!parsed.ok) {
114
+ return [haltIterator(parsed), { status: "invalid" }];
115
+ }
116
+ const payload = parsed.value;
117
+ const body = null;
118
+
119
+ const path = pathToFunc("/hris/staffing-entities")();
120
+
121
+ const query = queryJoin(
122
+ encodeFormQuery({
123
+ "ids": payload?.ids,
124
+ "model_types": payload?.model_types,
125
+ "remote_ids": payload?.remote_ids,
126
+ "statuses": payload?.statuses,
127
+ }, { explode: false }),
128
+ encodeFormQuery({
129
+ "cursor": payload?.cursor,
130
+ "ignore_unsupported_filters": payload?.ignore_unsupported_filters,
131
+ "include_deleted": payload?.include_deleted,
132
+ "page_size": payload?.page_size,
133
+ "updated_after": payload?.updated_after,
134
+ }),
135
+ );
136
+
137
+ const headers = new Headers(compactMap({
138
+ Accept: "application/json",
139
+ "X-Integration-Id": encodeSimple(
140
+ "X-Integration-Id",
141
+ client._options.integration_id,
142
+ { explode: false, charEncoding: "none" },
143
+ ),
144
+ }));
145
+
146
+ const secConfig = await extractSecurity(client._options.api_key);
147
+ const securityInput = secConfig == null ? {} : { api_key: secConfig };
148
+ const requestSecurity = resolveGlobalSecurity(securityInput);
149
+
150
+ const context = {
151
+ options: client._options,
152
+ base_url: options?.server_url ?? client._baseURL ?? "",
153
+ operation_id: "GetHrisStaffingEntities",
154
+ o_auth2_scopes: null,
155
+
156
+ resolved_security: requestSecurity,
157
+
158
+ security_source: client._options.api_key,
159
+ retry_config: options?.retries
160
+ || client._options.retry_config
161
+ || { strategy: "none" },
162
+ retry_codes: options?.retry_codes || ["429", "500", "502", "503", "504"],
163
+ };
164
+
165
+ const requestRes = client._createRequest(context, {
166
+ security: requestSecurity,
167
+ method: "GET",
168
+ baseURL: options?.server_url,
169
+ path: path,
170
+ headers: headers,
171
+ query: query,
172
+ body: body,
173
+ userAgent: client._options.user_agent,
174
+ timeout_ms: options?.timeout_ms || client._options.timeout_ms || -1,
175
+ }, options);
176
+ if (!requestRes.ok) {
177
+ return [haltIterator(requestRes), { status: "invalid" }];
178
+ }
179
+ const req = requestRes.value;
180
+
181
+ const doResult = await client._do(req, {
182
+ context,
183
+ errorCodes: ["default"],
184
+ retryConfig: context.retry_config,
185
+ retryCodes: context.retry_codes,
186
+ });
187
+ if (!doResult.ok) {
188
+ return [haltIterator(doResult), { status: "request-error", request: req }];
189
+ }
190
+ const response = doResult.value;
191
+
192
+ const responseFields = {
193
+ HttpMeta: { Response: response, Request: req },
194
+ };
195
+
196
+ const [result, raw] = await M.match<
197
+ operations.GetHrisStaffingEntitiesResponse,
198
+ | errors.KomboHrisError
199
+ | KomboError
200
+ | ResponseValidationError
201
+ | ConnectionError
202
+ | RequestAbortedError
203
+ | RequestTimeoutError
204
+ | InvalidRequestError
205
+ | UnexpectedClientError
206
+ | SDKValidationError
207
+ >(
208
+ M.json(200, operations.GetHrisStaffingEntitiesResponse$inboundSchema, {
209
+ key: "Result",
210
+ }),
211
+ M.jsonErr("default", errors.KomboHrisError$inboundSchema),
212
+ )(response, req, { extraFields: responseFields });
213
+ if (!result.ok) {
214
+ return [haltIterator(result), {
215
+ status: "complete",
216
+ request: req,
217
+ response,
218
+ }];
219
+ }
220
+
221
+ const nextFunc = (
222
+ responseData: unknown,
223
+ ): {
224
+ next: Paginator<
225
+ Result<
226
+ operations.GetHrisStaffingEntitiesResponse,
227
+ | errors.KomboHrisError
228
+ | KomboError
229
+ | ResponseValidationError
230
+ | ConnectionError
231
+ | RequestAbortedError
232
+ | RequestTimeoutError
233
+ | InvalidRequestError
234
+ | UnexpectedClientError
235
+ | SDKValidationError
236
+ >
237
+ >;
238
+ "~next"?: { cursor: string };
239
+ } => {
240
+ const nextCursor = dlv(responseData, "data.next");
241
+ if (typeof nextCursor !== "string") {
242
+ return { next: () => null };
243
+ }
244
+ if (nextCursor.trim() === "") {
245
+ return { next: () => null };
246
+ }
247
+
248
+ const nextVal = () =>
249
+ hrisGetStaffingEntities(
250
+ client,
251
+ {
252
+ ...request!,
253
+ cursor: nextCursor,
254
+ },
255
+ options,
256
+ );
257
+
258
+ return { next: nextVal, "~next": { cursor: nextCursor } };
259
+ };
260
+
261
+ const page = { ...result, ...nextFunc(raw) };
262
+ return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, {
263
+ status: "complete",
264
+ request: req,
265
+ response,
266
+ }];
267
+ }
package/src/lib/config.ts CHANGED
@@ -69,7 +69,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
69
69
  export const SDK_METADATA = {
70
70
  language: "typescript",
71
71
  openapiDocVersion: "1.0.0",
72
- sdkVersion: "1.0.1",
73
- genVersion: "2.844.3",
74
- userAgent: "speakeasy-sdk/typescript 1.0.1 2.844.3 1.0.0 @kombo-api/sdk",
72
+ sdkVersion: "1.0.2",
73
+ genVersion: "2.869.25",
74
+ userAgent: "speakeasy-sdk/typescript 1.0.2 2.869.25 1.0.0 @kombo-api/sdk",
75
75
  } as const;
@@ -479,6 +479,23 @@ export const encodeSpaceDelimitedQuery = queryEncoder(encodeSpaceDelimited);
479
479
  export const encodePipeDelimitedQuery = queryEncoder(encodePipeDelimited);
480
480
  export const encodeDeepObjectQuery = queryEncoder(encodeDeepObject);
481
481
 
482
+ function isBlobLike(val: unknown): val is Blob {
483
+ if (val instanceof Blob) {
484
+ return true;
485
+ }
486
+
487
+ if (typeof val !== "object" || val == null || !(Symbol.toStringTag in val)) {
488
+ return false;
489
+ }
490
+
491
+ const tag = val[Symbol.toStringTag];
492
+ if (tag !== "Blob" && tag !== "File") {
493
+ return false;
494
+ }
495
+
496
+ return "stream" in val && typeof val.stream === "function";
497
+ }
498
+
482
499
  export function appendForm(
483
500
  fd: FormData,
484
501
  key: string,
@@ -487,10 +504,12 @@ export function appendForm(
487
504
  ): void {
488
505
  if (value == null) {
489
506
  return;
490
- } else if (value instanceof Blob && fileName) {
491
- fd.append(key, value, fileName);
492
- } else if (value instanceof Blob) {
493
- fd.append(key, value);
507
+ } else if (isBlobLike(value)) {
508
+ if (fileName) {
509
+ fd.append(key, value as Blob, fileName);
510
+ } else {
511
+ fd.append(key, value as Blob);
512
+ }
494
513
  } else {
495
514
  fd.append(key, String(value));
496
515
  }
package/src/lib/files.ts CHANGED
@@ -80,3 +80,25 @@ export function getContentTypeFromFileName(fileName: string): string | null {
80
80
 
81
81
  return mimeTypes[ext] || null;
82
82
  }
83
+
84
+ /**
85
+ * Creates a Blob from file content with the given MIME type.
86
+ *
87
+ * Node.js Buffers are Uint8Array subclasses that may share a pooled
88
+ * ArrayBuffer (byteOffset > 0, byteLength < buffer.byteLength). Passing
89
+ * such a Buffer directly to `new Blob([buf])` can include the entire
90
+ * underlying pool on some runtimes, producing a Blob with extra bytes
91
+ * that corrupts multipart uploads.
92
+ *
93
+ * Copying into a standalone Uint8Array ensures the Blob receives only the
94
+ * intended bytes regardless of runtime behaviour.
95
+ */
96
+ export function bytesToBlob(
97
+ content: Uint8Array<ArrayBufferLike> | ArrayBuffer | Blob | string,
98
+ contentType: string,
99
+ ): Blob {
100
+ if (content instanceof Uint8Array) {
101
+ return new Blob([new Uint8Array(content)], { type: contentType });
102
+ }
103
+ return new Blob([content as BlobPart], { type: contentType });
104
+ }
@@ -251,8 +251,9 @@ export function match<T, E>(
251
251
  raw = body;
252
252
  break;
253
253
  default:
254
- encoding satisfies never;
255
- throw new Error(`Unsupported response type: ${encoding}`);
254
+ throw new Error(
255
+ `Unsupported response type: ${encoding satisfies never}`,
256
+ );
256
257
  }
257
258
 
258
259
  if (matcher.enc === "fail") {
package/src/lib/sdks.ts CHANGED
@@ -123,13 +123,15 @@ export class ClientSDK {
123
123
  if (!base) {
124
124
  return ERR(new InvalidRequestError("No base URL provided for operation"));
125
125
  }
126
- const reqURL = new URL(base);
127
- const inputURL = new URL(path, reqURL);
128
-
126
+ const baseURL = new URL(base);
127
+ let reqURL: URL;
129
128
  if (path) {
130
- reqURL.pathname += reqURL.pathname.endsWith("/") ? "" : "/";
131
- reqURL.pathname += inputURL.pathname.replace(/^\/+/, "");
129
+ baseURL.pathname = baseURL.pathname.replace(/\/+$/, "") + "/";
130
+ reqURL = new URL(path, baseURL);
131
+ } else {
132
+ reqURL = baseURL;
132
133
  }
134
+ reqURL.hash = "";
133
135
 
134
136
  let finalQuery = query || "";
135
137
 
@@ -197,8 +197,7 @@ export function resolveSecurity(
197
197
  applyBearer(state, spec);
198
198
  break;
199
199
  default:
200
- spec satisfies never;
201
- throw SecurityError.unrecognizedType(type);
200
+ throw SecurityError.unrecognizedType((spec satisfies never, type));
202
201
  }
203
202
  });
204
203
 
package/src/lib/url.ts CHANGED
@@ -13,21 +13,23 @@ export function pathToFunc(
13
13
  const paramRE = /\{([a-zA-Z0-9_][a-zA-Z0-9_-]*?)\}/g;
14
14
 
15
15
  return function buildURLPath(params: Record<string, unknown> = {}): string {
16
- return pathPattern.replace(paramRE, function (_, placeholder) {
17
- if (!hasOwn.call(params, placeholder)) {
18
- throw new Error(`Parameter '${placeholder}' is required`);
19
- }
16
+ return pathPattern
17
+ .replace(paramRE, function (_, placeholder) {
18
+ if (!hasOwn.call(params, placeholder)) {
19
+ throw new Error(`Parameter '${placeholder}' is required`);
20
+ }
20
21
 
21
- const value = params[placeholder];
22
- if (typeof value !== "string" && typeof value !== "number") {
23
- throw new Error(
24
- `Parameter '${placeholder}' must be a string or number`,
25
- );
26
- }
22
+ const value = params[placeholder];
23
+ if (typeof value !== "string" && typeof value !== "number") {
24
+ throw new Error(
25
+ `Parameter '${placeholder}' must be a string or number`,
26
+ );
27
+ }
27
28
 
28
- return options?.charEncoding === "percent"
29
- ? encodeURIComponent(`${value}`)
30
- : `${value}`;
31
- });
29
+ return options?.charEncoding === "percent"
30
+ ? encodeURIComponent(`${value}`)
31
+ : `${value}`;
32
+ })
33
+ .replace(/^\/+/, "");
32
34
  };
33
35
  }
@@ -98,6 +98,9 @@ export type AssessmentOrderReceivedWebhookPayloadLocation = {
98
98
  export const AssessmentOrderReceivedWebhookPayloadHiringTeamRole = {
99
99
  Recruiter: "RECRUITER",
100
100
  HiringManager: "HIRING_MANAGER",
101
+ Coordinator: "COORDINATOR",
102
+ Sourcer: "SOURCER",
103
+ Interviewer: "INTERVIEWER",
101
104
  } as const;
102
105
  export type AssessmentOrderReceivedWebhookPayloadHiringTeamRole = ClosedEnum<
103
106
  typeof AssessmentOrderReceivedWebhookPayloadHiringTeamRole
@@ -110,7 +113,7 @@ export type AssessmentOrderReceivedWebhookPayloadHiringTeam = {
110
113
  /**
111
114
  * The team member's identifier in the integrated system.
112
115
  */
113
- remote_id: string;
116
+ remote_id: string | null;
114
117
  /**
115
118
  * The team member's email address.
116
119
  */
@@ -408,7 +411,7 @@ export const AssessmentOrderReceivedWebhookPayloadHiringTeam$inboundSchema:
408
411
  z.ZodTypeDef,
409
412
  unknown
410
413
  > = z.object({
411
- remote_id: z.string(),
414
+ remote_id: z.nullable(z.string()),
412
415
  email: z.nullable(z.string()),
413
416
  first_name: z.nullable(z.string()),
414
417
  last_name: z.nullable(z.string()),
@@ -418,7 +421,7 @@ export const AssessmentOrderReceivedWebhookPayloadHiringTeam$inboundSchema:
418
421
  });
419
422
  /** @internal */
420
423
  export type AssessmentOrderReceivedWebhookPayloadHiringTeam$Outbound = {
421
- remote_id: string;
424
+ remote_id: string | null;
422
425
  email: string | null;
423
426
  first_name: string | null;
424
427
  last_name: string | null;
@@ -432,7 +435,7 @@ export const AssessmentOrderReceivedWebhookPayloadHiringTeam$outboundSchema:
432
435
  z.ZodTypeDef,
433
436
  AssessmentOrderReceivedWebhookPayloadHiringTeam
434
437
  > = z.object({
435
- remote_id: z.string(),
438
+ remote_id: z.nullable(z.string()),
436
439
  email: z.nullable(z.string()),
437
440
  first_name: z.nullable(z.string()),
438
441
  last_name: z.nullable(z.string()),
@@ -53,6 +53,7 @@ export const Name = {
53
53
  HrisEmployeeDocumentCategories: "hris_employee_document_categories",
54
54
  HrisPerformanceReviews: "hris_performance_reviews",
55
55
  HrisPerformanceReviewCycles: "hris_performance_review_cycles",
56
+ HrisStaffingEntities: "hris_staffing_entities",
56
57
  AtsUsers: "ats_users",
57
58
  AtsJobs: "ats_jobs",
58
59
  AtsJobPostings: "ats_job_postings",
@@ -64,6 +65,7 @@ export const Name = {
64
65
  AtsInterviews: "ats_interviews",
65
66
  AtsOffers: "ats_offers",
66
67
  AtsRejectionReasons: "ats_rejection_reasons",
68
+ AtsRoles: "ats_roles",
67
69
  LmsUsers: "lms_users",
68
70
  LmsCourseProviders: "lms_course_providers",
69
71
  LmsSkills: "lms_skills",
@@ -71,10 +73,16 @@ export const Name = {
71
73
  LmsCourseRevisions: "lms_course_revisions",
72
74
  LmsCourseProgressions: "lms_course_progressions",
73
75
  HrisJoinEmployeesTeams: "hris_join_employees_teams",
76
+ HrisJoinStaffingEntitiesLocations: "hris_join_staffing_entities_locations",
77
+ HrisJoinStaffingEntitiesLegalEntities:
78
+ "hris_join_staffing_entities_legal_entities",
79
+ HrisJoinStaffingEntitiesGroups: "hris_join_staffing_entities_groups",
74
80
  AtsJoinCandidatesTags: "ats_join_candidates_tags",
75
81
  AtsJoinJobsApplicationStages: "ats_join_jobs_application_stages",
76
82
  AtsJoinJobsScreeningQuestions: "ats_join_jobs_screening_questions",
83
+ AtsJoinUserJobRoleAssignments: "ats_join_user_job_role_assignments",
77
84
  AtsJoinJobsUsers: "ats_join_jobs_users",
85
+ AtsJoinUsersRoles: "ats_join_users_roles",
78
86
  AtsJoinInterviewsUsers: "ats_join_interviews_users",
79
87
  LmsJoinRevisionsSkills: "lms_join_revisions_skills",
80
88
  } as const;
@@ -69,6 +69,9 @@ export type GetAssessmentOrdersOpenPositiveResponseLocation = {
69
69
  export const GetAssessmentOrdersOpenPositiveResponseHiringTeamRole = {
70
70
  Recruiter: "RECRUITER",
71
71
  HiringManager: "HIRING_MANAGER",
72
+ Coordinator: "COORDINATOR",
73
+ Sourcer: "SOURCER",
74
+ Interviewer: "INTERVIEWER",
72
75
  } as const;
73
76
  export type GetAssessmentOrdersOpenPositiveResponseHiringTeamRole = ClosedEnum<
74
77
  typeof GetAssessmentOrdersOpenPositiveResponseHiringTeamRole
@@ -81,7 +84,7 @@ export type GetAssessmentOrdersOpenPositiveResponseHiringTeam = {
81
84
  /**
82
85
  * The team member's identifier in the integrated system.
83
86
  */
84
- remote_id: string;
87
+ remote_id: string | null;
85
88
  /**
86
89
  * The team member's email address.
87
90
  */
@@ -258,7 +261,7 @@ export const GetAssessmentOrdersOpenPositiveResponseHiringTeam$inboundSchema:
258
261
  z.ZodTypeDef,
259
262
  unknown
260
263
  > = z.object({
261
- remote_id: z.string(),
264
+ remote_id: z.nullable(z.string()),
262
265
  email: z.nullable(z.string()),
263
266
  first_name: z.nullable(z.string()),
264
267
  last_name: z.nullable(z.string()),
@@ -335,11 +335,65 @@ export type JobPosting = {
335
335
  export const GetAtsJobsPositiveResponseHiringTeamRole = {
336
336
  Recruiter: "RECRUITER",
337
337
  HiringManager: "HIRING_MANAGER",
338
+ Coordinator: "COORDINATOR",
339
+ Sourcer: "SOURCER",
340
+ Interviewer: "INTERVIEWER",
338
341
  } as const;
339
342
  export type GetAtsJobsPositiveResponseHiringTeamRole = ClosedEnum<
340
343
  typeof GetAtsJobsPositiveResponseHiringTeamRole
341
344
  >;
342
345
 
346
+ /**
347
+ * Whether the role applies globally or is scoped to a specific job.
348
+ */
349
+ export const GetAtsJobsPositiveResponseScope = {
350
+ System: "SYSTEM",
351
+ Job: "JOB",
352
+ } as const;
353
+ /**
354
+ * Whether the role applies globally or is scoped to a specific job.
355
+ */
356
+ export type GetAtsJobsPositiveResponseScope = ClosedEnum<
357
+ typeof GetAtsJobsPositiveResponseScope
358
+ >;
359
+
360
+ /**
361
+ * Unified role type if Kombo can map it.
362
+ */
363
+ export const GetAtsJobsPositiveResponseUnifiedType = {
364
+ HiringManager: "HIRING_MANAGER",
365
+ Recruiter: "RECRUITER",
366
+ Coordinator: "COORDINATOR",
367
+ Sourcer: "SOURCER",
368
+ Interviewer: "INTERVIEWER",
369
+ Admin: "ADMIN",
370
+ } as const;
371
+ /**
372
+ * Unified role type if Kombo can map it.
373
+ */
374
+ export type GetAtsJobsPositiveResponseUnifiedType = ClosedEnum<
375
+ typeof GetAtsJobsPositiveResponseUnifiedType
376
+ >;
377
+
378
+ export type JobRole = {
379
+ /**
380
+ * The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
381
+ */
382
+ remote_id: string | null;
383
+ /**
384
+ * The label of the role.
385
+ */
386
+ remote_label: string | null;
387
+ /**
388
+ * Whether the role applies globally or is scoped to a specific job.
389
+ */
390
+ scope: GetAtsJobsPositiveResponseScope | null;
391
+ /**
392
+ * Unified role type if Kombo can map it.
393
+ */
394
+ unified_type: GetAtsJobsPositiveResponseUnifiedType | null;
395
+ };
396
+
343
397
  export type GetAtsJobsPositiveResponseHiringTeam = {
344
398
  /**
345
399
  * The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
@@ -362,9 +416,21 @@ export type GetAtsJobsPositiveResponseHiringTeam = {
362
416
  */
363
417
  email?: string | null | undefined;
364
418
  /**
365
- * Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
419
+ * **(⚠️ Deprecated - Use `job_roles` to access the full list of job roles.)** Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
420
+ *
421
+ * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
366
422
  */
367
423
  hiring_team_roles: Array<GetAtsJobsPositiveResponseHiringTeamRole>;
424
+ /**
425
+ * Roles assigned to this user for this job.
426
+ *
427
+ * @remarks
428
+ *
429
+ * Visit our in-depth guide about [roles](/ats/features/roles) to learn more.
430
+ *
431
+ * Use `system_roles` on the `/v1/ats/users` endpoint for system-wide roles.
432
+ */
433
+ job_roles: Array<JobRole>;
368
434
  };
369
435
 
370
436
  export type GetAtsJobsPositiveResponseResult = {
@@ -976,6 +1042,38 @@ export const GetAtsJobsPositiveResponseHiringTeamRole$inboundSchema:
976
1042
  z.ZodNativeEnum<typeof GetAtsJobsPositiveResponseHiringTeamRole> = z
977
1043
  .nativeEnum(GetAtsJobsPositiveResponseHiringTeamRole);
978
1044
 
1045
+ /** @internal */
1046
+ export const GetAtsJobsPositiveResponseScope$inboundSchema: z.ZodNativeEnum<
1047
+ typeof GetAtsJobsPositiveResponseScope
1048
+ > = z.nativeEnum(GetAtsJobsPositiveResponseScope);
1049
+
1050
+ /** @internal */
1051
+ export const GetAtsJobsPositiveResponseUnifiedType$inboundSchema:
1052
+ z.ZodNativeEnum<typeof GetAtsJobsPositiveResponseUnifiedType> = z.nativeEnum(
1053
+ GetAtsJobsPositiveResponseUnifiedType,
1054
+ );
1055
+
1056
+ /** @internal */
1057
+ export const JobRole$inboundSchema: z.ZodType<JobRole, z.ZodTypeDef, unknown> =
1058
+ z.object({
1059
+ remote_id: z.nullable(z.string()),
1060
+ remote_label: z.nullable(z.string()),
1061
+ scope: z.nullable(GetAtsJobsPositiveResponseScope$inboundSchema),
1062
+ unified_type: z.nullable(
1063
+ GetAtsJobsPositiveResponseUnifiedType$inboundSchema,
1064
+ ),
1065
+ });
1066
+
1067
+ export function jobRoleFromJSON(
1068
+ jsonString: string,
1069
+ ): SafeParseResult<JobRole, SDKValidationError> {
1070
+ return safeParse(
1071
+ jsonString,
1072
+ (x) => JobRole$inboundSchema.parse(JSON.parse(x)),
1073
+ `Failed to parse 'JobRole' from JSON`,
1074
+ );
1075
+ }
1076
+
979
1077
  /** @internal */
980
1078
  export const GetAtsJobsPositiveResponseHiringTeam$inboundSchema: z.ZodType<
981
1079
  GetAtsJobsPositiveResponseHiringTeam,
@@ -990,6 +1088,7 @@ export const GetAtsJobsPositiveResponseHiringTeam$inboundSchema: z.ZodType<
990
1088
  hiring_team_roles: z.array(
991
1089
  GetAtsJobsPositiveResponseHiringTeamRole$inboundSchema,
992
1090
  ),
1091
+ job_roles: z.array(z.lazy(() => JobRole$inboundSchema)),
993
1092
  });
994
1093
 
995
1094
  export function getAtsJobsPositiveResponseHiringTeamFromJSON(