kombo 1.2.8 → 1.2.10

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 (213) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/ats.rb +326 -0
  3. data/lib/kombo/connect.rb +2 -1
  4. data/lib/kombo/general.rb +26 -6
  5. data/lib/kombo/hris.rb +322 -2
  6. data/lib/kombo/models/operations/getatsattachments_request.rb +74 -0
  7. data/lib/kombo/models/operations/getatsattachments_request.rbi +31 -0
  8. data/lib/kombo/models/operations/getatsattachments_response.rb +56 -0
  9. data/lib/kombo/models/operations/getatsattachments_response.rbi +19 -0
  10. data/lib/kombo/models/operations/getatsscorecards_request.rb +83 -0
  11. data/lib/kombo/models/operations/getatsscorecards_request.rbi +31 -0
  12. data/lib/kombo/models/operations/getatsscorecards_response.rb +56 -0
  13. data/lib/kombo/models/operations/getatsscorecards_response.rbi +19 -0
  14. data/lib/kombo/models/operations/gethrispayruns_request.rb +70 -0
  15. data/lib/kombo/models/operations/gethrispayruns_request.rbi +29 -0
  16. data/lib/kombo/models/operations/gethrispayruns_response.rb +56 -0
  17. data/lib/kombo/models/operations/gethrispayruns_response.rbi +19 -0
  18. data/lib/kombo/models/operations/gethrispayslips_request.rb +87 -0
  19. data/lib/kombo/models/operations/gethrispayslips_request.rbi +33 -0
  20. data/lib/kombo/models/operations/gethrispayslips_response.rb +56 -0
  21. data/lib/kombo/models/operations/gethrispayslips_response.rbi +19 -0
  22. data/lib/kombo/models/operations.rb +8 -0
  23. data/lib/kombo/models/shared/amount.rb +36 -0
  24. data/lib/kombo/models/shared/amount.rbi +15 -0
  25. data/lib/kombo/models/shared/amount_ytd.rb +36 -0
  26. data/lib/kombo/models/shared/amount_ytd.rbi +15 -0
  27. data/lib/kombo/models/shared/change.rb +19 -0
  28. data/lib/kombo/models/shared/change.rbi +11 -0
  29. data/lib/kombo/models/shared/content_ref.rb +43 -0
  30. data/lib/kombo/models/shared/content_ref.rbi +17 -0
  31. data/lib/kombo/models/shared/domestic_bank_routing.rb +1 -1
  32. data/lib/kombo/models/shared/domestic_bank_routing_type.rb +1 -0
  33. data/lib/kombo/models/shared/employee.rb +57 -0
  34. data/lib/kombo/models/shared/employee.rbi +25 -0
  35. data/lib/kombo/models/shared/format_multiselect.rb +2 -2
  36. data/lib/kombo/models/shared/format_singleselect.rb +2 -2
  37. data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rb +39 -0
  38. data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rbi +15 -0
  39. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rb +36 -0
  40. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rbi +15 -0
  41. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rb +76 -0
  42. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rbi +33 -0
  43. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rb +20 -0
  44. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rbi +11 -0
  45. data/lib/kombo/models/shared/{option_1.rb → getatsjobspositiveresponse_option_1.rb} +1 -1
  46. data/lib/kombo/models/shared/{option_1.rbi → getatsjobspositiveresponse_option_1.rbi} +2 -2
  47. data/lib/kombo/models/shared/{option_2.rb → getatsjobspositiveresponse_option_2.rb} +1 -1
  48. data/lib/kombo/models/shared/{option_2.rbi → getatsjobspositiveresponse_option_2.rbi} +2 -2
  49. data/lib/kombo/models/shared/{author.rb → getatsnotespositiveresponse_author.rb} +1 -1
  50. data/lib/kombo/models/shared/{author.rbi → getatsnotespositiveresponse_author.rbi} +2 -2
  51. data/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb +2 -2
  52. data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb +39 -0
  53. data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi +15 -0
  54. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb +36 -0
  55. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi +15 -0
  56. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb +36 -0
  57. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi +15 -0
  58. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb +48 -0
  59. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi +21 -0
  60. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb +36 -0
  61. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi +15 -0
  62. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb +36 -0
  63. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi +15 -0
  64. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb +36 -0
  65. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi +15 -0
  66. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb +80 -0
  67. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi +35 -0
  68. data/lib/kombo/models/shared/gethrisgroupspositiveresponse_result.rb +6 -2
  69. data/lib/kombo/models/shared/gethrisgroupspositiveresponse_result.rbi +2 -0
  70. data/lib/kombo/models/shared/gethrislegalentitiespositiveresponse_result.rb +6 -2
  71. data/lib/kombo/models/shared/gethrislegalentitiespositiveresponse_result.rbi +2 -0
  72. data/lib/kombo/models/shared/gethrislocationspositiveresponse_result.rb +6 -2
  73. data/lib/kombo/models/shared/gethrislocationspositiveresponse_result.rbi +2 -0
  74. data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb +39 -0
  75. data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi +15 -0
  76. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb +36 -0
  77. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi +15 -0
  78. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb +36 -0
  79. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi +15 -0
  80. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb +36 -0
  81. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi +15 -0
  82. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb +36 -0
  83. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi +15 -0
  84. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb +62 -0
  85. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi +27 -0
  86. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb +40 -0
  87. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi +17 -0
  88. data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb +39 -0
  89. data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi +15 -0
  90. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb +36 -0
  91. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi +15 -0
  92. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb +36 -0
  93. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi +15 -0
  94. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb +36 -0
  95. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi +15 -0
  96. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb +36 -0
  97. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi +15 -0
  98. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb +66 -0
  99. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi +29 -0
  100. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb +52 -0
  101. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi +23 -0
  102. data/lib/kombo/models/shared/gross_pay_ytd.rb +36 -0
  103. data/lib/kombo/models/shared/gross_pay_ytd.rbi +15 -0
  104. data/lib/kombo/models/shared/integration.rb +44 -0
  105. data/lib/kombo/models/shared/integration.rbi +19 -0
  106. data/lib/kombo/models/shared/integration_tool.rb +9 -1
  107. data/lib/kombo/models/shared/issue.rb +56 -0
  108. data/lib/kombo/models/shared/issue.rbi +25 -0
  109. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb +40 -0
  110. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi +17 -0
  111. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb +21 -0
  112. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi +11 -0
  113. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb +40 -0
  114. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi +17 -0
  115. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb +40 -0
  116. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi +17 -0
  117. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb +19 -0
  118. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi +11 -0
  119. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb +18 -0
  120. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi +11 -0
  121. data/lib/kombo/models/shared/line_item.rb +56 -0
  122. data/lib/kombo/models/shared/line_item.rbi +25 -0
  123. data/lib/kombo/models/shared/name.rb +6 -0
  124. data/lib/kombo/models/shared/net_pay_ytd.rb +36 -0
  125. data/lib/kombo/models/shared/net_pay_ytd.rbi +15 -0
  126. data/lib/kombo/models/shared/paid_amount_ytd.rb +36 -0
  127. data/lib/kombo/models/shared/paid_amount_ytd.rbi +15 -0
  128. data/lib/kombo/models/shared/pay_code.rb +36 -0
  129. data/lib/kombo/models/shared/pay_code.rbi +15 -0
  130. data/lib/kombo/models/shared/pay_run.rb +48 -0
  131. data/lib/kombo/models/shared/pay_run.rbi +21 -0
  132. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody.rb +6 -2
  133. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody.rbi +2 -0
  134. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_remote_fields.rb +6 -2
  135. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_remote_fields.rbi +2 -0
  136. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_traffit.rb +32 -0
  137. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_traffit.rbi +13 -0
  138. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_remote_fields.rb +6 -2
  139. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_remote_fields.rbi +2 -0
  140. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_traffit.rb +32 -0
  141. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_traffit.rbi +13 -0
  142. data/lib/kombo/models/shared/postatscandidatesrequestbody_afas.rb +32 -0
  143. data/lib/kombo/models/shared/{afas.rbi → postatscandidatesrequestbody_afas.rbi} +2 -2
  144. data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rb +6 -2
  145. data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rbi +2 -0
  146. data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rb +48 -0
  147. data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rbi +21 -0
  148. data/lib/kombo/models/shared/postatscandidatesrequestbody_emplypeople.rb +32 -0
  149. data/lib/kombo/models/shared/postatscandidatesrequestbody_emplypeople.rbi +13 -0
  150. data/lib/kombo/models/shared/postatscandidatesrequestbody_fountain.rb +44 -0
  151. data/lib/kombo/models/shared/postatscandidatesrequestbody_fountain.rbi +19 -0
  152. data/lib/kombo/models/shared/postatscandidatesrequestbody_icims.rb +32 -0
  153. data/lib/kombo/models/shared/postatscandidatesrequestbody_icims.rbi +13 -0
  154. data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rb +32 -0
  155. data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rbi +13 -0
  156. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +22 -2
  157. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +10 -0
  158. data/lib/kombo/models/shared/postatscandidatesrequestbody_talentsoft.rb +6 -2
  159. data/lib/kombo/models/shared/postatscandidatesrequestbody_talentsoft.rbi +2 -0
  160. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rb +32 -0
  161. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rbi +13 -0
  162. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rb +6 -2
  163. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rbi +2 -0
  164. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rb +48 -0
  165. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rbi +21 -0
  166. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_emplypeople.rb +32 -0
  167. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_emplypeople.rbi +13 -0
  168. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_fountain.rb +44 -0
  169. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_fountain.rbi +19 -0
  170. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_icims.rb +32 -0
  171. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_icims.rbi +13 -0
  172. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rb +32 -0
  173. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rbi +13 -0
  174. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +22 -2
  175. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +10 -0
  176. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_talentsoft.rb +6 -2
  177. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_talentsoft.rbi +2 -0
  178. data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rb +6 -2
  179. data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rbi +2 -0
  180. data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rb +6 -2
  181. data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rbi +2 -0
  182. data/lib/kombo/models/shared/{afas.rb → posthrisemployeesemployeeiddocumentsrequestbody_afas.rb} +1 -1
  183. data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_afas.rbi +13 -0
  184. data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_remote_fields.rb +2 -2
  185. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_lever.rb +32 -0
  186. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_lever.rbi +13 -0
  187. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rb +6 -2
  188. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rbi +2 -0
  189. data/lib/kombo/models/shared/response.rb +27 -0
  190. data/lib/kombo/models/shared/response.rbi +11 -0
  191. data/lib/kombo/models/shared/result_boolean.rb +55 -0
  192. data/lib/kombo/models/shared/result_boolean.rbi +23 -0
  193. data/lib/kombo/models/shared/result_date.rb +55 -0
  194. data/lib/kombo/models/shared/result_date.rbi +23 -0
  195. data/lib/kombo/models/shared/result_multiselect.rb +59 -0
  196. data/lib/kombo/models/shared/result_multiselect.rbi +25 -0
  197. data/lib/kombo/models/shared/result_number.rb +55 -0
  198. data/lib/kombo/models/shared/result_number.rbi +23 -0
  199. data/lib/kombo/models/shared/result_singleselect.rb +59 -0
  200. data/lib/kombo/models/shared/result_singleselect.rbi +25 -0
  201. data/lib/kombo/models/shared/result_text.rb +55 -0
  202. data/lib/kombo/models/shared/result_text.rbi +23 -0
  203. data/lib/kombo/models/shared/work_location.rb +6 -2
  204. data/lib/kombo/models/shared/work_location.rbi +2 -0
  205. data/lib/kombo/models/shared.rb +71 -4
  206. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb +36 -0
  207. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi +15 -0
  208. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb +40 -0
  209. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi +17 -0
  210. data/lib/kombo/models/webhooks.rb +2 -0
  211. data/lib/kombo/sdkconfiguration.rb +5 -3
  212. data/lib/kombo/utils/utils.rb +6 -2
  213. metadata +164 -10
