kombo 1.2.8 → 1.2.9

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 (163) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/ats.rb +322 -0
  3. data/lib/kombo/connect.rb +2 -1
  4. data/lib/kombo/general.rb +11 -1
  5. data/lib/kombo/hris.rb +322 -0
  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/change.rb +19 -0
  26. data/lib/kombo/models/shared/change.rbi +11 -0
  27. data/lib/kombo/models/shared/content_ref.rb +43 -0
  28. data/lib/kombo/models/shared/content_ref.rbi +17 -0
  29. data/lib/kombo/models/shared/employee.rb +57 -0
  30. data/lib/kombo/models/shared/employee.rbi +25 -0
  31. data/lib/kombo/models/shared/format_multiselect.rb +2 -2
  32. data/lib/kombo/models/shared/format_singleselect.rb +2 -2
  33. data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rb +39 -0
  34. data/lib/kombo/models/shared/getatsattachmentspositiveresponse.rbi +15 -0
  35. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rb +36 -0
  36. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_data.rbi +15 -0
  37. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rb +76 -0
  38. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_result.rbi +33 -0
  39. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rb +20 -0
  40. data/lib/kombo/models/shared/getatsattachmentspositiveresponse_type.rbi +11 -0
  41. data/lib/kombo/models/shared/{option_1.rb → getatsjobspositiveresponse_option_1.rb} +1 -1
  42. data/lib/kombo/models/shared/{option_2.rbi → getatsjobspositiveresponse_option_1.rbi} +2 -2
  43. data/lib/kombo/models/shared/{option_2.rb → getatsjobspositiveresponse_option_2.rb} +1 -1
  44. data/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi +17 -0
  45. data/lib/kombo/models/shared/{author.rb → getatsnotespositiveresponse_author.rb} +1 -1
  46. data/lib/kombo/models/shared/{author.rbi → getatsnotespositiveresponse_author.rbi} +2 -2
  47. data/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb +2 -2
  48. data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb +39 -0
  49. data/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi +15 -0
  50. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb +36 -0
  51. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi +15 -0
  52. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb +36 -0
  53. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi +15 -0
  54. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb +48 -0
  55. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi +21 -0
  56. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb +36 -0
  57. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi +15 -0
  58. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb +36 -0
  59. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi +15 -0
  60. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb +36 -0
  61. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi +15 -0
  62. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb +80 -0
  63. data/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi +35 -0
  64. data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb +39 -0
  65. data/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi +15 -0
  66. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb +36 -0
  67. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi +15 -0
  68. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb +36 -0
  69. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi +15 -0
  70. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb +36 -0
  71. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi +15 -0
  72. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb +36 -0
  73. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi +15 -0
  74. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb +62 -0
  75. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi +27 -0
  76. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb +40 -0
  77. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi +17 -0
  78. data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb +39 -0
  79. data/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi +15 -0
  80. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb +36 -0
  81. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi +15 -0
  82. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb +36 -0
  83. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi +15 -0
  84. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb +36 -0
  85. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi +15 -0
  86. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb +36 -0
  87. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi +15 -0
  88. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb +62 -0
  89. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi +27 -0
  90. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb +40 -0
  91. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi +17 -0
  92. data/lib/kombo/models/shared/integration.rb +44 -0
  93. data/lib/kombo/models/shared/integration.rbi +19 -0
  94. data/lib/kombo/models/shared/integration_tool.rb +4 -0
  95. data/lib/kombo/models/shared/issue.rb +56 -0
  96. data/lib/kombo/models/shared/issue.rbi +25 -0
  97. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb +40 -0
  98. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi +17 -0
  99. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb +21 -0
  100. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi +11 -0
  101. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb +40 -0
  102. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi +17 -0
  103. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb +40 -0
  104. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi +17 -0
  105. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb +19 -0
  106. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi +11 -0
  107. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb +18 -0
  108. data/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi +11 -0
  109. data/lib/kombo/models/shared/line_item.rb +44 -0
  110. data/lib/kombo/models/shared/{option_1.rbi → line_item.rbi} +6 -4
  111. data/lib/kombo/models/shared/name.rb +6 -0
  112. data/lib/kombo/models/shared/pay_run.rb +48 -0
  113. data/lib/kombo/models/shared/pay_run.rbi +21 -0
  114. data/lib/kombo/models/shared/postatscandidatesrequestbody_afas.rb +32 -0
  115. data/lib/kombo/models/shared/{afas.rbi → postatscandidatesrequestbody_afas.rbi} +2 -2
  116. data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rb +6 -2
  117. data/lib/kombo/models/shared/postatscandidatesrequestbody_avature.rbi +2 -0
  118. data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rb +48 -0
  119. data/lib/kombo/models/shared/postatscandidatesrequestbody_custom_field.rbi +21 -0
  120. data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rb +32 -0
  121. data/lib/kombo/models/shared/postatscandidatesrequestbody_recruitcrm.rbi +13 -0
  122. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +10 -2
  123. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +4 -0
  124. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rb +32 -0
  125. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_afas.rbi +13 -0
  126. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rb +6 -2
  127. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_avature.rbi +2 -0
  128. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rb +48 -0
  129. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_custom_field.rbi +21 -0
  130. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rb +32 -0
  131. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_recruitcrm.rbi +13 -0
  132. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +10 -2
  133. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +4 -0
  134. data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rb +6 -2
  135. data/lib/kombo/models/shared/postconnectcreatelinkpositiveresponse_data.rbi +2 -0
  136. data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rb +6 -2
  137. data/lib/kombo/models/shared/postconnectcreatelinkrequestbody.rbi +2 -0
  138. data/lib/kombo/models/shared/{afas.rb → posthrisemployeesemployeeiddocumentsrequestbody_afas.rb} +1 -1
  139. data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_afas.rbi +13 -0
  140. data/lib/kombo/models/shared/posthrisemployeesemployeeiddocumentsrequestbody_remote_fields.rb +2 -2
  141. data/lib/kombo/models/shared/response.rb +27 -0
  142. data/lib/kombo/models/shared/response.rbi +11 -0
  143. data/lib/kombo/models/shared/result_boolean.rb +55 -0
  144. data/lib/kombo/models/shared/result_boolean.rbi +23 -0
  145. data/lib/kombo/models/shared/result_date.rb +55 -0
  146. data/lib/kombo/models/shared/result_date.rbi +23 -0
  147. data/lib/kombo/models/shared/result_multiselect.rb +59 -0
  148. data/lib/kombo/models/shared/result_multiselect.rbi +25 -0
  149. data/lib/kombo/models/shared/result_number.rb +55 -0
  150. data/lib/kombo/models/shared/result_number.rbi +23 -0
  151. data/lib/kombo/models/shared/result_singleselect.rb +59 -0
  152. data/lib/kombo/models/shared/result_singleselect.rbi +25 -0
  153. data/lib/kombo/models/shared/result_text.rb +55 -0
  154. data/lib/kombo/models/shared/result_text.rbi +23 -0
  155. data/lib/kombo/models/shared.rb +57 -4
  156. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb +36 -0
  157. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi +15 -0
  158. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb +40 -0
  159. data/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi +17 -0
  160. data/lib/kombo/models/webhooks.rb +2 -0
  161. data/lib/kombo/sdkconfiguration.rb +5 -3
  162. data/lib/kombo/utils/utils.rb +6 -2
  163. metadata +136 -10
