kombo 1.0.4 → 1.0.6

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 (147) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/ats.rb +157 -1
  3. data/lib/kombo/general.rb +19 -6
  4. data/lib/kombo/hris.rb +165 -8
  5. data/lib/kombo/models/operations/getatsapplications_request.rb +9 -0
  6. data/lib/kombo/models/operations/getatsapplicationstages_request.rb +2 -0
  7. data/lib/kombo/models/operations/getatscandidates_request.rb +8 -0
  8. data/lib/kombo/models/operations/getatsinterviews_request.rb +8 -0
  9. data/lib/kombo/models/operations/getatsjobs_request.rb +11 -0
  10. data/lib/kombo/models/operations/getatsoffers_request.rb +6 -0
  11. data/lib/kombo/models/operations/getatsrejectionreasons_request.rb +2 -0
  12. data/lib/kombo/models/operations/getatsroles_request.rb +75 -0
  13. data/lib/kombo/models/operations/getatsroles_request.rbi +29 -0
  14. data/lib/kombo/models/operations/getatsroles_response.rb +56 -0
  15. data/lib/kombo/models/operations/getatsroles_response.rbi +19 -0
  16. data/lib/kombo/models/operations/getatstags_request.rb +2 -0
  17. data/lib/kombo/models/operations/getatsusers_request.rb +5 -0
  18. data/lib/kombo/models/operations/gethrisabsences_request.rb +4 -0
  19. data/lib/kombo/models/operations/gethrisabsencetypes_request.rb +2 -0
  20. data/lib/kombo/models/operations/gethrisemployeedocumentcategories_request.rb +2 -0
  21. data/lib/kombo/models/operations/gethrisemployees_request.rb +10 -0
  22. data/lib/kombo/models/operations/gethrisemployments_request.rb +2 -0
  23. data/lib/kombo/models/operations/gethrisgroups_request.rb +2 -0
  24. data/lib/kombo/models/operations/gethrislegalentities_request.rb +2 -0
  25. data/lib/kombo/models/operations/gethrislocations_request.rb +2 -0
  26. data/lib/kombo/models/operations/gethrisperformancereviewcycles_request.rb +2 -0
  27. data/lib/kombo/models/operations/gethrisperformancereviews_request.rb +6 -0
  28. data/lib/kombo/models/operations/gethrisstaffingentities_request.rb +85 -0
  29. data/lib/kombo/models/operations/gethrisstaffingentities_request.rbi +31 -0
  30. data/lib/kombo/models/operations/gethrisstaffingentities_response.rb +56 -0
  31. data/lib/kombo/models/operations/gethrisstaffingentities_response.rbi +19 -0
  32. data/lib/kombo/models/operations/gethristimeoffbalances_request.rb +4 -0
  33. data/lib/kombo/models/operations/gethristimesheets_request.rb +2 -0
  34. data/lib/kombo/models/operations.rb +4 -0
  35. data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team.rb +6 -6
  36. data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team.rbi +2 -2
  37. data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team_role.rb +3 -0
  38. data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_job.rb +10 -2
  39. data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_job.rbi +4 -0
  40. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team.rb +6 -6
  41. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team.rbi +2 -2
  42. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team_role.rb +3 -0
  43. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_job.rb +10 -2
  44. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_job.rbi +4 -0
  45. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb +13 -3
  46. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi +2 -0
  47. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb +3 -0
  48. data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb +21 -0
  49. data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi +11 -0
  50. data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb +25 -0
  51. data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi +11 -0
  52. data/lib/kombo/models/shared/getatsrolespositiveresponse.rb +39 -0
  53. data/lib/kombo/models/shared/getatsrolespositiveresponse.rbi +15 -0
  54. data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb +36 -0
  55. data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi +15 -0
  56. data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb +58 -0
  57. data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi +25 -0
  58. data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb +21 -0
  59. data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi +11 -0
  60. data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb +25 -0
  61. data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi +11 -0
  62. data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb +10 -2
  63. data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi +2 -0
  64. data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb +21 -0
  65. data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi +11 -0
  66. data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb +25 -0
  67. data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi +11 -0
  68. data/lib/kombo/models/shared/{group.rb → gethrisemployeespositiveresponse_group.rb} +3 -3
  69. data/lib/kombo/models/shared/{group.rbi → gethrisemployeespositiveresponse_group.rbi} +2 -2
  70. data/lib/kombo/models/shared/{group_type.rb → gethrisemployeespositiveresponse_group_type.rb} +2 -2
  71. data/lib/kombo/models/shared/gethrisemployeespositiveresponse_group_type.rbi +11 -0
  72. data/lib/kombo/models/shared/{legal_entity.rb → gethrisemployeespositiveresponse_legal_entity.rb} +1 -1
  73. data/lib/kombo/models/shared/{legal_entity.rbi → gethrisemployeespositiveresponse_legal_entity.rbi} +2 -2
  74. data/lib/kombo/models/shared/gethrisemployeespositiveresponse_result.rb +3 -3
  75. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rb +39 -0
  76. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rbi +15 -0
  77. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rb +36 -0
  78. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rbi +15 -0
  79. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rb +36 -0
  80. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rbi +15 -0
  81. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rb +44 -0
  82. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rbi +19 -0
  83. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rb +40 -0
  84. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rbi +17 -0
  85. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rb +44 -0
  86. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rbi +19 -0
  87. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rb +110 -0
  88. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rbi +47 -0
  89. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rb +31 -0
  90. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rbi +11 -0
  91. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rb +22 -0
  92. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rbi +11 -0
  93. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rb +27 -0
  94. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rbi +11 -0
  95. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rb +6 -6
  96. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rbi +2 -2
  97. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team_role.rb +3 -0
  98. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_job.rb +10 -2
  99. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_job.rbi +4 -0
  100. data/lib/kombo/models/shared/integration_tool.rb +4 -0
  101. data/lib/kombo/models/shared/job_role.rb +44 -0
  102. data/lib/kombo/models/shared/job_role.rbi +19 -0
  103. data/lib/kombo/models/shared/komboatserror_code.rb +1 -0
  104. data/lib/kombo/models/shared/kombogeneralerror_code.rb +1 -0
  105. data/lib/kombo/models/shared/kombohriserror_code.rb +1 -0
  106. data/lib/kombo/models/shared/model_type.rb +22 -0
  107. data/lib/kombo/models/shared/{group_type.rbi → model_type.rbi} +2 -2
  108. data/lib/kombo/models/shared/name.rb +7 -0
  109. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb +32 -0
  110. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi +13 -0
  111. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb +6 -2
  112. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi +2 -0
  113. data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rb +48 -0
  114. data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rbi +21 -0
  115. data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rb +6 -2
  116. data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rbi +2 -0
  117. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +6 -2
  118. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +2 -0
  119. data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rb +32 -0
  120. data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rbi +13 -0
  121. data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rb +6 -2
  122. data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rbi +2 -0
  123. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rb +48 -0
  124. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rbi +21 -0
  125. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rb +6 -2
  126. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rbi +2 -0
  127. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +6 -2
  128. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +2 -0
  129. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rb +32 -0
  130. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rbi +13 -0
  131. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rb +6 -2
  132. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rbi +2 -0
  133. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb +32 -0
  134. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi +13 -0
  135. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb +6 -2
  136. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi +2 -0
  137. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rb +6 -2
  138. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rbi +2 -0
  139. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rb +36 -0
  140. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rbi +15 -0
  141. data/lib/kombo/models/shared/step_type.rb +21 -0
  142. data/lib/kombo/models/shared/step_type.rbi +11 -0
  143. data/lib/kombo/models/shared/system_role.rb +44 -0
  144. data/lib/kombo/models/shared/system_role.rbi +19 -0
  145. data/lib/kombo/models/shared.rb +33 -3
  146. data/lib/kombo/sdkconfiguration.rb +2 -2
  147. metadata +76 -8
