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
@@ -0,0 +1,48 @@
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 Shared
10
+
11
+ class PostAtsCandidatesRequestBodyCustomField
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the Recruit CRM candidate custom field (`GET /v1/custom-fields/candidates`).
16
+ field :field_id, ::Integer, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_id'), required: true } }
17
+ # Value to write. Dropdown and multiselect values must match a configured option. File fields take a direct download URL.
18
+ field :value, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+ # Entity the custom field belongs to, usually `candidate`.
20
+ field :entity_type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('entity_type') } }
21
+ # Custom field name.
22
+ field :field_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_name') } }
23
+ # Custom field type, for example `text`.
24
+ field :field_type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_type') } }
25
+
26
+ sig { params(field_id: ::Integer, value: ::String, entity_type: T.nilable(::String), field_name: T.nilable(::String), field_type: T.nilable(::String)).void }
27
+ def initialize(field_id:, value:, entity_type: nil, field_name: nil, field_type: nil)
28
+ @field_id = field_id
29
+ @value = value
30
+ @entity_type = entity_type
31
+ @field_name = field_name
32
+ @field_type = field_type
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @field_id == other.field_id
39
+ return false unless @value == other.value
40
+ return false unless @entity_type == other.entity_type
41
+ return false unless @field_name == other.field_name
42
+ return false unless @field_type == other.field_type
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyCustomField
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyCustomField
11
+ def field_id(); end
12
+ def field_id=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ def entity_type(); end
16
+ def entity_type=(str_); end
17
+ def field_name(); end
18
+ def field_name=(str_); end
19
+ def field_type(); end
20
+ def field_type=(str_); end
21
+ end
@@ -0,0 +1,32 @@
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 Shared
10
+ # Fields specific to Emply People.
11
+ class PostAtsCandidatesRequestBodyEmplypeople
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Form data written to the application right after it is created, keyed by Emply People form ID. Each value is sent as-is as the `formData` of `PUT /v2/applications/{id}/form-data/{formId}`. Use it for questions that are not on the job's application form.
16
+ field :form_data, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('form_data') } }
17
+
18
+ sig { params(form_data: T.nilable(T::Hash[Symbol, ::Object])).void }
19
+ def initialize(form_data: nil)
20
+ @form_data = form_data
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @form_data == other.form_data
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyEmplypeople
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyEmplypeople
11
+ def form_data(); end
12
+ def form_data=(str_); end
13
+ end
@@ -0,0 +1,44 @@
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 Shared
10
+ # Consent fields passed through to Fountain when creating an applicant. See https://developer.fountain.com/reference/post_v2-applicants.
11
+ class PostAtsCandidatesRequestBodyFountain
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the applicant consented to transactional SMS about their current application. Fountain requires this on create from November 17, 2026.
16
+ field :consent_sms_transactional, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_sms_transactional') } }
17
+ # Whether the applicant consented to marketing SMS about future job opportunities. Fountain requires this on create from November 17, 2026. This is separate from transactional SMS consent.
18
+ field :consent_sms_marketing, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_sms_marketing') } }
19
+ # Whether the applicant consented to transactional calls about their current application. Fountain requires this on create from November 17, 2026.
20
+ field :consent_calls_transactional, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_calls_transactional') } }
21
+ # Whether the applicant consented to marketing calls about future job opportunities. Fountain requires this on create from November 17, 2026. This is separate from transactional call consent.
22
+ field :consent_calls_marketing, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_calls_marketing') } }
23
+
24
+ sig { params(consent_sms_transactional: T.nilable(T::Boolean), consent_sms_marketing: T.nilable(T::Boolean), consent_calls_transactional: T.nilable(T::Boolean), consent_calls_marketing: T.nilable(T::Boolean)).void }
25
+ def initialize(consent_sms_transactional: nil, consent_sms_marketing: nil, consent_calls_transactional: nil, consent_calls_marketing: nil)
26
+ @consent_sms_transactional = consent_sms_transactional
27
+ @consent_sms_marketing = consent_sms_marketing
28
+ @consent_calls_transactional = consent_calls_transactional
29
+ @consent_calls_marketing = consent_calls_marketing
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @consent_sms_transactional == other.consent_sms_transactional
36
+ return false unless @consent_sms_marketing == other.consent_sms_marketing
37
+ return false unless @consent_calls_transactional == other.consent_calls_transactional
38
+ return false unless @consent_calls_marketing == other.consent_calls_marketing
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyFountain
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyFountain
11
+ def consent_sms_transactional(); end
12
+ def consent_sms_transactional=(str_); end
13
+ def consent_sms_marketing(); end
14
+ def consent_sms_marketing=(str_); end
15
+ def consent_calls_transactional(); end
16
+ def consent_calls_transactional=(str_); end
17
+ def consent_calls_marketing(); end
18
+ def consent_calls_marketing=(str_); end
19
+ end
@@ -0,0 +1,32 @@
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 Shared
10
+ # Fields specific to iCIMS.
11
+ class PostAtsCandidatesRequestBodyIcims
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Fields that we will pass through to the iCIMS applicant workflow when it is created. For example `sourcechannel` or custom `fieldNNNN` IDs.
16
+ field :application, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('application') } }
17
+
18
+ sig { params(application: T.nilable(T::Hash[Symbol, ::Object])).void }
19
+ def initialize(application: nil)
20
+ @application = application
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @application == other.application
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyIcims
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyIcims
11
+ def application(); end
12
+ def application=(str_); end
13
+ end
@@ -0,0 +1,32 @@
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 Shared
10
+ # Fields specific to Recruit CRM.
11
+ class PostAtsCandidatesRequestBodyRecruitcrm
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Candidate custom fields passed through to Recruit CRM's `custom_fields` array. A child field also needs its parent field in this array. See https://docs.recruitcrm.io/docs/rcrm-api-reference/ba451e2a3bd63-creates-a-new-candidate.
16
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::PostAtsCandidatesRequestBodyCustomField)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields') } }
17
+
18
+ sig { params(custom_fields: T.nilable(T::Array[Models::Shared::PostAtsCandidatesRequestBodyCustomField])).void }
19
+ def initialize(custom_fields: nil)
20
+ @custom_fields = custom_fields
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @custom_fields == other.custom_fields
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRecruitcrm
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRecruitcrm
11
+ def custom_fields(); end
12
+ def custom_fields=(str_); end
13
+ end
@@ -60,9 +60,19 @@ module Kombo
60
60
  field :pinpoint, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyPinpoint), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('pinpoint') } }
