kombo 1.0.3 → 1.0.5

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 (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/ats.rb +157 -1
  3. data/lib/kombo/general.rb +18 -5
  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/getassessmentordersopenpositiveresponse_hiring_team.rb +6 -6
  39. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team.rbi +2 -2
  40. data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team_role.rb +3 -0
  41. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb +13 -3
  42. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi +2 -0
  43. data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb +3 -0
  44. data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb +21 -0
  45. data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi +11 -0
  46. data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb +25 -0
  47. data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi +11 -0
  48. data/lib/kombo/models/shared/getatsrolespositiveresponse.rb +39 -0
  49. data/lib/kombo/models/shared/getatsrolespositiveresponse.rbi +15 -0
  50. data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb +36 -0
  51. data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi +15 -0
  52. data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb +58 -0
  53. data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi +25 -0
  54. data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb +21 -0
  55. data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi +11 -0
  56. data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb +25 -0
  57. data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi +11 -0
  58. data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb +10 -2
  59. data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi +2 -0
  60. data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb +21 -0
  61. data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi +11 -0
  62. data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb +25 -0
  63. data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi +11 -0
  64. data/lib/kombo/models/shared/{group.rb → gethrisemployeespositiveresponse_group.rb} +3 -3
  65. data/lib/kombo/models/shared/{group.rbi → gethrisemployeespositiveresponse_group.rbi} +2 -2
  66. data/lib/kombo/models/shared/{group_type.rb → gethrisemployeespositiveresponse_group_type.rb} +2 -2
  67. data/lib/kombo/models/shared/gethrisemployeespositiveresponse_group_type.rbi +11 -0
  68. data/lib/kombo/models/shared/{legal_entity.rb → gethrisemployeespositiveresponse_legal_entity.rb} +1 -1
  69. data/lib/kombo/models/shared/{legal_entity.rbi → gethrisemployeespositiveresponse_legal_entity.rbi} +2 -2
  70. data/lib/kombo/models/shared/gethrisemployeespositiveresponse_result.rb +3 -3
  71. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rb +39 -0
  72. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rbi +15 -0
  73. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rb +36 -0
  74. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rbi +15 -0
  75. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rb +36 -0
  76. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rbi +15 -0
  77. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rb +44 -0
  78. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rbi +19 -0
  79. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rb +40 -0
  80. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rbi +17 -0
  81. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rb +44 -0
  82. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rbi +19 -0
  83. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rb +110 -0
  84. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rbi +47 -0
  85. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rb +31 -0
  86. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rbi +11 -0
  87. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rb +22 -0
  88. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rbi +11 -0
  89. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rb +27 -0
  90. data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rbi +11 -0
  91. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rb +6 -6
  92. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rbi +2 -2
  93. data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team_role.rb +3 -0
  94. data/lib/kombo/models/shared/integration_tool.rb +4 -0
  95. data/lib/kombo/models/shared/job_role.rb +44 -0
  96. data/lib/kombo/models/shared/job_role.rbi +19 -0
  97. data/lib/kombo/models/shared/komboatserror_code.rb +1 -0
  98. data/lib/kombo/models/shared/kombogeneralerror_code.rb +1 -0
  99. data/lib/kombo/models/shared/kombohriserror_code.rb +1 -0
  100. data/lib/kombo/models/shared/model_type.rb +22 -0
  101. data/lib/kombo/models/shared/{group_type.rbi → model_type.rbi} +2 -2
  102. data/lib/kombo/models/shared/name.rb +7 -0
  103. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb +32 -0
  104. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi +13 -0
  105. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb +6 -2
  106. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi +2 -0
  107. data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rb +48 -0
  108. data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rbi +21 -0
  109. data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rb +6 -2
  110. data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rbi +2 -0
  111. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +6 -2
  112. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +2 -0
  113. data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rb +32 -0
  114. data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rbi +13 -0
  115. data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rb +6 -2
  116. data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rbi +2 -0
  117. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rb +48 -0
  118. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rbi +21 -0
  119. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rb +6 -2
  120. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rbi +2 -0
  121. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +6 -2
  122. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +2 -0
  123. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rb +32 -0
  124. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rbi +13 -0
  125. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rb +6 -2
  126. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rbi +2 -0
  127. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb +32 -0
  128. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi +13 -0
  129. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb +6 -2
  130. data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi +2 -0
  131. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rb +6 -2
  132. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rbi +2 -0
  133. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rb +36 -0
  134. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rbi +15 -0
  135. data/lib/kombo/models/shared/step_type.rb +21 -0
  136. data/lib/kombo/models/shared/step_type.rbi +11 -0
  137. data/lib/kombo/models/shared/system_role.rb +44 -0
  138. data/lib/kombo/models/shared/system_role.rbi +19 -0
  139. data/lib/kombo/models/shared.rb +33 -3
  140. data/lib/kombo/sdkconfiguration.rb +2 -2
  141. metadata +76 -8
@@ -12,10 +12,10 @@ module Kombo
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # The team member's identifier in the integrated system.
16
- field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
17
15
  # Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
18
16
  field :hiring_team_roles, Crystalline::Array.new(Models::Shared::GetAssessmentOrdersOpenPositiveResponseHiringTeamRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('hiring_team_roles'), required: true } }