@@ -0,0 +1,25 @@
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
+ # GetAtsUsersPositiveResponseUnifiedType - Unified role type if Kombo can map it.
11
+ class GetAtsUsersPositiveResponseUnifiedType < T::Enum
12
+
13
+
14
+ enums do
15
+ HIRING_MANAGER = new('HIRING_MANAGER')
16
+ RECRUITER = new('RECRUITER')
17
+ COORDINATOR = new('COORDINATOR')
18
+ SOURCER = new('SOURCER')
19
+ INTERVIEWER = new('INTERVIEWER')
20
+ ADMIN = new('ADMIN')
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsUsersPositiveResponseUnifiedType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsUsersPositiveResponseUnifiedType
11
+ end
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Group
11
+ class GetHrisEmployeesPositiveResponseGroup
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
@@ -19,9 +19,9 @@ module Kombo
19
19
  # The name of the group.
20
20
  field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } }
21
21
  # Type of the group.
22
- field :type, Crystalline::Nilable.new(Models::Shared::GroupType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GroupType, false) } }
22
+ field :type, Crystalline::Nilable.new(Models::Shared::GetHrisEmployeesPositiveResponseGroupType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetHrisEmployeesPositiveResponseGroupType, false) } }
23
23
 
24
- sig { params(id: ::String, remote_id: ::String, name: T.nilable(::String), type: T.nilable(Models::Shared::GroupType)).void }
24
+ sig { params(id: ::String, remote_id: ::String, name: T.nilable(::String), type: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseGroupType)).void }
25
25
  def initialize(id:, remote_id:, name: nil, type: nil)