61
61
  # Fields specific to Coveto REST.
62
62
  field :covetorest, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyCovetorest), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('covetorest') } }
63
+ # Fields specific to AFAS.
64
+ field :afas, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyAfas), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('afas') } }
65
+ # Consent fields passed through to Fountain when creating an applicant. See https://developer.fountain.com/reference/post_v2-applicants.
66
+ field :fountain, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyFountain), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('fountain') } }
67
+ # Fields specific to Recruit CRM.
68
+ field :recruitcrm, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyRecruitcrm), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('recruitcrm') } }
69
+ # Fields specific to iCIMS.
70
+ field :icims, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyIcims), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('icims') } }
71
+ # Fields specific to Emply People.
72
+ field :emplypeople, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyEmplypeople), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('emplypeople') } }
63
73
 
64
- sig { params(successfactors: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySuccessfactors), personio: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPersonio), talentsoft: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentsoft), teamtailor: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhouse), greenhousev3: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhousev3), lever: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkable), workday: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkday), zohorecruit: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyZohorecruit), bullhorn: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyBullhorn), smartrecruiters: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySmartrecruiters), talentadore: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentadore), guidecom: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGuidecom), dvinci: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyDvinci), hrworks: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyHrworks), jobylon: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyJobylon), avature: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyAvature), recruitee: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRecruitee), rexx: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRexx), umantis: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyUmantis), piloga: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPiloga), pinpoint: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPinpoint), covetorest: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyCovetorest)).void }
65
- def initialize(successfactors: nil, personio: nil, talentsoft: nil, teamtailor: nil, greenhouse: nil, greenhousev3: nil, lever: nil, workable: nil, workday: nil, zohorecruit: nil, bullhorn: nil, smartrecruiters: nil, talentadore: nil, guidecom: nil, dvinci: nil, hrworks: nil, jobylon: nil, avature: nil, recruitee: nil, rexx: nil, umantis: nil, piloga: nil, pinpoint: nil, covetorest: nil)
74
+ sig { params(successfactors: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySuccessfactors), personio: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPersonio), talentsoft: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentsoft), teamtailor: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhouse), greenhousev3: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhousev3), lever: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkable), workday: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkday), zohorecruit: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyZohorecruit), bullhorn: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyBullhorn), smartrecruiters: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySmartrecruiters), talentadore: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentadore), guidecom: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGuidecom), dvinci: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyDvinci), hrworks: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyHrworks), jobylon: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyJobylon), avature: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyAvature), recruitee: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRecruitee), rexx: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRexx), umantis: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyUmantis), piloga: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPiloga), pinpoint: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPinpoint), covetorest: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyCovetorest), afas: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyAfas), fountain: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyFountain), recruitcrm: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRecruitcrm), icims: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyIcims), emplypeople: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyEmplypeople)).void }
75
+ def initialize(successfactors: nil, personio: nil, talentsoft: nil, teamtailor: nil, greenhouse: nil, greenhousev3: nil, lever: nil, workable: nil, workday: nil, zohorecruit: nil, bullhorn: nil, smartrecruiters: nil, talentadore: nil, guidecom: nil, dvinci: nil, hrworks: nil, jobylon: nil, avature: nil, recruitee: nil, rexx: nil, umantis: nil, piloga: nil, pinpoint: nil, covetorest: nil, afas: nil, fountain: nil, recruitcrm: nil, icims: nil, emplypeople: nil)
66
76
  @successfactors = successfactors