@@ -0,0 +1,57 @@
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
+ # The employee that the payslip is for.
11
+ class Employee
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
16
+ field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
17
+ # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
18
+ field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+ # The employee’s first name.
20
+ field :first_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('first_name'), required: true } }
21
+ # The employee’s last name.
22
+ field :last_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('last_name'), required: true } }
23
+ # The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`.
24
+ field :display_full_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('display_full_name'), required: true } }
25
+ # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
26
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
27
+ field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
28
+ # The employee’s work email address. If the email address is invalid, we will set this to `null`.
29
+ field :work_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('work_email') } }
30
+
31
+ sig { params(id: ::String, remote_id: ::String, first_name: T.nilable(::String), last_name: T.nilable(::String), display_full_name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), work_email: T.nilable(::String)).void }
32
+ def initialize(id:, remote_id:, first_name: nil, last_name: nil, display_full_name: nil, remote_deleted_at: nil, work_email: nil)
33
+ @id = id
34
+ @remote_id = remote_id
35
+ @first_name = first_name
36
+ @last_name = last_name
37
+ @display_full_name = display_full_name
38
+ @remote_deleted_at = remote_deleted_at
39
+ @work_email = work_email
40
+ end
41
+
42
+ sig { params(other: T.untyped).returns(T::Boolean) }
43
+ def ==(other)
44
+ return false unless other.is_a? self.class
45
+ return false unless @id == other.id
46
+ return false unless @remote_id == other.remote_id
47
+ return false unless @first_name == other.first_name
48
+ return false unless @last_name == other.last_name
49
+ return false unless @display_full_name == other.display_full_name
50
+ return false unless @remote_deleted_at == other.remote_deleted_at
51
+ return false unless @work_email == other.work_email
52
+ true
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,25 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::Employee
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::Employee
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def first_name(); end
16
+ def first_name=(str_); end
17
+ def last_name(); end
18
+ def last_name=(str_); end
19
+ def display_full_name(); end
20
+ def display_full_name=(str_); end
21
+ def remote_deleted_at(); end
22
+ def remote_deleted_at=(str_); end
23
+ def work_email(); end
24
+ def work_email=(str_); end
25
+ end
@@ -13,11 +13,11 @@ module Kombo
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :options, Crystalline::Array.new(Models::Shared::Option2), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } }
16
+ field :options, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseOption2), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } }
17
17
 