26
26
  @id = id
27
27
  @remote_id = remote_id
@@ -2,12 +2,12 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Kombo::Models::Shared::Group
5
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseGroup
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Kombo::Models::Shared::Group
10
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseGroup
11
11
  def id(); end
12
12
  def id=(str_); end
13
13
  def remote_id(); end
@@ -7,8 +7,8 @@
7
7
  module Kombo
8
8
  module Models
9
9
  module Shared
10
- # GroupType - Type of the group.
11
- class GroupType < T::Enum
10
+ # GetHrisEmployeesPositiveResponseGroupType - Type of the group.
11
+ class GetHrisEmployeesPositiveResponseGroupType < T::Enum
12
12
 
13
13
 
14
14
  enums do
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseGroupType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseGroupType
11
+ end
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class LegalEntity
11
+ class GetHrisEmployeesPositiveResponseLegalEntity
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::LegalEntity
5
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseLegalEntity
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Kombo::Models::Shared::LegalEntity
10
+ class Kombo::Models::Shared::GetHrisEmployeesPositiveResponseLegalEntity
11
11
  def id(); end
12
12
  def id=(str_); end
13
13
  def remote_id(); end
@@ -24,7 +24,7 @@ module Kombo
24
24
 
25
25
  field :time_off_balances, Crystalline::Array.new(Models::Shared::TimeOffBalance), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('time_off_balances'), required: true } }
26
26
 
27
- field :groups, Crystalline::Array.new(Models::Shared::Group), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('groups'), required: true } }
27
+ field :groups, Crystalline::Array.new(Models::Shared::GetHrisEmployeesPositiveResponseGroup), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('groups'), required: true } }
28
28
  # The employee’s organization-internal employee number.
29
29
  field :employee_number, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('employee_number'), required: true } }
30
30
  # The employee’s first name.
@@ -73,7 +73,7 @@ module Kombo
73
73
 
74
74
  field :manager, Crystalline::Nilable.new(Models::Shared::Manager), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('manager'), required: true } }
75
75
 