17
+ # The team member's identifier in the integrated system.
18
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
19
19
  # The team member's email address.
20
20
  field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email'), required: true } }
21
21
  # The team member's first name.
@@ -23,10 +23,10 @@ module Kombo
23
23
  # The team member's last name.
24
24
  field :last_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('last_name'), required: true } }
25
25
 
26
- sig { params(remote_id: ::String, hiring_team_roles: T::Array[Models::Shared::GetAssessmentOrdersOpenPositiveResponseHiringTeamRole], email: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String)).void }
27
- def initialize(remote_id:, hiring_team_roles:, email: nil, first_name: nil, last_name: nil)
28
- @remote_id = remote_id
26
+ sig { params(hiring_team_roles: T::Array[Models::Shared::GetAssessmentOrdersOpenPositiveResponseHiringTeamRole], remote_id: T.nilable(::String), email: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String)).void }
27
+ def initialize(hiring_team_roles:, remote_id: nil, email: nil, first_name: nil, last_name: nil)
29
28
  @hiring_team_roles = hiring_team_roles
29
+ @remote_id = remote_id
30
30
  @email = email
31
31
  @first_name = first_name
32
32
  @last_name = last_name
@@ -35,8 +35,8 @@ module Kombo
35
35
  sig { params(other: T.untyped).returns(T::Boolean) }
36
36
  def ==(other)
37
37
  return false unless other.is_a? self.class
38
- return false unless @remote_id == other.remote_id
39
38
  return false unless @hiring_team_roles == other.hiring_team_roles
39
+ return false unless @remote_id == other.remote_id
40
40
  return false unless @email == other.email
41
41
  return false unless @first_name == other.first_name
42
42
  return false unless @last_name == other.last_name
@@ -8,10 +8,10 @@ end
8
8
 
9
9
 
10
10
  class Kombo::Models::Shared::GetAssessmentOrdersOpenPositiveResponseHiringTeam
11
- def remote_id(); end
12
- def remote_id=(str_); end
13
11
  def hiring_team_roles(); end
14
12
  def hiring_team_roles=(str_); end
13
+ def remote_id(); end
14
+ def remote_id=(str_); end
15
15
  def email(); end
16
16
  def email=(str_); end
17
17
  def first_name(); end
@@ -14,6 +14,9 @@ module Kombo
14
14
  enums do
15
15
  RECRUITER = new('RECRUITER')
16
16
  HIRING_MANAGER = new('HIRING_MANAGER')
17
+ COORDINATOR = new('COORDINATOR')
18
+ SOURCER = new('SOURCER')
19
+ INTERVIEWER = new('INTERVIEWER')
17
20
  end
18
21
  end
19
22
  end
@@ -14,8 +14,16 @@ module Kombo
14
14
 
15
15
  # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
16
16
  field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
17
- # Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
17
+ # **(⚠️ Deprecated - Use `job_roles` to access the full list of job roles.)** Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
18
+ #
19
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
18
20
  field :hiring_team_roles, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('hiring_team_roles'), required: true } }
21
+ # Roles assigned to this user for this job.
22
+ #
23
+ # Visit our in-depth guide about [roles](/ats/features/roles) to learn more.
24
+ #
25
+ # Use `system_roles` on the `/v1/ats/users` endpoint for system-wide roles.
26
+ field :job_roles, Crystalline::Array.new(Models::Shared::JobRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('job_roles'), required: true } }
19
27
  # 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.
20
28
  field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
21
29
  # First name of the user.
@@ -25,10 +33,11 @@ module Kombo
25
33
  # Email of the user. If the email address is invalid, it will be set to null.
26
34
  field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email') } }
27
35
 
28
- sig { params(id: ::String, hiring_team_roles: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), email: T.nilable(::String)).void }
29
- def initialize(id:, hiring_team_roles:, remote_id: nil, first_name: nil, last_name: nil, email: nil)
36
+ sig { params(id: ::String, hiring_team_roles: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole], job_roles: T::Array[Models::Shared::JobRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), email: T.nilable(::String)).void }
37
+ def initialize(id:, hiring_team_roles:, job_roles:, remote_id: nil, first_name: nil, last_name: nil, email: nil)
30
38
  @id = id
