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
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseType
11
+ end
@@ -0,0 +1,27 @@
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
+ # GetHrisStaffingEntitiesPositiveResponseUnifiedType - The unified type, how Kombo categorize this label.
11
+ class GetHrisStaffingEntitiesPositiveResponseUnifiedType < T::Enum
12
+
13
+
14
+ enums do
15
+ FULL_TIME = new('FULL_TIME')
16
+ PART_TIME = new('PART_TIME')
17
+ CONTRACT = new('CONTRACT')
18
+ INTERNSHIP = new('INTERNSHIP')
19
+ FREELANCE = new('FREELANCE')
20
+ WORKING_STUDENT = new('WORKING_STUDENT')
21
+ APPRENTICESHIP = new('APPRENTICESHIP')
22
+ TRAINING = new('TRAINING')
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseUnifiedType
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetHrisStaffingEntitiesPositiveResponseUnifiedType
11
+ end
@@ -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::InlineAssessmentOrderReceivedWebhookPayloadHiringTeamRole), { '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::InlineAssessmentOrderReceivedWebhookPayloadHiringTeamRole], 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::InlineAssessmentOrderReceivedWebhookPayloadHiringTeamRole], 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::InlineAssessmentOrderReceivedWebhookPayloadHiringTeam
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
@@ -77,6 +77,7 @@ module Kombo
77
77
  PARADOX = new('paradox')
78
78
  HEYRECRUIT = new('heyrecruit')
79
79
  RECRUHR = new('recruhr')
80
+ RECRUITCRM = new('recruitcrm')
80
81
  JAZZHR = new('jazzhr')
81
82
  BITE = new('bite')
82
83
  HOMERUN = new('homerun')
@@ -106,6 +107,7 @@ module Kombo
106
107
  BREEZYHR = new('breezyhr')
107
108
  FLATCHR = new('flatchr')
108
109
  DAYFORCE = new('dayforce')
110
+ DIGITALRECRUITERS = new('digitalrecruiters')
109
111
  APPLICANTSTACK = new('applicantstack')
110
112
  REACHMEE = new('reachmee')
111
113
  TALENTADORE = new('talentadore')
@@ -154,6 +156,7 @@ module Kombo
154
156
  LATTICETALENT = new('latticetalent')
155
157
  HOORAYHR = new('hoorayhr')
156
158
  TRINET = new('trinet')
159
+ TRINETPEO = new('trinetpeo')
157
160
  NAMELY = new('namely')
158
161
  PAYCOM = new('paycom')
159
162
  INSPERITY = new('insperity')
@@ -190,6 +193,7 @@ module Kombo
190
193
  SFTP = new('sftp')
191
194
  SFTPFETCH = new('sftpfetch')
192
195
  THREE_HUNDRED_AND_SIXTYLEARNING = new('360learning')
196
+ TALENTLMS = new('talentlms')
193
197
  UDEMY = new('udemy')
194
198
  LINKEDINLEARNING = new('linkedinlearning')
195
199
  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 JobRole
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # 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.
16
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
17
+ # The label of the role.
18
+ field :remote_label, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
19
+ # Whether the role applies globally or is scoped to a specific job.
20
+ field :scope, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseScope), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('scope'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsJobsPositiveResponseScope, false) } }
21
+ # Unified role type if Kombo can map it.
22
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsJobsPositiveResponseUnifiedType, false) } }
23
+
24
+ sig { params(remote_id: T.nilable(::String), remote_label: T.nilable(::String), scope: T.nilable(Models::Shared::GetAtsJobsPositiveResponseScope), unified_type: T.nilable(Models::Shared::GetAtsJobsPositiveResponseUnifiedType)).void }
25
+ def initialize(remote_id: nil, remote_label: nil, scope: nil, unified_type: nil)
26
+ @remote_id = remote_id
27
+ @remote_label = remote_label
28
+ @scope = scope
29
+ @unified_type = unified_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 @remote_id == other.remote_id
36
+ return false unless @remote_label == other.remote_label
37
+ return false unless @scope == other.scope
38
+ return false unless @unified_type == other.unified_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::JobRole
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::JobRole
11
+ def remote_id(); end
12
+ def remote_id=(str_); end
13
+ def remote_label(); end
14
+ def remote_label=(str_); end
15
+ def scope(); end
16
+ def scope=(str_); end
17
+ def unified_type(); end
18
+ def unified_type=(str_); end
19
+ end
@@ -13,6 +13,7 @@ module Kombo
13
13
 