76
- field :legal_entity, Crystalline::Nilable.new(Models::Shared::LegalEntity), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entity'), required: true } }
76
+ field :legal_entity, Crystalline::Nilable.new(Models::Shared::GetHrisEmployeesPositiveResponseLegalEntity), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entity'), required: true } }
77
77
 
78
78
  field :work_location, Crystalline::Nilable.new(Models::Shared::WorkLocation), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('work_location'), required: true } }
79
79
  # The employee’s work email address. If the email address is invalid, we will set this to `null`.
@@ -113,7 +113,7 @@ module Kombo
113
113
  # The employee’s bank accounts.
114
114
  field :bank_accounts, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::BankAccount)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('bank_accounts') } }
115
115
 
116
- sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, employments: T::Array[Models::Shared::Employment], time_off_balances: T::Array[Models::Shared::TimeOffBalance], groups: T::Array[Models::Shared::Group], employee_number: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), nationality: T.nilable(::String), display_full_name: T.nilable(::String), job_title: T.nilable(::String), mobile_phone_number: T.nilable(::String), ssn: T.nilable(::String), tax_id: T.nilable(::String), weekly_hours: T.nilable(::Float), avatar: T.nilable(::String), work_location_id: T.nilable(::String), legal_entity_id: T.nilable(::String), manager_id: T.nilable(::String), date_of_birth: T.nilable(::DateTime), start_date: T.nilable(::DateTime), termination_date: T.nilable(::DateTime), remote_created_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), manager: T.nilable(Models::Shared::Manager), legal_entity: T.nilable(Models::Shared::LegalEntity), work_location: T.nilable(Models::Shared::WorkLocation), work_email: T.nilable(::String), personal_email: T.nilable(::String), gender: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseGender), ethnicity: T.nilable(Models::Shared::Ethnicity), marital_status: T.nilable(Models::Shared::MaritalStatus), employment_status: T.nilable(Models::Shared::EmploymentStatus), employment_type: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseEmploymentType), home_address: T.nilable(Models::Shared::HomeAddress), bank_accounts: T.nilable(T::Array[Models::Shared::BankAccount])).void }
116
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, employments: T::Array[Models::Shared::Employment], time_off_balances: T::Array[Models::Shared::TimeOffBalance], groups: T::Array[Models::Shared::GetHrisEmployeesPositiveResponseGroup], employee_number: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), nationality: T.nilable(::String), display_full_name: T.nilable(::String), job_title: T.nilable(::String), mobile_phone_number: T.nilable(::String), ssn: T.nilable(::String), tax_id: T.nilable(::String), weekly_hours: T.nilable(::Float), avatar: T.nilable(::String), work_location_id: T.nilable(::String), legal_entity_id: T.nilable(::String), manager_id: T.nilable(::String), date_of_birth: T.nilable(::DateTime), start_date: T.nilable(::DateTime), termination_date: T.nilable(::DateTime), remote_created_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), manager: T.nilable(Models::Shared::Manager), legal_entity: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseLegalEntity), work_location: T.nilable(Models::Shared::WorkLocation), work_email: T.nilable(::String), personal_email: T.nilable(::String), gender: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseGender), ethnicity: T.nilable(Models::Shared::Ethnicity), marital_status: T.nilable(Models::Shared::MaritalStatus), employment_status: T.nilable(Models::Shared::EmploymentStatus), employment_type: T.nilable(Models::Shared::GetHrisEmployeesPositiveResponseEmploymentType), home_address: T.nilable(Models::Shared::HomeAddress), bank_accounts: T.nilable(T::Array[Models::Shared::BankAccount])).void }
117
117
  def initialize(id:, remote_id:, changed_at:, employments:, time_off_balances:, groups:, employee_number: nil, first_name: nil, last_name: nil, nationality: nil, display_full_name: nil, job_title: nil, mobile_phone_number: nil, ssn: nil, tax_id: nil, weekly_hours: nil, avatar: nil, work_location_id: nil, legal_entity_id: nil, manager_id: nil, date_of_birth: nil, start_date: nil, termination_date: nil, remote_created_at: nil, remote_deleted_at: nil, custom_fields: nil, manager: nil, legal_entity: nil, work_location: nil, work_email: nil, personal_email: nil, gender: nil, ethnicity: nil, marital_status: nil, employment_status: nil, employment_type: nil, home_address: nil, bank_accounts: nil)