67
77
  @personio = personio
68
78
  @talentsoft = talentsoft
@@ -87,6 +97,11 @@ module Kombo
87
97
  @piloga = piloga
88
98
  @pinpoint = pinpoint
89
99
  @covetorest = covetorest
100
+ @afas = afas
101
+ @fountain = fountain
102
+ @recruitcrm = recruitcrm
103
+ @icims = icims
104
+ @emplypeople = emplypeople
90
105
  end
91
106
 
92
107
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -116,6 +131,11 @@ module Kombo
116
131
  return false unless @piloga == other.piloga
117
132
  return false unless @pinpoint == other.pinpoint
118
133
  return false unless @covetorest == other.covetorest
134
+ return false unless @afas == other.afas
135
+ return false unless @fountain == other.fountain
136
+ return false unless @recruitcrm == other.recruitcrm
137
+ return false unless @icims == other.icims
138
+ return false unless @emplypeople == other.emplypeople
119
139
  true
120
140
  end
121
141
  end
@@ -56,4 +56,14 @@ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRemoteFields
56
56
  def pinpoint=(str_); end
57
57
  def covetorest(); end
58
58
  def covetorest=(str_); end
59
+ def afas(); end
60
+ def afas=(str_); end
61
+ def fountain(); end
62
+ def fountain=(str_); end
63
+ def recruitcrm(); end
64
+ def recruitcrm=(str_); end
65
+ def icims(); end
66
+ def icims=(str_); end
67
+ def emplypeople(); end
68
+ def emplypeople=(str_); end
59
69
  end
@@ -16,11 +16,14 @@ module Kombo
16
16
  field :applicant, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('applicant') } }
17
17
  # Fields that we will pass through to TalentSoft's `application` object.
18
18
  field :application, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('application') } }
19
+ # Fields that we will pass through to TalentSoft's top-level `customFields` object when creating applications without an account. For account-based application creation, pass custom fields in `applicant.customFields` instead.
20
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('customFields') } }
19
21
 