31
39
  @hiring_team_roles = hiring_team_roles
40
+ @job_roles = job_roles
32
41
  @remote_id = remote_id
33
42
  @first_name = first_name
34
43
  @last_name = last_name
@@ -40,6 +49,7 @@ module Kombo
40
49
  return false unless other.is_a? self.class
41
50
  return false unless @id == other.id
42
51
  return false unless @hiring_team_roles == other.hiring_team_roles
52
+ return false unless @job_roles == other.job_roles
43
53
  return false unless @remote_id == other.remote_id
44
54
  return false unless @first_name == other.first_name
45
55
  return false unless @last_name == other.last_name
@@ -12,6 +12,8 @@ class Kombo::Models::Shared::GetAtsJobsPositiveResponseHiringTeam
12
12
  def id=(str_); end
13
13
  def hiring_team_roles(); end
14
14
  def hiring_team_roles=(str_); end
15
+ def job_roles(); end
16
+ def job_roles=(str_); end
15
17
  def remote_id(); end
16
18
  def remote_id=(str_); end
17
19
  def first_name(); end
@@ -14,6 +14,9 @@ module Kombo
14
14
  enums do
15
15
  RECRUITER = new('RECRUITER')
16
16
  HIRING_MANAGER = new('HIRING_MANAGER')
17
+ COORDINATOR = new('COORDINATOR')
18
+ SOURCER = new('SOURCER')
19
+ INTERVIEWER = new('INTERVIEWER')
17
20
  end
18
21
  end
19
22
  end
@@ -0,0 +1,21 @@
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
+ # GetAtsJobsPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
11
+ class GetAtsJobsPositiveResponseScope < T::Enum
12
+
13
+
14
+ enums do
15
+ SYSTEM = new('SYSTEM')
16
+ JOB = new('JOB')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseScope
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseScope
11
+ end
@@ -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
+ # GetAtsJobsPositiveResponseUnifiedType - Unified role type if Kombo can map it.
11
+ class GetAtsJobsPositiveResponseUnifiedType < 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::GetAtsJobsPositiveResponseUnifiedType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseUnifiedType
11
+ 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 GetAtsRolesPositiveResponse
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::GetAtsRolesPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } }
19
+
20
+ sig { params(status: ::String, data: Models::Shared::GetAtsRolesPositiveResponseData).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::GetAtsRolesPositiveResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponse
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 GetAtsRolesPositiveResponseData
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :results, Crystalline::Array.new(Models::Shared::GetAtsRolesPositiveResponseResult), { '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::GetAtsRolesPositiveResponseResult], 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::GetAtsRolesPositiveResponseData
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseData
11
+ def results(); end
12
+ def results=(str_); end
13
+ def next_(); end
14
+ def next_=(str_); end
15
+ end
@@ -0,0 +1,58 @@
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 GetAtsRolesPositiveResponseResult
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 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.
18
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
19
+ field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
20
+ # 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.
21
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
22
+ # The label of the role.
23
+ field :remote_label, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
24
+ # Whether the role applies globally or is scoped to a specific job.
25
+ field :scope, Crystalline::Nilable.new(Models::Shared::GetAtsRolesPositiveResponseScope), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('scope'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsRolesPositiveResponseScope, false) } }
26
+ # Unified role type if Kombo can map it.
27
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetAtsRolesPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsRolesPositiveResponseUnifiedType, false) } }
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': Utils.datetime_from_iso_format(false) } }
31
+
32
+ sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), remote_label: T.nilable(::String), scope: T.nilable(Models::Shared::GetAtsRolesPositiveResponseScope), unified_type: T.nilable(Models::Shared::GetAtsRolesPositiveResponseUnifiedType), remote_deleted_at: T.nilable(::DateTime)).void }
33
+ def initialize(id:, changed_at:, remote_id: nil, remote_label: nil, scope: nil, unified_type: nil, remote_deleted_at: nil)
34
+ @id = id
35
+ @changed_at = changed_at
36
+ @remote_id = remote_id
37
+ @remote_label = remote_label
38
+ @scope = scope
39
+ @unified_type = unified_type
40
+ @remote_deleted_at = remote_deleted_at
41
+ end
42
+
43
+ sig { params(other: T.untyped).returns(T::Boolean) }
44
+ def ==(other)
45
+ return false unless other.is_a? self.class
46
+ return false unless @id == other.id
47
+ return false unless @changed_at == other.changed_at
48
+ return false unless @remote_id == other.remote_id
49
+ return false unless @remote_label == other.remote_label
50
+ return false unless @scope == other.scope
51
+ return false unless @unified_type == other.unified_type
52
+ return false unless @remote_deleted_at == other.remote_deleted_at
53
+ true
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,25 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseResult
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseResult
11
+ def id(); end
12
+ def id=(str_); end
13
+ def changed_at(); end
14
+ def changed_at=(str_); end
15
+ def remote_id(); end
16
+ def remote_id=(str_); end
17
+ def remote_label(); end
18
+ def remote_label=(str_); end
19
+ def scope(); end
20
+ def scope=(str_); end
21
+ def unified_type(); end
22
+ def unified_type=(str_); end
23
+ def remote_deleted_at(); end
24
+ def remote_deleted_at=(str_); end
25
+ end
@@ -0,0 +1,21 @@
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
+ # GetAtsRolesPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
11
+ class GetAtsRolesPositiveResponseScope < T::Enum
12
+
13
+
14
+ enums do
15
+ SYSTEM = new('SYSTEM')
16
+ JOB = new('JOB')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseScope
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseScope
11
+ end
@@ -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
+ # GetAtsRolesPositiveResponseUnifiedType - Unified role type if Kombo can map it.
11
+ class GetAtsRolesPositiveResponseUnifiedType < 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::GetAtsRolesPositiveResponseUnifiedType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsRolesPositiveResponseUnifiedType
11
+ end
@@ -17,6 +17,12 @@ module Kombo
17
17
  # 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.