118
118
  @id = id
119
119
  @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 GetHrisStaffingEntitiesPositiveResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } }
17
+
18
+ field :data, Models::Shared::GetHrisStaffingEntitiesPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } }
19
+
20
+ sig { params(status: ::String, data: Models::Shared::GetHrisStaffingEntitiesPositiveResponseData).void }
21
+ def initialize(status:, data:)
22
+ unless status == 'success'
23
+ raise ArgumentError, 'Invalid value for status'
24
+ end
25
+ @status = 'success'
26
+ @data = data
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 @status == other.status
33
+ return false unless @data == other.data
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::GetHrisStaffingEntitiesPositiveResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponse
11
+ def status(); end
12
+ def status=(str_); end
13
+ def data(); end
14
+ def data=(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 GetHrisStaffingEntitiesPositiveResponseData
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :results, Crystalline::Array.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseResult), { '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::GetHrisStaffingEntitiesPositiveResponseResult], 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::GetHrisStaffingEntitiesPositiveResponseData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseData
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
+
11
+ class GetHrisStaffingEntitiesPositiveResponseEmploymentType
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The label of the employment type how it appears in the remote system.
16
+ field :remote_label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
17
+ # The unified type, how Kombo categorize this label.
18
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetHrisStaffingEntitiesPositiveResponseUnifiedType, false) } }
19
+
20
+ sig { params(remote_label: ::String, unified_type: T.nilable(Models::Shared::GetHrisStaffingEntitiesPositiveResponseUnifiedType)).void }
21
+ def initialize(remote_label:, unified_type: nil)
22
+ @remote_label = remote_label
23
+ @unified_type = unified_type
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 @remote_label == other.remote_label
30
+ return false unless @unified_type == other.unified_type
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::GetHrisStaffingEntitiesPositiveResponseEmploymentType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseEmploymentType
11
+ def remote_label(); end
12
+ def remote_label=(str_); end
13
+ def unified_type(); end
14
+ def unified_type=(str_); end
15
+ 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
+
11
+ class GetHrisStaffingEntitiesPositiveResponseGroup
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 name of the group.
20
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } }
21
+ # Type of the group.
22
+ field :type, Crystalline::Nilable.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetHrisStaffingEntitiesPositiveResponseType, false) } }
23
+
24
+ sig { params(id: ::String, remote_id: ::String, name: T.nilable(::String), type: T.nilable(Models::Shared::GetHrisStaffingEntitiesPositiveResponseType)).void }
25
+ def initialize(id:, remote_id:, name: nil, type: nil)
26
+ @id = id
27
+ @remote_id = remote_id
28
+ @name = name
29
+ @type = type
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 @remote_id == other.remote_id
37
+ return false unless @name == other.name
38
+ return false unless @type == other.type
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::GetHrisStaffingEntitiesPositiveResponseGroup
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseGroup
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def name(); end
16
+ def name=(str_); end
17
+ def type(); end
18
+ def type=(str_); end
19
+ 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 GetHrisStaffingEntitiesPositiveResponseLegalEntity
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, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+ # The legal entity’s name.
20
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } }
21
+
22
+ sig { params(id: ::String, remote_id: T.nilable(::String), name: T.nilable(::String)).void }
23
+ def initialize(id:, remote_id: nil, name: nil)
24
+ @id = id
25
+ @remote_id = remote_id
26
+ @name = name
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 @id == other.id
33
+ return false unless @remote_id == other.remote_id
34
+ return false unless @name == other.name
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::GetHrisStaffingEntitiesPositiveResponseLegalEntity
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseLegalEntity
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def name(); end
16
+ def name=(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
+
11
+ class GetHrisStaffingEntitiesPositiveResponseLocation
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, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
+ # The work location’s name
20
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } }
21
+ # The work location’s type. A freeform string.
22
+ field :type, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } }
23
+
24
+ sig { params(id: ::String, remote_id: T.nilable(::String), name: T.nilable(::String), type: T.nilable(::String)).void }
25
+ def initialize(id:, remote_id: nil, name: nil, type: nil)
26
+ @id = id
27
+ @remote_id = remote_id
28
+ @name = name
29
+ @type = type
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 @remote_id == other.remote_id
37
+ return false unless @name == other.name
38
+ return false unless @type == other.type
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::GetHrisStaffingEntitiesPositiveResponseLocation
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseLocation
11
+ def id(); end
12
+ def id=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
+ def name(); end
16
+ def name=(str_); end
17
+ def type(); end
18
+ def type=(str_); end
19
+ end
@@ -0,0 +1,110 @@
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 GetHrisStaffingEntitiesPositiveResponseResult
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': Utils.datetime_from_iso_format(false) } }
22
+ # The physical work locations associated with this staffing entity. A position or requisition can be linked to one or more offices or sites where the role is to be filled.
23
+ field :locations, Crystalline::Array.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseLocation), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('locations'), required: true } }
24
+ # The legal entities (companies or sub-companies) associated with this staffing entity. Indicates which employing entities within the organization the position or requisition belongs to.
25
+ field :legal_entities, Crystalline::Array.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseLegalEntity), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entities'), required: true } }
26
+ # The organizational groups (such as departments, teams, or cost centers) associated with this staffing entity.
27
+ field :groups, Crystalline::Array.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseGroup), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('groups'), required: true } }
28
+ # The name/title of the staffing entity.
29
+ field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } }
30
+ # The remote model type of the record. Possible values are "JOB", "POSITION" or "REQUISITION". We recommend that users of our `create employee` endpoint ask the customer whether they want to hire into positions or requisitions.
31
+ field :model_type, Crystalline::Nilable.new(Models::Shared::ModelType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('model_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::ModelType, false) } }
32
+ # A text description of the staffing entity — typically covering responsibilities, requirements, and scope. Commonly referred to as the "job description" in HRIS systems. May contain HTML, depending on the source system.
33
+ field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } }
34
+ # The status of the staffing entity.
35
+ # OPEN_LIMITED: The staffing entity is open and has a limited number of openings. Refer to the `number_of_openings` field to get the number of openings.
36
+ # OPEN_UNLIMITED: The staffing entity is open and has an unlimited number of openings. Some enterprise systems refer to this as "Evergreen".
37
+ # PENDING: The staffing entity is pending approval or is waiting to be published.
38
+ # FROZEN: The staffing entity is frozen (hiring freeze) and does not accept applications/hires.
39
+ # FILLED: The staffing entity is filled (to its maximum capacity) and not available for new hires.
40
+ # CLOSED: The staffing entity is closed and not available for new hires.
41
+ field :status, Crystalline::Nilable.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseStatus), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetHrisStaffingEntitiesPositiveResponseStatus, false) } }
42
+ # The employment types available for/used by the staffing entity. Use the `remote_label` for display in your UI as it is consistent with the language of the remote system. Use the `unified_type` for internal categorization as it is unified across all tools.
43
+ field :employment_types, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::GetHrisStaffingEntitiesPositiveResponseEmploymentType)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('employment_types'), required: true } }
44
+ # The number of openings for the staffing entity. Only meaningful for staffing entities with the status "OPEN_LIMITED".
45
+ field :number_of_openings, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('number_of_openings'), required: true } }
46
+ # The Kombo ID of the staffing entity’s parent. Usually it’s the position/job that was used to create the requisition. The ID can be used to retrieve the parent staffing entity from the `get staffing entity` endpoint.
47
+ field :parent_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('parent_id'), required: true } }
48
+ # URL to the staffing entity in the HRIS system. Use this to implement backlinks into the HRIS/Enterprise System.
49
+ field :remote_url, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_url'), required: true } }
50
+ # The date and time the object was created in the remote system.
51
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
52
+ field :remote_created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_created_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
53
+ # A timestamp retrieved from the remote system, describing when the resource was last updated.
54
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
55
+ field :remote_updated_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_updated_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
56
+ # 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.
57
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
58
+ field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
59
+ # A key-value store of fields not covered by the schema. [Read more](/custom-fields)
60
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields'), required: true } }
61
+
62
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, locations: T::Array[Models::Shared::GetHrisStaffingEntitiesPositiveResponseLocation], legal_entities: T::Array[Models::Shared::GetHrisStaffingEntitiesPositiveResponseLegalEntity], groups: T::Array[Models::Shared::GetHrisStaffingEntitiesPositiveResponseGroup], name: T.nilable(::String), model_type: T.nilable(Models::Shared::ModelType), description: T.nilable(::String), status: T.nilable(Models::Shared::GetHrisStaffingEntitiesPositiveResponseStatus), employment_types: T.nilable(T::Array[Models::Shared::GetHrisStaffingEntitiesPositiveResponseEmploymentType]), number_of_openings: T.nilable(::Float), parent_id: T.nilable(::String), remote_url: T.nilable(::String), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), custom_fields: T.nilable(T::Hash[Symbol, ::Object])).void }
63
+ def initialize(id:, remote_id:, changed_at:, locations:, legal_entities:, groups:, name: nil, model_type: nil, description: nil, status: nil, employment_types: nil, number_of_openings: nil, parent_id: nil, remote_url: nil, remote_created_at: nil, remote_updated_at: nil, remote_deleted_at: nil, custom_fields: nil)
64
+ @id = id
65
+ @remote_id = remote_id
66
+ @changed_at = changed_at
67
+ @locations = locations
68
+ @legal_entities = legal_entities
69
+ @groups = groups
70
+ @name = name
71
+ @model_type = model_type
72
+ @description = description
73
+ @status = status
74
+ @employment_types = employment_types
75
+ @number_of_openings = number_of_openings
76
+ @parent_id = parent_id
77
+ @remote_url = remote_url
78
+ @remote_created_at = remote_created_at
79
+ @remote_updated_at = remote_updated_at
80
+ @remote_deleted_at = remote_deleted_at
81
+ @custom_fields = custom_fields
82
+ end
83
+
84
+ sig { params(other: T.untyped).returns(T::Boolean) }
85
+ def ==(other)
86
+ return false unless other.is_a? self.class
87
+ return false unless @id == other.id
88
+ return false unless @remote_id == other.remote_id
89
+ return false unless @changed_at == other.changed_at
90
+ return false unless @locations == other.locations
91
+ return false unless @legal_entities == other.legal_entities
92
+ return false unless @groups == other.groups
93
+ return false unless @name == other.name
94
+ return false unless @model_type == other.model_type
95
+ return false unless @description == other.description
96
+ return false unless @status == other.status
97
+ return false unless @employment_types == other.employment_types
98
+ return false unless @number_of_openings == other.number_of_openings
99
+ return false unless @parent_id == other.parent_id
100
+ return false unless @remote_url == other.remote_url
101
+ return false unless @remote_created_at == other.remote_created_at
102
+ return false unless @remote_updated_at == other.remote_updated_at
103
+ return false unless @remote_deleted_at == other.remote_deleted_at
104
+ return false unless @custom_fields == other.custom_fields
105
+ true
106
+ end
107
+ end
108
+ end
109
+ end
110
+ end