14
14
  enums do
15
15
  PLATFORM_RATE_LIMIT_EXCEEDED = new('PLATFORM.RATE_LIMIT_EXCEEDED')
16
+ PLATFORM_CONCURRENCY_LIMIT_EXCEEDED = new('PLATFORM.CONCURRENCY_LIMIT_EXCEEDED')
16
17
  PLATFORM_INTEGRATION_NOT_FOUND = new('PLATFORM.INTEGRATION_NOT_FOUND')
17
18
  PLATFORM_INPUT_INVALID = new('PLATFORM.INPUT_INVALID')
18
19
  PLATFORM_UNKNOWN_ERROR = new('PLATFORM.UNKNOWN_ERROR')
@@ -13,6 +13,7 @@ module Kombo
13
13
 
14
14
  enums do
15
15
  PLATFORM_RATE_LIMIT_EXCEEDED = new('PLATFORM.RATE_LIMIT_EXCEEDED')
16
+ PLATFORM_CONCURRENCY_LIMIT_EXCEEDED = new('PLATFORM.CONCURRENCY_LIMIT_EXCEEDED')
16
17
  PLATFORM_INTEGRATION_NOT_FOUND = new('PLATFORM.INTEGRATION_NOT_FOUND')
17
18
  PLATFORM_INPUT_INVALID = new('PLATFORM.INPUT_INVALID')
18
19
  PLATFORM_UNKNOWN_ERROR = new('PLATFORM.UNKNOWN_ERROR')
@@ -13,6 +13,7 @@ module Kombo
13
13
 
14
14
  enums do
15
15
  PLATFORM_RATE_LIMIT_EXCEEDED = new('PLATFORM.RATE_LIMIT_EXCEEDED')
16
+ PLATFORM_CONCURRENCY_LIMIT_EXCEEDED = new('PLATFORM.CONCURRENCY_LIMIT_EXCEEDED')
16
17
  PLATFORM_INTEGRATION_NOT_FOUND = new('PLATFORM.INTEGRATION_NOT_FOUND')
17
18
  PLATFORM_INPUT_INVALID = new('PLATFORM.INPUT_INVALID')
18
19
  PLATFORM_UNKNOWN_ERROR = new('PLATFORM.UNKNOWN_ERROR')
@@ -0,0 +1,22 @@
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
+ # ModelType - 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.
11
+ class ModelType < T::Enum
12
+
13
+
14
+ enums do
15
+ JOB = new('JOB')
16
+ POSITION = new('POSITION')
17
+ REQUISITION = new('REQUISITION')
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -2,10 +2,10 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
 
5
- class Kombo::Models::Shared::GroupType
5
+ class Kombo::Models::Shared::ModelType
6
6
  extend ::Crystalline::MetadataFields::ClassMethods
7
7
  end
8
8
 
9
9
 
10
- class Kombo::Models::Shared::GroupType
10
+ class Kombo::Models::Shared::ModelType
11
11
  end
@@ -24,6 +24,7 @@ module Kombo
24
24
  HRIS_EMPLOYEE_DOCUMENT_CATEGORIES = new('hris_employee_document_categories')
25
25
  HRIS_PERFORMANCE_REVIEWS = new('hris_performance_reviews')
26
26
  HRIS_PERFORMANCE_REVIEW_CYCLES = new('hris_performance_review_cycles')
27
+ HRIS_STAFFING_ENTITIES = new('hris_staffing_entities')
27
28
  ATS_USERS = new('ats_users')
28
29
  ATS_JOBS = new('ats_jobs')
29
30
  ATS_JOB_POSTINGS = new('ats_job_postings')
@@ -35,6 +36,7 @@ module Kombo
35
36
  ATS_INTERVIEWS = new('ats_interviews')
