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,62 @@
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 GetHrisPayRunsPositiveResponseResult
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 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.
20
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
21
+ field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
22
+
23
+ field :totals, Models::Shared::GetHrisPayRunsPositiveResponseTotals, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('totals'), required: true } }
24
+ # The start date of the pay run, as a calendar date (`yyyy-MM-dd`).
25
+ field :start_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('start_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } }
26
+ # The end date of the pay run, as a calendar date (`yyyy-MM-dd`).
27
+ field :end_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('end_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } }
28
+ # The Kombo ID of the pay run’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint.
29
+ field :legal_entity_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entity_id'), required: true } }
30
+ # 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.
31
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
32
+ 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) } }
33
+
34
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayRunsPositiveResponseTotals, start_date: T.nilable(::Date), end_date: T.nilable(::Date), legal_entity_id: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime)).void }
35
+ def initialize(id:, remote_id:, changed_at:, totals:, start_date: nil, end_date: nil, legal_entity_id: nil, remote_deleted_at: nil)
36
+ @id = id
37
+ @remote_id = remote_id
38
+ @changed_at = changed_at
39
+ @totals = totals
40
+ @start_date = start_date
41
+ @end_date = end_date
42
+ @legal_entity_id = legal_entity_id
43
+ @remote_deleted_at = remote_deleted_at
44
+ end
45
+
46
+ sig { params(other: T.untyped).returns(T::Boolean) }
47
+ def ==(other)
48
+ return false unless other.is_a? self.class
49
+ return false unless @id == other.id
50
+ return false unless @remote_id == other.remote_id
51
+ return false unless @changed_at == other.changed_at
52
+ return false unless @totals == other.totals
53
+ return false unless @start_date == other.start_date
54
+ return false unless @end_date == other.end_date
55
+ return false unless @legal_entity_id == other.legal_entity_id
56
+ return false unless @remote_deleted_at == other.remote_deleted_at
57
+ true
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,27 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseResult
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseResult
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def changed_at(); end
16
+ def changed_at=(str_); end
17
+ def totals(); end
18
+ def totals=(str_); end
19
+ def start_date(); end
20
+ def start_date=(str_); end
21
+ def end_date(); end
22
+ def end_date=(str_); end
23
+ def legal_entity_id(); end
24
+ def legal_entity_id=(str_); end
25
+ def remote_deleted_at(); end
26
+ def remote_deleted_at=(str_); end
27
+ end
@@ -0,0 +1,40 @@
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 GetHrisPayRunsPositiveResponseTotals
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The total gross pay for the pay run, before taxes and after gross deductions.
16
+ field :gross_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponseGrossPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('gross_pay') } }
17
+ # The total net pay for the pay run, after taxes have been applied to the gross pay.
18
+ field :net_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponseNetPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay') } }
19
+ # The total amount paid out through the pay run. This value accounts for net earnings and deductions.
20
+ field :paid_amount, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount') } }
21
+
22
+ sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount)).void }
23
+ def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil)
24
+ @gross_pay = gross_pay
25
+ @net_pay = net_pay
26
+ @paid_amount = paid_amount
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 @gross_pay == other.gross_pay
33
+ return false unless @net_pay == other.net_pay
34
+ return false unless @paid_amount == other.paid_amount
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseTotals
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseTotals
11
+ def gross_pay(); end
12
+ def gross_pay=(str_); end
13
+ def net_pay(); end
14
+ def net_pay=(str_); end
15
+ def paid_amount(); end
16
+ def paid_amount=(str_); end
17
+ end
@@ -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 GetHrisPayslipsPositiveResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :data, Models::Shared::GetHrisPayslipsPositiveResponseData, { '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::GetHrisPayslipsPositiveResponseData, 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::GetHrisPayslipsPositiveResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponse
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 GetHrisPayslipsPositiveResponseData
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :results, Crystalline::Array.new(Models::Shared::GetHrisPayslipsPositiveResponseResult), { '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::GetHrisPayslipsPositiveResponseResult], 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::GetHrisPayslipsPositiveResponseData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseData
11
+ def results(); end
12
+ def results=(str_); end
13
+ def next_(); end
14
+ def next_=(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 total gross pay for the payslip, before taxes and after gross deductions.
11
+ class GetHrisPayslipsPositiveResponseGrossPay
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
+ # The monetary value.
18
+ field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+
20
+ sig { params(currency: ::String, value: ::Float).void }
21
+ def initialize(currency:, value:)
22
+ @currency = currency
23
+ @value = value
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 @currency == other.currency
30
+ return false unless @value == other.value
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::GetHrisPayslipsPositiveResponseGrossPay
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseGrossPay
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value(); end
14
+ def value=(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 total net pay for the payslip, after taxes have been applied to the gross pay.
11
+ class GetHrisPayslipsPositiveResponseNetPay
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
+ # The monetary value.
18
+ field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+
20
+ sig { params(currency: ::String, value: ::Float).void }
21
+ def initialize(currency:, value:)
22
+ @currency = currency
23
+ @value = value
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 @currency == other.currency
30
+ return false unless @value == other.value
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::GetHrisPayslipsPositiveResponseNetPay
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseNetPay
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value(); end
14
+ def value=(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 amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions.
11
+ class GetHrisPayslipsPositiveResponsePaidAmount
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
+ # The monetary value.
18
+ field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+
20
+ sig { params(currency: ::String, value: ::Float).void }
21
+ def initialize(currency:, value:)
22
+ @currency = currency
23
+ @value = value
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 @currency == other.currency
30
+ return false unless @value == other.value
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::GetHrisPayslipsPositiveResponsePaidAmount
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ end
@@ -0,0 +1,62 @@
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 GetHrisPayslipsPositiveResponseResult
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 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.
20
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
21
+ field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
22
+
23
+ field :totals, Models::Shared::GetHrisPayslipsPositiveResponseTotals, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('totals'), required: true } }
24
+ # The employee that the payslip is for.
25
+ field :employee, Models::Shared::Employee, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('employee'), required: true } }
26
+ # The individual earnings, deductions, and contributions that make up the payslip.
27
+ field :line_items, Crystalline::Array.new(Models::Shared::LineItem), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('line_items'), required: true } }
28
+ # 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.
29
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
30
+ 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) } }
31
+ # The pay run the payslip was paid out through.
32
+ field :pay_run, Crystalline::Nilable.new(Models::Shared::PayRun), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('pay_run'), required: true } }
33
+
34
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayslipsPositiveResponseTotals, employee: Models::Shared::Employee, line_items: T::Array[Models::Shared::LineItem], remote_deleted_at: T.nilable(::DateTime), pay_run: T.nilable(Models::Shared::PayRun)).void }
35
+ def initialize(id:, remote_id:, changed_at:, totals:, employee:, line_items:, remote_deleted_at: nil, pay_run: nil)
36
+ @id = id
37
+ @remote_id = remote_id
38
+ @changed_at = changed_at
39
+ @totals = totals
40
+ @employee = employee
41
+ @line_items = line_items
42
+ @remote_deleted_at = remote_deleted_at
43
+ @pay_run = pay_run
44
+ end
45
+
46
+ sig { params(other: T.untyped).returns(T::Boolean) }
47
+ def ==(other)
48
+ return false unless other.is_a? self.class
49
+ return false unless @id == other.id
50
+ return false unless @remote_id == other.remote_id
51
+ return false unless @changed_at == other.changed_at
52
+ return false unless @totals == other.totals
53
+ return false unless @employee == other.employee
54
+ return false unless @line_items == other.line_items
55
+ return false unless @remote_deleted_at == other.remote_deleted_at
56
+ return false unless @pay_run == other.pay_run
57
+ true
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,27 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseResult
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseResult
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def changed_at(); end
16
+ def changed_at=(str_); end
17
+ def totals(); end
18
+ def totals=(str_); end
19
+ def employee(); end
20
+ def employee=(str_); end
21
+ def line_items(); end
22
+ def line_items=(str_); end
23
+ def remote_deleted_at(); end
24
+ def remote_deleted_at=(str_); end
25
+ def pay_run(); end
26
+ def pay_run=(str_); end
27
+ end
@@ -0,0 +1,40 @@
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 GetHrisPayslipsPositiveResponseTotals
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The total gross pay for the payslip, before taxes and after gross deductions.
16
+ field :gross_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('gross_pay') } }
17
+ # The total net pay for the payslip, after taxes have been applied to the gross pay.
18
+ field :net_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay') } }
19
+ # The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions.
20
+ field :paid_amount, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount') } }
21
+
22
+ sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount)).void }
23
+ def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil)
24
+ @gross_pay = gross_pay
25
+ @net_pay = net_pay
26
+ @paid_amount = paid_amount
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 @gross_pay == other.gross_pay
33
+ return false unless @net_pay == other.net_pay
34
+ return false unless @paid_amount == other.paid_amount
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,17 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseTotals
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseTotals
11
+ def gross_pay(); end
12
+ def gross_pay=(str_); end
13
+ def net_pay(); end
14
+ def net_pay=(str_); end
15
+ def paid_amount(); end
16
+ def paid_amount=(str_); end
17
+ 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
+ # The integration this issue belongs to. `null` for environment-wide issues.
11
+ class Integration
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The unique identifier of the integration.
16
+ field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
17
+ # The name of the integrated tool (e.g., "personio", "greenhouse").
18
+ field :tool, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('tool'), required: true } }
19
+ # The category of the integration (HRIS, ATS, ASSESSMENT, or LMS).
20
+ field :category, Models::Shared::IssueStatusChangedWebhookPayloadCategory, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('category'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::IssueStatusChangedWebhookPayloadCategory, false) } }
21
+ # Information about the end user who created the integration.
22
+ field :end_user, Models::Shared::IssueStatusChangedWebhookPayloadEndUser, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('end_user'), required: true } }
23
+
24
+ sig { params(id: ::String, tool: ::String, category: Models::Shared::IssueStatusChangedWebhookPayloadCategory, end_user: Models::Shared::IssueStatusChangedWebhookPayloadEndUser).void }
25
+ def initialize(id:, tool:, category:, end_user:)
26
+ @id = id
27
+ @tool = tool
28
+ @category = category
29
+ @end_user = end_user
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 @id == other.id
36
+ return false unless @tool == other.tool
37
+ return false unless @category == other.category
38
+ return false unless @end_user == other.end_user
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::Integration
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::Integration
11
+ def id(); end
12
+ def id=(str_); end
13
+ def tool(); end
14
+ def tool=(str_); end
15
+ def category(); end
16
+ def category=(str_); end
17
+ def end_user(); end
18
+ def end_user=(str_); end
19
+ end