18
18
  field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } }
19
19
 
20
- sig { params(options: T::Array[Models::Shared::Option2], type: ::String).void }
20
+ sig { params(options: T::Array[Models::Shared::GetAtsJobsPositiveResponseOption2], type: ::String).void }
21
21
  def initialize(options:, type: 'MULTI_SELECT')
22
22
  @options = options
23
23
  unless type == 'MULTI_SELECT'
@@ -13,13 +13,13 @@ module Kombo
13
13
  include Crystalline::MetadataFields
14
14
 
15
15
 
16
- field :options, Crystalline::Array.new(Models::Shared::Option1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } }
16
+ field :options, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseOption1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } }
17
17
 
18
18
  field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } }
19
19
 
20
20
  field :display_type, Crystalline::Nilable.new(Models::Shared::DisplayType3), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('display_type'), 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::DisplayType3, true) } }
21
21
 
22
- sig { params(options: T::Array[Models::Shared::Option1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void }
22
+ sig { params(options: T::Array[Models::Shared::GetAtsJobsPositiveResponseOption1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void }
23
23
  def initialize(options:, type: 'SINGLE_SELECT', display_type: nil)
24
24
  @options = options
25
25
  unless type == 'SINGLE_SELECT'
@@ -0,0 +1,39 @@
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 GetAtsAttachmentsPositiveResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :data, Models::Shared::GetAtsAttachmentsPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } }
17
+
18
+ field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } }
19
+
20
+ sig { params(data: Models::Shared::GetAtsAttachmentsPositiveResponseData, status: ::String).void }
21
+ def initialize(data:, status: 'success')
22
+ @data = data
23
+ unless status == 'success'
24
+ raise ArgumentError, 'Invalid value for status'
25
+ end
26
+ @status = 'success'
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @data == other.data
33
+ return false unless @status == other.status
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponse
11
+ def data(); end
12
+ def data=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ end
@@ -0,0 +1,36 @@
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 GetAtsAttachmentsPositiveResponseData
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :results, Crystalline::Array.new(Models::Shared::GetAtsAttachmentsPositiveResponseResult), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('results'), required: true } }
17
+ # Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages.
18
+ field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('next'), required: true } }
19
+
20
+ sig { params(results: T::Array[Models::Shared::GetAtsAttachmentsPositiveResponseResult], next_: T.nilable(::String)).void }
21
+ def initialize(results:, next_: nil)
22
+ @results = results
23
+ @next_ = next_
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @results == other.results
30
+ return false unless @next_ == other.next_
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseData
11
+ def results(); end
12
+ def results=(str_); end
13
+ def next_(); end
14
+ def next_=(str_); end
15
+ end
@@ -0,0 +1,76 @@
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 GetAtsAttachmentsPositiveResponseResult
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
16
+ field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
17
+ # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
18
+ field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+ # The Kombo ID of the candidate this attachment belongs to. The ID can be used to retrieve the candidate from the `get candidates` endpoint.
20
+ field :candidate_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate_id'), required: true } }
21
+ # The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
22
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
23
+ field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
24
+ # The Kombo ID of the application this attachment belongs to, when the ATS files it under one specific application. Many systems attach files to the candidate instead, in which case this is `null`.
25
+ field :application_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('application_id'), required: true } }
26
+ # What the file is used for in the ATS. Anything that is neither a CV nor a cover letter is reported as `OTHER`.
27
+ field :type, Crystalline::Nilable.new(Models::Shared::GetAtsAttachmentsPositiveResponseType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::GetAtsAttachmentsPositiveResponseType, false) } }
28
+ # The name of the file as reported by the ATS.
29
+ field :file_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('file_name'), required: true } }
30
+ # The date and time the object was created in the remote system.
31
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
32
+ field :remote_created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_created_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
33
+ # A timestamp retrieved from the remote system, describing when the resource was last updated.
34
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
35
+ field :remote_updated_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_updated_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
36
+ # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
37
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
38
+ field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
39
+ # Where we stored the file in the bucket you configured. The file is written before the attachment shows up here, so this is set on every attachment you can read.
40
+ field :content_ref, Crystalline::Nilable.new(Models::Shared::ContentRef), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('content_ref') } }
41
+
42
+ sig { params(id: ::String, remote_id: ::String, candidate_id: ::String, changed_at: ::DateTime, application_id: T.nilable(::String), type: T.nilable(Models::Shared::GetAtsAttachmentsPositiveResponseType), file_name: T.nilable(::String), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), content_ref: T.nilable(Models::Shared::ContentRef)).void }
43
+ def initialize(id:, remote_id:, candidate_id:, changed_at:, application_id: nil, type: nil, file_name: nil, remote_created_at: nil, remote_updated_at: nil, remote_deleted_at: nil, content_ref: nil)
44
+ @id = id
45
+ @remote_id = remote_id
46
+ @candidate_id = candidate_id
47
+ @changed_at = changed_at
48
+ @application_id = application_id
49
+ @type = type
50
+ @file_name = file_name
51
+ @remote_created_at = remote_created_at
52
+ @remote_updated_at = remote_updated_at
53
+ @remote_deleted_at = remote_deleted_at
54
+ @content_ref = content_ref
55
+ end
56
+
57
+ sig { params(other: T.untyped).returns(T::Boolean) }
58
+ def ==(other)
59
+ return false unless other.is_a? self.class
60
+ return false unless @id == other.id
61
+ return false unless @remote_id == other.remote_id
62
+ return false unless @candidate_id == other.candidate_id
63
+ return false unless @changed_at == other.changed_at
64
+ return false unless @application_id == other.application_id
65
+ return false unless @type == other.type
66
+ return false unless @file_name == other.file_name
67
+ return false unless @remote_created_at == other.remote_created_at
68
+ return false unless @remote_updated_at == other.remote_updated_at
69
+ return false unless @remote_deleted_at == other.remote_deleted_at
70
+ return false unless @content_ref == other.content_ref
71
+ true
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,33 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseResult
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseResult
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def candidate_id(); end
16
+ def candidate_id=(str_); end
17
+ def changed_at(); end
18
+ def changed_at=(str_); end
19
+ def application_id(); end
20
+ def application_id=(str_); end
21
+ def type(); end
22
+ def type=(str_); end
23
+ def file_name(); end
24
+ def file_name=(str_); end
25
+ def remote_created_at(); end
26
+ def remote_created_at=(str_); end
27
+ def remote_updated_at(); end
28
+ def remote_updated_at=(str_); end
29
+ def remote_deleted_at(); end
30
+ def remote_deleted_at=(str_); end
31
+ def content_ref(); end
32
+ def content_ref=(str_); end
33
+ end
@@ -0,0 +1,20 @@
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
+ # GetAtsAttachmentsPositiveResponseType - What the file is used for in the ATS. Anything that is neither a CV nor a cover letter is reported as `OTHER`.
11
+ class GetAtsAttachmentsPositiveResponseType < T::Enum
12
+ enums do
13
+ CV = new('CV')
14
+ COVER_LETTER = new('COVER_LETTER')
15
+ OTHER = new('OTHER')
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsAttachmentsPositiveResponseType
11
+ end
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Option1
11
+ class GetAtsJobsPositiveResponseOption1
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -2,12 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Kombo::Models::Shared::Option2
5
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption1
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Kombo::Models::Shared::Option2
10
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption1
11
11
  def id(); end