36
37
  ATS_OFFERS = new('ats_offers')
37
38
  ATS_REJECTION_REASONS = new('ats_rejection_reasons')
39
+ ATS_ROLES = new('ats_roles')
38
40
  LMS_USERS = new('lms_users')
39
41
  LMS_COURSE_PROVIDERS = new('lms_course_providers')
40
42
  LMS_SKILLS = new('lms_skills')
@@ -42,10 +44,15 @@ module Kombo
42
44
  LMS_COURSE_REVISIONS = new('lms_course_revisions')
43
45
  LMS_COURSE_PROGRESSIONS = new('lms_course_progressions')
44
46
  HRIS_JOIN_EMPLOYEES_TEAMS = new('hris_join_employees_teams')
47
+ HRIS_JOIN_STAFFING_ENTITIES_LOCATIONS = new('hris_join_staffing_entities_locations')
48
+ HRIS_JOIN_STAFFING_ENTITIES_LEGAL_ENTITIES = new('hris_join_staffing_entities_legal_entities')
49
+ HRIS_JOIN_STAFFING_ENTITIES_GROUPS = new('hris_join_staffing_entities_groups')
45
50
  ATS_JOIN_CANDIDATES_TAGS = new('ats_join_candidates_tags')
46
51
  ATS_JOIN_JOBS_APPLICATION_STAGES = new('ats_join_jobs_application_stages')
47
52
  ATS_JOIN_JOBS_SCREENING_QUESTIONS = new('ats_join_jobs_screening_questions')
53
+ ATS_JOIN_USER_JOB_ROLE_ASSIGNMENTS = new('ats_join_user_job_role_assignments')
48
54
  ATS_JOIN_JOBS_USERS = new('ats_join_jobs_users')
55
+ ATS_JOIN_USERS_ROLES = new('ats_join_users_roles')
49
56
  ATS_JOIN_INTERVIEWS_USERS = new('ats_join_interviews_users')
50
57
  LMS_JOIN_REVISIONS_SKILLS = new('lms_join_revisions_skills')
51
58
  end
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Shared
10
+ # Lever specific remote fields for the note.
11
+ class PostAtsApplicationsApplicationIdNotesRequestBodyLever
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token.
16
+ field :perform_as, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('perform_as') } }
17
+
18
+ sig { params(perform_as: T.nilable(::String)).void }
19
+ def initialize(perform_as: nil)
20
+ @perform_as = perform_as
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @perform_as == other.perform_as
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever
11
+ def perform_as(); end
12
+ def perform_as=(str_); end
13
+ end
@@ -20,15 +20,18 @@ module Kombo
20
20
  field :recruitee, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('recruitee') } }
21
21
  # Bullhorn specific remote fields for the note.
22
22
  field :bullhorn, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('bullhorn') } }
23
+ # Lever specific remote fields for the note.
24
+ field :lever, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('lever') } }
23
25
  # Workable specific remote fields for ATS actions.
24
26
  field :workable, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('workable') } }
25
27
 
26
- sig { params(teamtailor: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse), recruitee: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), bullhorn: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), workable: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable)).void }
27
- def initialize(teamtailor: nil, greenhouse: nil, recruitee: nil, bullhorn: nil, workable: nil)
28
+ sig { params(teamtailor: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse), recruitee: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), bullhorn: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), lever: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable)).void }
29
+ def initialize(teamtailor: nil, greenhouse: nil, recruitee: nil, bullhorn: nil, lever: nil, workable: nil)
28
30
  @teamtailor = teamtailor
29
31
  @greenhouse = greenhouse
30
32
  @recruitee = recruitee
31
33
  @bullhorn = bullhorn
34
+ @lever = lever
32
35
  @workable = workable
33
36
  end
34
37
 
@@ -39,6 +42,7 @@ module Kombo
39
42
  return false unless @greenhouse == other.greenhouse
40
43
  return false unless @recruitee == other.recruitee
41
44
  return false unless @bullhorn == other.bullhorn
45
+ return false unless @lever == other.lever
42
46
  return false unless @workable == other.workable
43
47
  true
44
48
  end