data/lib/kombo/hris.rb CHANGED
@@ -2290,8 +2290,6 @@ module Kombo
2290
2290
  #
2291
2291
  # Retrieve attendance data and timesheets from HRIS tools.
2292
2292
  #
2293
- # <Warning>**Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.</Warning>
2294
- #
2295
2293
  # For a detailed explanation of the data model, validation rules, time zones, payable hours, approvals, and break patterns, see the [Time & Attendance guide](/hris/features/time-and-attendance).
2296
2294
  #
2297
2295
  # <Note>
@@ -2924,6 +2922,328 @@ module Kombo
2924
2922
  end
2925
2923
 
2926
2924
 
2925
+ return response
2926
+ else
2927
+ raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
2928
+ end
2929
+ else
2930
+ if Utils.match_content_type(content_type, 'application/json')
2931
+ http_response = @sdk_configuration.hooks.after_success(
2932
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
2933
+ hook_ctx: hook_ctx
2934
+ ),
2935
+ response: http_response
2936
+ )
2937
+ response_data = http_response.env.response_body
2938
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError)
2939
+ obj.raw_response = http_response
2940
+ raise obj
2941
+ else
2942
+ raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
2943
+ end
2944
+ end
2945
+ end
2946
+
2947
+
2948
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayRunsResponse) }
2949
+ def get_hris_pay_runs(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, timeout_ms: nil, http_headers: nil)
2950
+ # get_hris_pay_runs - Pay Runs
2951
+ # Retrieve all pay runs for all legal entities, across all time.
2952
+ #
2953
+ # A pay run represents one payroll cycle for a legal entity, covering a single pay period and grouping the payslips paid out through it. Use this endpoint to reconcile payroll periods and read the totals paid out across each run. Filter by `legal_entity_ids` to scope the results to specific legal entities.
2954
+ #
2955
+ # 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)`
2956
+ request = Models::Operations::GetHrisPayRunsRequest.new(
2957
+ integration_id: integration_id,
2958
+ cursor: cursor,
2959
+ page_size: page_size,
2960
+ updated_after: updated_after,
2961
+ include_deleted: include_deleted,
2962
+ ignore_unsupported_filters: ignore_unsupported_filters,
2963
+ ids: ids,
2964
+ remote_ids: remote_ids,
2965
+ legal_entity_ids: legal_entity_ids
2966
+ )
2967
+ url, params = @sdk_configuration.get_server_details
2968
+ base_url = Utils.template_url(url, params)
2969
+ url = "#{base_url}/hris/pay-runs"
2970
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
2971
+ headers = T.cast(headers, T::Hash[String, String])
2972
+ query_params = Utils.get_query_params(Models::Operations::GetHrisPayRunsRequest, request, nil, @sdk_configuration.globals)
2973
+ headers['Accept'] = 'application/json'
2974
+ headers['user-agent'] = @sdk_configuration.user_agent
2975
+
2976
+ security = @sdk_configuration.security_source&.call
2977
+
2978
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
2979
+ timeout ||= @sdk_configuration.timeout
2980
+
2981
+
2982
+ connection = @sdk_configuration.client
2983
+
2984
+ hook_ctx = SDKHooks::HookContext.new(
2985
+ config: @sdk_configuration,
2986
+ base_url: base_url,
2987
+ oauth2_scopes: nil,
2988
+ operation_id: 'GetHrisPayRuns',
2989
+ security_source: @sdk_configuration.security_source
2990
+ )
2991
+
2992
+ error = T.let(nil, T.nilable(StandardError))
2993
+ http_response = T.let(nil, T.nilable(Faraday::Response))
2994
+
2995
+
2996
+ begin
2997
+ http_response = T.must(connection).get(url) do |req|
2998
+ req.headers.merge!(headers)
2999
+ req.options.timeout = timeout unless timeout.nil?
3000
+ req.params = query_params
3001
+ Utils.configure_request_security(req, security)
3002
+ http_headers&.each do |key, value|
3003
+ req.headers[key.to_s] = value
3004
+ end
3005
+
3006
+ @sdk_configuration.hooks.before_request(
3007
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
3008
+ hook_ctx: hook_ctx
3009
+ ),
3010
+ request: req
3011
+ )
3012
+ end
3013
+ rescue StandardError => e
3014
+ error = e
3015
+ ensure
3016
+ if http_response.nil? || Utils.error_status?(http_response.status)
3017
+ http_response = @sdk_configuration.hooks.after_error(
3018
+ error: error,
3019
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
3020
+ hook_ctx: hook_ctx
3021
+ ),
3022
+ response: http_response
3023
+ )
3024
+ else
3025
+ http_response = @sdk_configuration.hooks.after_success(
3026
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
3027
+ hook_ctx: hook_ctx
3028
+ ),
3029
+ response: http_response
3030
+ )
3031
+ end
3032
+
3033
+ if http_response.nil?
3034
+ raise error if !error.nil?
3035
+ raise 'no response'
3036
+ end
3037
+ end
3038
+
3039
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
3040
+ if Utils.match_status_code(http_response.status, ['200'])
3041
+ if Utils.match_content_type(content_type, 'application/json')
3042
+ http_response = @sdk_configuration.hooks.after_success(
3043
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
3044
+ hook_ctx: hook_ctx
3045
+ ),
3046
+ response: http_response
3047
+ )
3048
+ response_data = http_response.env.response_body
3049
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayRunsPositiveResponse)
3050
+ response = Models::Operations::GetHrisPayRunsResponse.new(
3051
+ status_code: http_response.status,
3052
+ content_type: content_type,
3053
+ raw_response: http_response,
3054
+ get_hris_pay_runs_positive_response: T.unsafe(obj)
3055
+ )
3056
+ sdk = self
3057
+
3058
+ response.next_page = proc do
3059
+ next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
3060
+ if next_cursor.nil?
3061
+ next nil
3062
+ else
3063
+ next_cursor = next_cursor[0]
3064
+ if next_cursor.nil?
3065
+ next nil
3066
+ end
3067
+ end
3068
+
3069
+ sdk.get_hris_pay_runs(
3070
+ integration_id: request.integration_id,
3071
+ cursor: next_cursor,
3072
+ page_size: request.page_size,
3073
+ updated_after: request.updated_after,
3074
+ include_deleted: request.include_deleted,
3075
+ ignore_unsupported_filters: request.ignore_unsupported_filters,
3076
+ ids: request.ids,
3077
+ remote_ids: request.remote_ids,
3078
+ legal_entity_ids: request.legal_entity_ids,
3079
+ http_headers: http_headers
3080
+ )
3081
+ end
3082
+
3083
+
3084
+ return response
3085
+ else
3086
+ raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
3087
+ end
3088
+ else
3089
+ if Utils.match_content_type(content_type, 'application/json')
3090
+ http_response = @sdk_configuration.hooks.after_success(
3091
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
3092
+ hook_ctx: hook_ctx
3093
+ ),
3094
+ response: http_response
3095
+ )
3096
+ response_data = http_response.env.response_body
3097
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError)
3098
+ obj.raw_response = http_response
3099
+ raise obj
3100
+ else
3101
+ raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
3102
+ end
3103
+ end
3104
+ end
3105
+
3106
+
3107
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), employee_ids: T.nilable(T::Array[::String]), payrun_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayslipsResponse) }
3108
+ def get_hris_payslips(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, employee_ids: nil, payrun_ids: nil, timeout_ms: nil, http_headers: nil)
3109
+ # get_hris_payslips - Payslips
3110
+ # Retrieve all payslips for all employees, across all time.
3111
+ #
3112
+ # A payslip is the individual pay statement an employee receives for one pay run, detailing what they were paid. Each payslip embeds the `employee` it belongs to and the `pay_run` it was paid out through, its `totals`, and the `line_items` that make it up (earnings, deductions, and contributions). Filter by `employee_ids`, `payrun_ids`, or `legal_entity_ids` to narrow the results.
3113
+ #
3114
+ # 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)`
3115
+ request = Models::Operations::GetHrisPayslipsRequest.new(
3116
+ integration_id: integration_id,
3117
+ cursor: cursor,
3118
+ page_size: page_size,
3119
+ updated_after: updated_after,
3120
+ include_deleted: include_deleted,
3121
+ ignore_unsupported_filters: ignore_unsupported_filters,
3122
+ ids: ids,
3123
+ remote_ids: remote_ids,
3124
+ legal_entity_ids: legal_entity_ids,
3125
+ employee_ids: employee_ids,
3126
+ payrun_ids: payrun_ids
3127
+ )
3128
+ url, params = @sdk_configuration.get_server_details
3129
+ base_url = Utils.template_url(url, params)
3130
+ url = "#{base_url}/hris/payslips"
3131
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
3132
+ headers = T.cast(headers, T::Hash[String, String])
3133
+ query_params = Utils.get_query_params(Models::Operations::GetHrisPayslipsRequest, request, nil, @sdk_configuration.globals)
3134
+ headers['Accept'] = 'application/json'
3135
+ headers['user-agent'] = @sdk_configuration.user_agent
3136
+
3137
+ security = @sdk_configuration.security_source&.call
3138
+
3139
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
3140
+ timeout ||= @sdk_configuration.timeout
3141
+
3142
+
3143
+ connection = @sdk_configuration.client
3144
+
3145
+ hook_ctx = SDKHooks::HookContext.new(
3146
+ config: @sdk_configuration,
3147
+ base_url: base_url,
3148
+ oauth2_scopes: nil,
3149
+ operation_id: 'GetHrisPayslips',
3150
+ security_source: @sdk_configuration.security_source
3151
+ )
3152
+
3153
+ error = T.let(nil, T.nilable(StandardError))
3154
+ http_response = T.let(nil, T.nilable(Faraday::Response))
3155
+
3156
+
3157
+ begin
3158
+ http_response = T.must(connection).get(url) do |req|
3159
+ req.headers.merge!(headers)
3160
+ req.options.timeout = timeout unless timeout.nil?
3161
+ req.params = query_params
3162
+ Utils.configure_request_security(req, security)
3163
+ http_headers&.each do |key, value|
3164
+ req.headers[key.to_s] = value
3165
+ end
3166
+
3167
+ @sdk_configuration.hooks.before_request(
3168
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
3169
+ hook_ctx: hook_ctx
3170
+ ),
3171
+ request: req
3172
+ )
3173
+ end
3174
+ rescue StandardError => e
3175
+ error = e
3176
+ ensure
3177
+ if http_response.nil? || Utils.error_status?(http_response.status)
3178
+ http_response = @sdk_configuration.hooks.after_error(
3179
+ error: error,
3180
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
3181
+ hook_ctx: hook_ctx
3182
+ ),
3183
+ response: http_response
3184
+ )
3185
+ else
3186
+ http_response = @sdk_configuration.hooks.after_success(
3187
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
3188
+ hook_ctx: hook_ctx
3189
+ ),
3190
+ response: http_response
3191
+ )
3192
+ end
3193
+
3194
+ if http_response.nil?
3195
+ raise error if !error.nil?
3196
+ raise 'no response'
3197
+ end
3198
+ end
3199
+
3200
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
3201
+ if Utils.match_status_code(http_response.status, ['200'])
3202
+ if Utils.match_content_type(content_type, 'application/json')
3203
+ http_response = @sdk_configuration.hooks.after_success(
3204
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
3205
+ hook_ctx: hook_ctx
3206
+ ),
3207
+ response: http_response
3208
+ )
3209
+ response_data = http_response.env.response_body
3210
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayslipsPositiveResponse)
3211
+ response = Models::Operations::GetHrisPayslipsResponse.new(
3212
+ status_code: http_response.status,
3213
+ content_type: content_type,
3214
+ raw_response: http_response,
3215
+ get_hris_payslips_positive_response: T.unsafe(obj)
3216
+ )
3217
+ sdk = self
3218
+
3219
+ response.next_page = proc do
3220
+ next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
3221
+ if next_cursor.nil?
3222
+ next nil
3223
+ else
3224
+ next_cursor = next_cursor[0]
3225
+ if next_cursor.nil?
3226
+ next nil
3227
+ end
3228
+ end
3229
+
3230
+ sdk.get_hris_payslips(
3231
+ integration_id: request.integration_id,
3232
+ cursor: next_cursor,
3233
+ page_size: request.page_size,
3234
+ updated_after: request.updated_after,
3235
+ include_deleted: request.include_deleted,
3236
+ ignore_unsupported_filters: request.ignore_unsupported_filters,
3237
+ ids: request.ids,
3238
+ remote_ids: request.remote_ids,
3239
+ legal_entity_ids: request.legal_entity_ids,
3240
+ employee_ids: request.employee_ids,
3241
+ payrun_ids: request.payrun_ids,
3242
+ http_headers: http_headers
3243
+ )
3244
+ end
3245
+
3246
+
2927
3247
  return response