20
- sig { params(applicant: T.nilable(T::Hash[Symbol, ::Object]), application: T.nilable(T::Hash[Symbol, ::Object])).void }
21
- def initialize(applicant: nil, application: nil)
22
+ sig { params(applicant: T.nilable(T::Hash[Symbol, ::Object]), application: T.nilable(T::Hash[Symbol, ::Object]), custom_fields: T.nilable(T::Hash[Symbol, ::Object])).void }
23
+ def initialize(applicant: nil, application: nil, custom_fields: nil)
22
24
  @applicant = applicant
23
25
  @application = application
26
+ @custom_fields = custom_fields
24
27
  end
25
28
 
26
29
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -28,6 +31,7 @@ module Kombo
28
31
  return false unless other.is_a? self.class
29
32
  return false unless @applicant == other.applicant
30
33
  return false unless @application == other.application
34
+ return false unless @custom_fields == other.custom_fields
31
35
  true
32
36
  end
33
37
  end
@@ -12,4 +12,6 @@ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyTalentsoft
12
12
  def applicant=(str_); end
13
13
  def application(); end
14
14
  def application=(str_); end
15
+ def custom_fields(); end
16
+ def custom_fields=(str_); end
15
17
  end
@@ -0,0 +1,32 @@
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 Shared
10
+ # Fields specific to AFAS.
11
+ class PostAtsJobsJobIdApplicationsRequestBodyAfas
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Additional fields passed through to AFAS `HrCreateApplicant.Element.Fields`.
16
+ field :fields_, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('Fields') } }
17
+
18
+ sig { params(fields_: T.nilable(T::Hash[Symbol, ::Object])).void }
19
+ def initialize(fields_: nil)
20
+ @fields_ = fields_
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @fields_ == other.fields_
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAfas
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAfas
11
+ def fields_(); end
12
+ def fields_=(str_); end
13
+ end
@@ -12,17 +12,21 @@ module Kombo
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
+ # Fields that we will pass through to Avature's create person form (`POST /people`). Available fields depend on your Avature instance's People write configuration.
16
+ field :candidate, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate') } }
15
17
 
16
18
  field :workflow, Crystalline::Nilable.new(Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyWorkflow), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('workflow') } }
17
19
 
18
- sig { params(workflow: T.nilable(Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyWorkflow)).void }
19
- def initialize(workflow: nil)
20
+ sig { params(candidate: T.nilable(T::Hash[Symbol, ::Object]), workflow: T.nilable(Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyWorkflow)).void }
21
+ def initialize(candidate: nil, workflow: nil)
22
+ @candidate = candidate
20
23
  @workflow = workflow
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
29
+ return false unless @candidate == other.candidate
26
30
  return false unless @workflow == other.workflow
27
31
  true
28
32
  end
@@ -8,6 +8,8 @@ end
8
8
 
9
9
 
10
10
  class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyAvature
11
+ def candidate(); end
12
+ def candidate=(str_); end
11
13
  def workflow(); end
12
14
  def workflow=(str_); end
13
15
  end