@@ -16,6 +16,8 @@ class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRem
16
16
  def recruitee=(str_); end
17
17
  def bullhorn(); end
18
18
  def bullhorn=(str_); end
19
+ def lever(); end
20
+ def lever=(str_); end
19
21
  def workable(); end
20
22
  def workable=(str_); end
21
23
  end
@@ -0,0 +1,48 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Shared
10
+ # The consent decisions for the candidate. SmartRecruiters supports two consent models: 'Single' (use the `SINGLE` key) and 'Separated' (use `SMART_RECRUIT`, `SMART_CRM`, `SMART_MESSAGE_SMS`, and/or `SMART_MESSAGE_WHATSAPP` keys). When this field is provided, it takes precedence over the `gdpr_consent` field for the `consentDecisions` property. See: https://developers.smartrecruiters.com/docs/partners-post-an-application
11
+ class PostAtsCandidatesRequestBodyConsentDecisions
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+
16
+ field :single, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('SINGLE') } }
17
+
18
+ field :smart_recruit, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('SMART_RECRUIT') } }
19
+
20
+ field :smart_crm, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('SMART_CRM') } }
21
+
22
+ field :smart_message_sms, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('SMART_MESSAGE_SMS') } }
23
+
24
+ field :smart_message_whatsapp, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('SMART_MESSAGE_WHATSAPP') } }
25
+
26
+ sig { params(single: T.nilable(T::Boolean), smart_recruit: T.nilable(T::Boolean), smart_crm: T.nilable(T::Boolean), smart_message_sms: T.nilable(T::Boolean), smart_message_whatsapp: T.nilable(T::Boolean)).void }
27
+ def initialize(single: nil, smart_recruit: nil, smart_crm: nil, smart_message_sms: nil, smart_message_whatsapp: nil)
28
+ @single = single
29
+ @smart_recruit = smart_recruit
30
+ @smart_crm = smart_crm
31
+ @smart_message_sms = smart_message_sms
32
+ @smart_message_whatsapp = smart_message_whatsapp
33
+ end
34
+
35
+ sig { params(other: T.untyped).returns(T::Boolean) }
36
+ def ==(other)
37
+ return false unless other.is_a? self.class
38
+ return false unless @single == other.single
39
+ return false unless @smart_recruit == other.smart_recruit
40
+ return false unless @smart_crm == other.smart_crm
41
+ return false unless @smart_message_sms == other.smart_message_sms
42
+ return false unless @smart_message_whatsapp == other.smart_message_whatsapp
43
+ true
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,21 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyConsentDecisions
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyConsentDecisions
11
+ def single(); end
12
+ def single=(str_); end
13
+ def smart_recruit(); end
14
+ def smart_recruit=(str_); end
15
+ def smart_crm(); end
16
+ def smart_crm=(str_); end
17
+ def smart_message_sms(); end
18
+ def smart_message_sms=(str_); end
19
+ def smart_message_whatsapp(); end
20
+ def smart_message_whatsapp=(str_); end
21
+ end
@@ -14,16 +14,20 @@ module Kombo
14
14
 
15
15
  # Fields that we will pass through to d.vinci's application object. This API is used: https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html#jobs__id__applyApi_post
16
16
  field :application, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('application') } }
17
+ # Fields that we will pass through to d.vinci's candidate/application payload as top-level fields (e.g., dateOfBirth).
18
+ field :candidate, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate') } }
17
19
 
18
- sig { params(application: T.nilable(T::Hash[Symbol, ::Object])).void }
19
- def initialize(application: nil)
20
+ sig { params(application: T.nilable(T::Hash[Symbol, ::Object]), candidate: T.nilable(T::Hash[Symbol, ::Object])).void }
21
+ def initialize(application: nil, candidate: nil)
20
22
  @application = application
23
+ @candidate = candidate
21
24
  end
22
25
 
23
26
  sig { params(other: T.untyped).returns(T::Boolean) }
24
27
  def ==(other)
25
28
  return false unless other.is_a? self.class
26
29
  return false unless @application == other.application
30
+ return false unless @candidate == other.candidate
27
31
  true