18
18
  # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
19
19
  field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
20
+ # System-wide roles assigned to this user in the ATS.
21
+ #
22
+ # Visit our in-depth guide about [roles](/ats/features/roles) to learn more.
23
+ #
24
+ # Note: Use `job_roles` on the `/v1/ats/jobs` endpoint for job-specific roles.
25
+ field :system_roles, Crystalline::Array.new(Models::Shared::SystemRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('system_roles'), required: true } }
20
26
  # 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.
21
27
  field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
22
28
  # First name of the user.
@@ -31,10 +37,11 @@ module Kombo
31
37
  # Email of the user. If the email address is invalid, it will be set to null.
32
38
  field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email') } }
33
39
 
34
- sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), status: T.nilable(Models::Shared::GetAtsUsersPositiveResponseStatus), remote_deleted_at: T.nilable(::DateTime), email: T.nilable(::String)).void }
35
- def initialize(id:, changed_at:, remote_id: nil, first_name: nil, last_name: nil, status: nil, remote_deleted_at: nil, email: nil)
40
+ sig { params(id: ::String, changed_at: ::DateTime, system_roles: T::Array[Models::Shared::SystemRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), status: T.nilable(Models::Shared::GetAtsUsersPositiveResponseStatus), remote_deleted_at: T.nilable(::DateTime), email: T.nilable(::String)).void }
41
+ def initialize(id:, changed_at:, system_roles:, remote_id: nil, first_name: nil, last_name: nil, status: nil, remote_deleted_at: nil, email: nil)
36
42
  @id = id
37
43
  @changed_at = changed_at
44
+ @system_roles = system_roles
38
45
  @remote_id = remote_id
39
46
  @first_name = first_name
40
47
  @last_name = last_name
@@ -48,6 +55,7 @@ module Kombo
48
55
  return false unless other.is_a? self.class
49
56
  return false unless @id == other.id
50
57
  return false unless @changed_at == other.changed_at
58
+ return false unless @system_roles == other.system_roles
51
59
  return false unless @remote_id == other.remote_id
52
60
  return false unless @first_name == other.first_name
53
61
  return false unless @last_name == other.last_name
@@ -12,6 +12,8 @@ class Kombo::Models::Shared::GetAtsUsersPositiveResponseResult
12
12
  def id=(str_); end
13
13
  def changed_at(); end
14
14
  def changed_at=(str_); end
15
+ def system_roles(); end
16
+ def system_roles=(str_); end
15
17
  def remote_id(); end
16
18
  def remote_id=(str_); end
17
19
  def first_name(); end
@@ -0,0 +1,21 @@
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
+ # GetAtsUsersPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
11
+ class GetAtsUsersPositiveResponseScope < T::Enum
12
+
13
+
14
+ enums do
15
+ SYSTEM = new('SYSTEM')
16
+ JOB = new('JOB')
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsUsersPositiveResponseScope
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsUsersPositiveResponseScope
11
+ end
@@ -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