12
12
  def id=(str_); end
13
13
  def name(); end
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Option2
11
+ class GetAtsJobsPositiveResponseOption2
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption2
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption2
11
+ def id(); end
12
+ def id=(str_); end
13
+ def name(); end
14
+ def name=(str_); end
15
+ def remote_id(); end
16
+ def remote_id=(str_); end
17
+ end
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Author
11
+ class GetAtsNotesPositiveResponseAuthor
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -2,12 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Kombo::Models::Shared::Author
5
+ class Kombo::Models::Shared::GetAtsNotesPositiveResponseAuthor
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Kombo::Models::Shared::Author
10
+ class Kombo::Models::Shared::GetAtsNotesPositiveResponseAuthor
11
11
  def id(); end
12
12
  def id=(str_); end
13
13
  def remote_id(); end
@@ -41,9 +41,9 @@ module Kombo
41
41
  # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
42
42
  field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
43
43
 
44
- field :author, Crystalline::Nilable.new(Models::Shared::Author), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author'), required: true } }
44
+ field :author, Crystalline::Nilable.new(Models::Shared::GetAtsNotesPositiveResponseAuthor), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author'), required: true } }
45
45
 
46
- sig { params(id: ::String, remote_id: ::String, candidate_id: ::String, changed_at: ::DateTime, application_id: T.nilable(::String), author_id: T.nilable(::String), title: T.nilable(::String), content_html: T.nilable(::String), is_private: T.nilable(T::Boolean), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), author: T.nilable(Models::Shared::Author)).void }
46
+ sig { params(id: ::String, remote_id: ::String, candidate_id: ::String, changed_at: ::DateTime, application_id: T.nilable(::String), author_id: T.nilable(::String), title: T.nilable(::String), content_html: T.nilable(::String), is_private: T.nilable(T::Boolean), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), author: T.nilable(Models::Shared::GetAtsNotesPositiveResponseAuthor)).void }
47
47
  def initialize(id:, remote_id:, candidate_id:, changed_at:, application_id: nil, author_id: nil, title: nil, content_html: nil, is_private: nil, remote_created_at: nil, remote_updated_at: nil, remote_deleted_at: nil, author: nil)