28
32
  end
29
33
  end
@@ -10,4 +10,6 @@ end
10
10
  class Kombo::Models::Shared::PostAtsCandidatesRequestBodyDvinci
11
11
  def application(); end
12
12
  def application=(str_); end
13
+ def candidate(); end
14
+ def candidate=(str_); end
13
15
  end
@@ -48,6 +48,8 @@ module Kombo
48
48
  field :avature, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyAvature), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('avature') } }
49
49
  # Fields specific to Recruitee.
50
50
  field :recruitee, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyRecruitee), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('recruitee') } }
51
+ # Fields specific to Rexx.
52
+ field :rexx, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyRexx), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('rexx') } }
51
53
  # Fields specific to Abacus Umantis.
52
54
  field :umantis, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyUmantis), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('umantis') } }
53
55
  # Fields specific to P&I Loga.
@@ -57,8 +59,8 @@ module Kombo
57
59
  # Fields specific to Coveto REST.
58
60
  field :covetorest, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyCovetorest), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('covetorest') } }
59
61
 
60
- sig { params(successfactors: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySuccessfactors), personio: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPersonio), talentsoft: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentsoft), teamtailor: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhouse), lever: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkable), workday: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkday), zohorecruit: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyZohorecruit), bullhorn: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyBullhorn), smartrecruiters: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySmartrecruiters), talentadore: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentadore), guidecom: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGuidecom), dvinci: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyDvinci), hrworks: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyHrworks), jobylon: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyJobylon), avature: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyAvature), recruitee: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRecruitee), umantis: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyUmantis), piloga: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPiloga), pinpoint: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPinpoint), covetorest: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyCovetorest)).void }
61
- def initialize(successfactors: nil, personio: nil, talentsoft: nil, teamtailor: nil, greenhouse: nil, lever: nil, workable: nil, workday: nil, zohorecruit: nil, bullhorn: nil, smartrecruiters: nil, talentadore: nil, guidecom: nil, dvinci: nil, hrworks: nil, jobylon: nil, avature: nil, recruitee: nil, umantis: nil, piloga: nil, pinpoint: nil, covetorest: nil)
62
+ sig { params(successfactors: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySuccessfactors), personio: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPersonio), talentsoft: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentsoft), teamtailor: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGreenhouse), lever: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkable), workday: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyWorkday), zohorecruit: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyZohorecruit), bullhorn: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyBullhorn), smartrecruiters: T.nilable(Models::Shared::PostAtsCandidatesRequestBodySmartrecruiters), talentadore: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyTalentadore), guidecom: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyGuidecom), dvinci: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyDvinci), hrworks: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyHrworks), jobylon: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyJobylon), avature: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyAvature), recruitee: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRecruitee), rexx: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyRexx), umantis: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyUmantis), piloga: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPiloga), pinpoint: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyPinpoint), covetorest: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyCovetorest)).void }
63
+ def initialize(successfactors: nil, personio: nil, talentsoft: nil, teamtailor: nil, greenhouse: nil, lever: nil, workable: nil, workday: nil, zohorecruit: nil, bullhorn: nil, smartrecruiters: nil, talentadore: nil, guidecom: nil, dvinci: nil, hrworks: nil, jobylon: nil, avature: nil, recruitee: nil, rexx: nil, umantis: nil, piloga: nil, pinpoint: nil, covetorest: nil)
62
64
  @successfactors = successfactors
63
65
  @personio = personio
64
66
  @talentsoft = talentsoft
@@ -77,6 +79,7 @@ module Kombo
77
79
  @jobylon = jobylon
78
80
  @avature = avature
79
81
  @recruitee = recruitee
82
+ @rexx = rexx
80
83
  @umantis = umantis
81
84
  @piloga = piloga
82
85
  @pinpoint = pinpoint
@@ -104,6 +107,7 @@ module Kombo
104
107
  return false unless @jobylon == other.jobylon
105
108
  return false unless @avature == other.avature
106
109
  return false unless @recruitee == other.recruitee
110
+ return false unless @rexx == other.rexx
107
111
  return false unless @umantis == other.umantis