2928
3248
  else
2929
3249
  raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
@@ -0,0 +1,74 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Operations
10
+
11
+ class GetAtsAttachmentsRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the integration you want to interact with.
16
+ field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } }
17
+ # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
18
+ field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } }
19
+ # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
20
+ #
21
+ # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
22
+ #
23
+ # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
24
+ #
25
+ # For this endpoint, only changes to the returned record itself are considered.
26
+ field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
27
+ # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
28
+ field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
29
+ # Filter by a comma-separated list of remote IDs.
30
+ field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } }
31
+ # Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want every file a candidate has, across all their applications.
32
+ field :candidate_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'candidate_ids', 'style': 'form', 'explode': false } }
33
+ # Filter by a comma-separated list of application IDs. We will only return attachments that the ATS filed under _any_ of these applications, which excludes the files that hang off the candidate directly.
34
+ field :application_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'application_ids', 'style': 'form', 'explode': false } }
35
+ # The number of results to return per page. Maximum is 250.
36
+ field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } }
37
+ # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
38
+ field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } }
39
+ # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
40
+ field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } }
41
+
42
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void }
43
+ def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
44
+ @integration_id = integration_id
45
+ @cursor = cursor
46
+ @updated_after = updated_after
47
+ @ids = ids
48
+ @remote_ids = remote_ids
49
+ @candidate_ids = candidate_ids
50
+ @application_ids = application_ids
51
+ @page_size = page_size
52
+ @include_deleted = include_deleted
53
+ @ignore_unsupported_filters = ignore_unsupported_filters
54
+ end
55
+
56
+ sig { params(other: T.untyped).returns(T::Boolean) }
57
+ def ==(other)
58
+ return false unless other.is_a? self.class
59
+ return false unless @integration_id == other.integration_id
60
+ return false unless @cursor == other.cursor
61
+ return false unless @updated_after == other.updated_after
62
+ return false unless @ids == other.ids
63
+ return false unless @remote_ids == other.remote_ids
64
+ return false unless @candidate_ids == other.candidate_ids
65
+ return false unless @application_ids == other.application_ids
66
+ return false unless @page_size == other.page_size
67
+ return false unless @include_deleted == other.include_deleted
68
+ return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters
69
+ true
70
+ end
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Operations::GetAtsAttachmentsRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Operations::GetAtsAttachmentsRequest
11
+ def integration_id(); end
12
+ def integration_id=(str_); end
13
+ def cursor(); end
14
+ def cursor=(str_); end
15
+ def updated_after(); end
16
+ def updated_after=(str_); end
17
+ def ids(); end
18
+ def ids=(str_); end
19
+ def remote_ids(); end
20
+ def remote_ids=(str_); end
21
+ def candidate_ids(); end
22
+ def candidate_ids=(str_); end
23
+ def application_ids(); end
24
+ def application_ids=(str_); end
25
+ def page_size(); end
26
+ def page_size=(str_); end
27
+ def include_deleted(); end
28
+ def include_deleted=(str_); end
29
+ def ignore_unsupported_filters(); end
30
+ def ignore_unsupported_filters=(str_); end
31
+ end
@@ -0,0 +1,56 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Operations
10
+
11
+ class GetAtsAttachmentsResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+ sig { returns(T.proc.returns(T.nilable(GetAtsAttachmentsResponse))) }
15
+ attr_accessor :next_page
16
+
17
+ # HTTP response content type for this operation
18
+ field :content_type, ::String
19
+ # HTTP response status code for this operation
20
+ field :status_code, ::Integer
21
+ # Raw HTTP response; suitable for custom response parsing
22
+ field :raw_response, ::Faraday::Response
23
+ # GET /ats/attachments Positive response
24
+ field :get_ats_attachments_positive_response, Crystalline::Nilable.new(Models::Shared::GetAtsAttachmentsPositiveResponse)
25
+
26
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_ats_attachments_positive_response: T.nilable(Models::Shared::GetAtsAttachmentsPositiveResponse)).void }
27
+ def initialize(content_type:, status_code:, raw_response:, get_ats_attachments_positive_response: nil)
28
+ @content_type = content_type
29
+ @status_code = status_code
30
+ @raw_response = raw_response
31
+ @get_ats_attachments_positive_response = get_ats_attachments_positive_response
32
+ end
33
+
34
+ sig { params(other: T.untyped).returns(T::Boolean) }
35
+ def ==(other)
36
+ return false unless other.is_a? self.class
37
+ return false unless @content_type == other.content_type
38
+ return false unless @status_code == other.status_code
39
+ return false unless @raw_response == other.raw_response
40
+ return false unless @get_ats_attachments_positive_response == other.get_ats_attachments_positive_response
41
+ true
42
+ end
43
+
44
+ def each
45
+ page = self
46
+ loop do
47
+ yield page
48
+ next_page = page.next_page.call if page.next_page
49
+ break if next_page.nil?
50
+ page = T.must(next_page)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Operations::GetAtsAttachmentsResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Operations::GetAtsAttachmentsResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def get_ats_attachments_positive_response(); end
18
+ def get_ats_attachments_positive_response=(str_); end
19
+ end
@@ -0,0 +1,83 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Operations
10
+
11
+ class GetAtsScorecardsRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the integration you want to interact with.
16
+ field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } }
17
+ # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
18
+ field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } }
19
+ # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
20
+ #
21
+ # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
22
+ #
23
+ # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
24
+ #
25
+ # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
+ #
27
+ # | Path | Added/Removed | Linked Record |
28
+ # | --- | --- | --- |
29
+ # | `author` | ✗ No | ✗ No |
30
+ # | `application` | ✗ No | ✗ No |
31
+ # | `candidate` | ✗ No | ✗ No |
32
+ # | `interview` | ✗ No | ✗ No |
33
+ #
34
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
35
+ field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
36
+ # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
37
+ field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
38
+ # Filter by a comma-separated list of remote IDs.
39
+ field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } }
40
+ # Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want to download the full interview feedback available for a candidate, across all their applications.
41
+ field :candidate_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'candidate_ids', 'style': 'form', 'explode': false } }
42
+ # Filter by a comma-separated list of application IDs. We will only return scorecards that belong to _any_ of these applications.
43
+ field :application_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'application_ids', 'style': 'form', 'explode': false } }
44
+ # The number of results to return per page. Maximum is 250.
45
+ field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } }
46
+ # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
47
+ field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } }
48
+ # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
49
+ field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } }
50
+
51
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void }
52
+ def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
53
+ @integration_id = integration_id
54
+ @cursor = cursor
55
+ @updated_after = updated_after
56
+ @ids = ids
57
+ @remote_ids = remote_ids
58
+ @candidate_ids = candidate_ids
59
+ @application_ids = application_ids
60
+ @page_size = page_size
61
+ @include_deleted = include_deleted
62
+ @ignore_unsupported_filters = ignore_unsupported_filters
63
+ end
64
+
65
+ sig { params(other: T.untyped).returns(T::Boolean) }
66
+ def ==(other)
67
+ return false unless other.is_a? self.class
68
+ return false unless @integration_id == other.integration_id
69
+ return false unless @cursor == other.cursor
70
+ return false unless @updated_after == other.updated_after
71
+ return false unless @ids == other.ids
72
+ return false unless @remote_ids == other.remote_ids
73
+ return false unless @candidate_ids == other.candidate_ids
74
+ return false unless @application_ids == other.application_ids
75
+ return false unless @page_size == other.page_size
76
+ return false unless @include_deleted == other.include_deleted
77
+ return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters
78
+ true
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,31 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Operations::GetAtsScorecardsRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Operations::GetAtsScorecardsRequest
11
+ def integration_id(); end
12
+ def integration_id=(str_); end
13
+ def cursor(); end
14
+ def cursor=(str_); end
15
+ def updated_after(); end
16
+ def updated_after=(str_); end
17
+ def ids(); end
18
+ def ids=(str_); end
19
+ def remote_ids(); end
20
+ def remote_ids=(str_); end
21
+ def candidate_ids(); end
22
+ def candidate_ids=(str_); end
23
+ def application_ids(); end
24
+ def application_ids=(str_); end
25
+ def page_size(); end
26
+ def page_size=(str_); end
27
+ def include_deleted(); end
28
+ def include_deleted=(str_); end
29
+ def ignore_unsupported_filters(); end
30
+ def ignore_unsupported_filters=(str_); end
31
+ end