@@ -0,0 +1,48 @@
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 Shared
10
+
11
+ class PostAtsJobsJobIdApplicationsRequestBodyCustomField
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the Recruit CRM candidate custom field (`GET /v1/custom-fields/candidates`).
16
+ field :field_id, ::Integer, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_id'), required: true } }
17
+ # Value to write. Dropdown and multiselect values must match a configured option. File fields take a direct download URL.
18
+ field :value, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+ # Entity the custom field belongs to, usually `candidate`.
20
+ field :entity_type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('entity_type') } }
21
+ # Custom field name.
22
+ field :field_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_name') } }
23
+ # Custom field type, for example `text`.
24
+ field :field_type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('field_type') } }
25
+
26
+ sig { params(field_id: ::Integer, value: ::String, entity_type: T.nilable(::String), field_name: T.nilable(::String), field_type: T.nilable(::String)).void }
27
+ def initialize(field_id:, value:, entity_type: nil, field_name: nil, field_type: nil)
28
+ @field_id = field_id
29
+ @value = value
30
+ @entity_type = entity_type
31
+ @field_name = field_name
32
+ @field_type = field_type
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @field_id == other.field_id
39
+ return false unless @value == other.value
40
+ return false unless @entity_type == other.entity_type
41
+ return false unless @field_name == other.field_name
42
+ return false unless @field_type == other.field_type
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyCustomField
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyCustomField
11
+ def field_id(); end
12
+ def field_id=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ def entity_type(); end
16
+ def entity_type=(str_); end
17
+ def field_name(); end
18
+ def field_name=(str_); end
19
+ def field_type(); end
20
+ def field_type=(str_); end
21
+ end
@@ -0,0 +1,32 @@
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 Shared
10
+ # Fields specific to Emply People.
11
+ class PostAtsJobsJobIdApplicationsRequestBodyEmplypeople
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Form data written to the application right after it is created, keyed by Emply People form ID. Each value is sent as-is as the `formData` of `PUT /v2/applications/{id}/form-data/{formId}`. Use it for questions that are not on the job's application form.
16
+ field :form_data, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('form_data') } }
17
+
18
+ sig { params(form_data: T.nilable(T::Hash[Symbol, ::Object])).void }
19
+ def initialize(form_data: nil)
20
+ @form_data = form_data
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @form_data == other.form_data
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyEmplypeople
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyEmplypeople
11
+ def form_data(); end
12
+ def form_data=(str_); end
13
+ end
@@ -0,0 +1,44 @@
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 Shared
10
+ # Consent fields passed through to Fountain when creating an applicant. See https://developer.fountain.com/reference/post_v2-applicants.
11
+ class PostAtsJobsJobIdApplicationsRequestBodyFountain
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Whether the applicant consented to transactional SMS about their current application. Fountain requires this on create from November 17, 2026.
16
+ field :consent_sms_transactional, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_sms_transactional') } }
17
+ # Whether the applicant consented to marketing SMS about future job opportunities. Fountain requires this on create from November 17, 2026. This is separate from transactional SMS consent.
18
+ field :consent_sms_marketing, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_sms_marketing') } }
19
+ # Whether the applicant consented to transactional calls about their current application. Fountain requires this on create from November 17, 2026.
20
+ field :consent_calls_transactional, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_calls_transactional') } }
21
+ # Whether the applicant consented to marketing calls about future job opportunities. Fountain requires this on create from November 17, 2026. This is separate from transactional call consent.
22
+ field :consent_calls_marketing, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_calls_marketing') } }
23
+
24
+ sig { params(consent_sms_transactional: T.nilable(T::Boolean), consent_sms_marketing: T.nilable(T::Boolean), consent_calls_transactional: T.nilable(T::Boolean), consent_calls_marketing: T.nilable(T::Boolean)).void }
25
+ def initialize(consent_sms_transactional: nil, consent_sms_marketing: nil, consent_calls_transactional: nil, consent_calls_marketing: nil)
26
+ @consent_sms_transactional = consent_sms_transactional
27
+ @consent_sms_marketing = consent_sms_marketing
28
+ @consent_calls_transactional = consent_calls_transactional
29
+ @consent_calls_marketing = consent_calls_marketing
30
+ end
31
+
32
+ sig { params(other: T.untyped).returns(T::Boolean) }
33
+ def ==(other)
34
+ return false unless other.is_a? self.class
35
+ return false unless @consent_sms_transactional == other.consent_sms_transactional
36
+ return false unless @consent_sms_marketing == other.consent_sms_marketing
37
+ return false unless @consent_calls_transactional == other.consent_calls_transactional
38
+ return false unless @consent_calls_marketing == other.consent_calls_marketing
39
+ true
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,19 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyFountain
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsJobsJobIdApplicationsRequestBodyFountain
11
+ def consent_sms_transactional(); end
12
+ def consent_sms_transactional=(str_); end
13
+ def consent_sms_marketing(); end
14
+ def consent_sms_marketing=(str_); end
15
+ def consent_calls_transactional(); end
16
+ def consent_calls_transactional=(str_); end
17
+ def consent_calls_marketing(); end
18
+ def consent_calls_marketing=(str_); end
19
+ end