108
112
  return false unless @piloga == other.piloga
109
113
  return false unless @pinpoint == other.pinpoint
@@ -44,6 +44,8 @@ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRemoteFields
44
44
  def avature=(str_); end
45
45
  def recruitee(); end
46
46
  def recruitee=(str_); end
47
+ def rexx(); end
48
+ def rexx=(str_); end
47
49
  def umantis(); end
48
50
  def umantis=(str_); end
49
51
  def piloga(); end
@@ -0,0 +1,32 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Shared
10
+ # Fields specific to Rexx.
11
+ class PostAtsCandidatesRequestBodyRexx
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # Fields that we will pass through to Rexx's application form fields.
16
+ field :candidate, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate') } }
17
+
18
+ sig { params(candidate: T.nilable(T::Hash[Symbol, ::Object])).void }
19
+ def initialize(candidate: nil)
20
+ @candidate = candidate
21
+ end
22
+
23
+ sig { params(other: T.untyped).returns(T::Boolean) }
24
+ def ==(other)
25
+ return false unless other.is_a? self.class
26
+ return false unless @candidate == other.candidate
27
+ true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,13 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRexx
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::PostAtsCandidatesRequestBodyRexx
11
+ def candidate(); end
12
+ def candidate=(str_); end
13
+ end
@@ -22,12 +22,15 @@ module Kombo
22
22
  field :candidate_without_questions, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate_without_questions') } }
23
23
  # Fields that we will pass through to the SmartRecruiters's `Candidate` object. This API is used: https://developers.smartrecruiters.com/reference/createcandidate-1
24
24
  field :candidate, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate') } }
25
+ # The consent decisions for the candidate. SmartRecruiters supports two consent models: 'Single' (use the `SINGLE` key) and 'Separated' (use `SMART_RECRUIT`, `SMART_CRM`, `SMART_MESSAGE_SMS`, and/or `SMART_MESSAGE_WHATSAPP` keys). When this field is provided, it takes precedence over the `gdpr_consent` field for the `consentDecisions` property. See: https://developers.smartrecruiters.com/docs/partners-post-an-application
26
+ field :consent_decisions, Crystalline::Nilable.new(Models::Shared::PostAtsCandidatesRequestBodyConsentDecisions), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('consent_decisions') } }
25
27
 
26
- sig { params(candidate_with_questions: T.nilable(T::Hash[Symbol, ::Object]), candidate_without_questions: T.nilable(T::Hash[Symbol, ::Object]), candidate: T.nilable(T::Hash[Symbol, ::Object])).void }
27
- def initialize(candidate_with_questions: nil, candidate_without_questions: nil, candidate: nil)
28
+ sig { params(candidate_with_questions: T.nilable(T::Hash[Symbol, ::Object]), candidate_without_questions: T.nilable(T::Hash[Symbol, ::Object]), candidate: T.nilable(T::Hash[Symbol, ::Object]), consent_decisions: T.nilable(Models::Shared::PostAtsCandidatesRequestBodyConsentDecisions)).void }
29
+ def initialize(candidate_with_questions: nil, candidate_without_questions: nil, candidate: nil, consent_decisions: nil)
28
30
  @candidate_with_questions = candidate_with_questions
29
31
  @candidate_without_questions = candidate_without_questions
30
32
  @candidate = candidate
33
+ @consent_decisions = consent_decisions
31
34
  end
32
35
 
33
36
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -36,6 +39,7 @@ module Kombo
36
39
  return false unless @candidate_with_questions == other.candidate_with_questions
37
40
  return false unless @candidate_without_questions == other.candidate_without_questions
38
41
  return false unless @candidate == other.candidate
42
+ return false unless @consent_decisions == other.consent_decisions
39
43
  true
40
44
  end
41
45
  end
@@ -14,4 +14,6 @@ class Kombo::Models::Shared::PostAtsCandidatesRequestBodySmartrecruiters
14
14
  def candidate_without_questions=(str_); end
15
15
  def candidate(); end
16
16
  def candidate=(str_); end
17
+ def consent_decisions(); end
18
+ def consent_decisions=(str_); end
17
19
  end