48
48
  @id = id
49
49
  @remote_id = remote_id
@@ -0,0 +1,39 @@
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 GetAtsScorecardsPositiveResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :data, Models::Shared::GetAtsScorecardsPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } }
17
+
18
+ field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } }
19
+
20
+ sig { params(data: Models::Shared::GetAtsScorecardsPositiveResponseData, status: ::String).void }
21
+ def initialize(data:, status: 'success')
22
+ @data = data
23
+ unless status == 'success'
24
+ raise ArgumentError, 'Invalid value for status'
25
+ end
26
+ @status = 'success'
27
+ end
28
+
29
+ sig { params(other: T.untyped).returns(T::Boolean) }
30
+ def ==(other)
31
+ return false unless other.is_a? self.class
32
+ return false unless @data == other.data
33
+ return false unless @status == other.status
34
+ true
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponse
11
+ def data(); end
12
+ def data=(str_); end
13
+ def status(); end
14
+ def status=(str_); end
15
+ end
@@ -0,0 +1,36 @@
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
+ # The id and label of the selected option.
11
+ class GetAtsScorecardsPositiveResponseAnswer1
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The option as the interviewer sees it, e.g. "Strong Hire".
16
+ field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } }
17
+ # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label.
18
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+
20
+ sig { params(label: ::String, remote_id: T.nilable(::String)).void }
21
+ def initialize(label:, remote_id: nil)
22
+ @label = label
23
+ @remote_id = remote_id
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @label == other.label
30
+ return false unless @remote_id == other.remote_id
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer1
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer1
11
+ def label(); end
12
+ def label=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ end
@@ -0,0 +1,36 @@
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 GetAtsScorecardsPositiveResponseAnswer2
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The option as the interviewer sees it, e.g. "Strong Hire".
16
+ field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } }
17
+ # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label.
18
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+
20
+ sig { params(label: ::String, remote_id: T.nilable(::String)).void }
21
+ def initialize(label:, remote_id: nil)
22
+ @label = label
23
+ @remote_id = remote_id
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @label == other.label
30
+ return false unless @remote_id == other.remote_id
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer2
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer2
11
+ def label(); end
12
+ def label=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ end