kombo 1.0.4 → 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.
- checksums.yaml +4 -4
- data/lib/kombo/ats.rb +157 -1
- data/lib/kombo/general.rb +18 -5
- data/lib/kombo/hris.rb +165 -8
- data/lib/kombo/models/operations/getatsapplications_request.rb +9 -0
- data/lib/kombo/models/operations/getatsapplicationstages_request.rb +2 -0
- data/lib/kombo/models/operations/getatscandidates_request.rb +8 -0
- data/lib/kombo/models/operations/getatsinterviews_request.rb +8 -0
- data/lib/kombo/models/operations/getatsjobs_request.rb +11 -0
- data/lib/kombo/models/operations/getatsoffers_request.rb +6 -0
- data/lib/kombo/models/operations/getatsrejectionreasons_request.rb +2 -0
- data/lib/kombo/models/operations/getatsroles_request.rb +75 -0
- data/lib/kombo/models/operations/getatsroles_request.rbi +29 -0
- data/lib/kombo/models/operations/getatsroles_response.rb +56 -0
- data/lib/kombo/models/operations/getatsroles_response.rbi +19 -0
- data/lib/kombo/models/operations/getatstags_request.rb +2 -0
- data/lib/kombo/models/operations/getatsusers_request.rb +5 -0
- data/lib/kombo/models/operations/gethrisabsences_request.rb +4 -0
- data/lib/kombo/models/operations/gethrisabsencetypes_request.rb +2 -0
- data/lib/kombo/models/operations/gethrisemployeedocumentcategories_request.rb +2 -0
- data/lib/kombo/models/operations/gethrisemployees_request.rb +10 -0
- data/lib/kombo/models/operations/gethrisemployments_request.rb +2 -0
- data/lib/kombo/models/operations/gethrisgroups_request.rb +2 -0
- data/lib/kombo/models/operations/gethrislegalentities_request.rb +2 -0
- data/lib/kombo/models/operations/gethrislocations_request.rb +2 -0
- data/lib/kombo/models/operations/gethrisperformancereviewcycles_request.rb +2 -0
- data/lib/kombo/models/operations/gethrisperformancereviews_request.rb +6 -0
- data/lib/kombo/models/operations/gethrisstaffingentities_request.rb +85 -0
- data/lib/kombo/models/operations/gethrisstaffingentities_request.rbi +31 -0
- data/lib/kombo/models/operations/gethrisstaffingentities_response.rb +56 -0
- data/lib/kombo/models/operations/gethrisstaffingentities_response.rbi +19 -0
- data/lib/kombo/models/operations/gethristimeoffbalances_request.rb +4 -0
- data/lib/kombo/models/operations/gethristimesheets_request.rb +2 -0
- data/lib/kombo/models/operations.rb +4 -0
- data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team.rb +6 -6
- data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team.rbi +2 -2
- data/lib/kombo/models/shared/assessmentorderreceivedwebhookpayload_hiring_team_role.rb +3 -0
- data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team.rb +6 -6
- data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team.rbi +2 -2
- data/lib/kombo/models/shared/getassessmentordersopenpositiveresponse_hiring_team_role.rb +3 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb +13 -3
- data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi +2 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb +3 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb +21 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi +11 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb +25 -0
- data/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi +11 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb +58 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi +25 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb +21 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi +11 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb +25 -0
- data/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi +11 -0
- data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb +10 -2
- data/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi +2 -0
- data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb +21 -0
- data/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi +11 -0
- data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb +25 -0
- data/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi +11 -0
- data/lib/kombo/models/shared/{group.rb → gethrisemployeespositiveresponse_group.rb} +3 -3
- data/lib/kombo/models/shared/{group.rbi → gethrisemployeespositiveresponse_group.rbi} +2 -2
- data/lib/kombo/models/shared/{group_type.rb → gethrisemployeespositiveresponse_group_type.rb} +2 -2
- data/lib/kombo/models/shared/gethrisemployeespositiveresponse_group_type.rbi +11 -0
- data/lib/kombo/models/shared/{legal_entity.rb → gethrisemployeespositiveresponse_legal_entity.rb} +1 -1
- data/lib/kombo/models/shared/{legal_entity.rbi → gethrisemployeespositiveresponse_legal_entity.rbi} +2 -2
- data/lib/kombo/models/shared/gethrisemployeespositiveresponse_result.rb +3 -3
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rb +39 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse.rbi +15 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rb +36 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_data.rbi +15 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rb +36 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_employment_type.rbi +15 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rb +44 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_group.rbi +19 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rb +40 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_legal_entity.rbi +17 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rb +44 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_location.rbi +19 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rb +110 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_result.rbi +47 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rb +31 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_status.rbi +11 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rb +22 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_type.rbi +11 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rb +27 -0
- data/lib/kombo/models/shared/gethrisstaffingentitiespositiveresponse_unified_type.rbi +11 -0
- data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rb +6 -6
- data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team.rbi +2 -2
- data/lib/kombo/models/shared/inlineassessmentorderreceivedwebhookpayload_hiring_team_role.rb +3 -0
- data/lib/kombo/models/shared/integration_tool.rb +4 -0
- data/lib/kombo/models/shared/job_role.rb +44 -0
- data/lib/kombo/models/shared/job_role.rbi +19 -0
- data/lib/kombo/models/shared/komboatserror_code.rb +1 -0
- data/lib/kombo/models/shared/kombogeneralerror_code.rb +1 -0
- data/lib/kombo/models/shared/kombohriserror_code.rb +1 -0
- data/lib/kombo/models/shared/model_type.rb +22 -0
- data/lib/kombo/models/shared/{group_type.rbi → model_type.rbi} +2 -2
- data/lib/kombo/models/shared/name.rb +7 -0
- data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb +32 -0
- data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi +13 -0
- data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb +6 -2
- data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi +2 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rb +48 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_consent_decisions.rbi +21 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rb +6 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_dvinci.rbi +2 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +6 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +2 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rb +32 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_rexx.rbi +13 -0
- data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rb +6 -2
- data/lib/kombo/models/shared/postatscandidatesrequestbody_smartrecruiters.rbi +2 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rb +48 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_consent_decisions.rbi +21 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rb +6 -2
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_dvinci.rbi +2 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +6 -2
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +2 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rb +32 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_rexx.rbi +13 -0
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rb +6 -2
- data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_smartrecruiters.rbi +2 -0
- data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb +32 -0
- data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi +13 -0
- data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb +6 -2
- data/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi +2 -0
- data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rb +6 -2
- data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rbi +2 -0
- data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rb +36 -0
- data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_workday.rbi +15 -0
- data/lib/kombo/models/shared/step_type.rb +21 -0
- data/lib/kombo/models/shared/step_type.rbi +11 -0
- data/lib/kombo/models/shared/system_role.rb +44 -0
- data/lib/kombo/models/shared/system_role.rbi +19 -0
- data/lib/kombo/models/shared.rb +33 -3
- data/lib/kombo/sdkconfiguration.rb +2 -2
- metadata +76 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f7311b18e322828b293202246d4c8517a11cad908a63d1b959d287dac369ef0b
|
|
4
|
+
data.tar.gz: 93331b5c428af0fb704eff1c5fd0396552ad9f1d9d05c033bf936c9a9250daaf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 153c1d876d17d156e7bbacf9555a56d298d2bd78dddddf16a4c6bbdf1e5aa093cc314328a324219233b122d848c5a32d9e1ae630679388ced72967d159799237
|
|
7
|
+
data.tar.gz: 6e07c6d015d2b0512e0b96041b14187970f3f9b9dba5d3dcf4e1894c9c60b2f8a159e07abec5fa0527b211af0ab85fbdda6bf9bdda975f72eb5af7635b33db8d
|
data/lib/kombo/ats.rb
CHANGED
|
@@ -221,7 +221,8 @@ module Kombo
|
|
|
221
221
|
#
|
|
222
222
|
# ```json
|
|
223
223
|
# {
|
|
224
|
-
# "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup"
|
|
224
|
+
# "stage_id": "3PJ8PZhZZa1eEdd2DtPNtVup",
|
|
225
|
+
# "remote_fields": {}
|
|
225
226
|
# }
|
|
226
227
|
# ```
|
|
227
228
|
request = Models::Operations::PutAtsApplicationsApplicationIdStageRequest.new(
|
|
@@ -3061,6 +3062,161 @@ module Kombo
|
|
|
3061
3062
|
end
|
|
3062
3063
|
|
|
3063
3064
|
|
|
3065
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), scopes: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAtsRolesResponse) }
|
|
3066
|
+
def get_roles(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, scopes: nil, timeout_ms: nil)
|
|
3067
|
+
# get_roles - Get roles
|
|
3068
|
+
# Retrieve all roles.
|
|
3069
|
+
#
|
|
3070
|
+
# Visit our in-depth guide about [roles](/ats/features/roles) to learn more.
|
|
3071
|
+
#
|
|
3072
|
+
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
3073
|
+
request = Models::Operations::GetAtsRolesRequest.new(
|
|
3074
|
+
integration_id: integration_id,
|
|
3075
|
+
cursor: cursor,
|
|
3076
|
+
page_size: page_size,
|
|
3077
|
+
updated_after: updated_after,
|
|
3078
|
+
include_deleted: include_deleted,
|
|
3079
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
3080
|
+
ids: ids,
|
|
3081
|
+
remote_ids: remote_ids,
|
|
3082
|
+
scopes: scopes
|
|
3083
|
+
)
|
|
3084
|
+
url, params = @sdk_configuration.get_server_details
|
|
3085
|
+
base_url = Utils.template_url(url, params)
|
|
3086
|
+
url = "#{base_url}/ats/roles"
|
|
3087
|
+
headers = Utils.get_headers(request, @sdk_configuration.globals)
|
|
3088
|
+
headers = T.cast(headers, T::Hash[String, String])
|
|
3089
|
+
query_params = Utils.get_query_params(Models::Operations::GetAtsRolesRequest, request, nil, @sdk_configuration.globals)
|
|
3090
|
+
headers['Accept'] = 'application/json'
|
|
3091
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
|
3092
|
+
|
|
3093
|
+
security = @sdk_configuration.security_source&.call
|
|
3094
|
+
|
|
3095
|
+
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
3096
|
+
timeout ||= @sdk_configuration.timeout
|
|
3097
|
+
|
|
3098
|
+
|
|
3099
|
+
connection = @sdk_configuration.client
|
|
3100
|
+
|
|
3101
|
+
hook_ctx = SDKHooks::HookContext.new(
|
|
3102
|
+
config: @sdk_configuration,
|
|
3103
|
+
base_url: base_url,
|
|
3104
|
+
oauth2_scopes: nil,
|
|
3105
|
+
operation_id: 'GetAtsRoles',
|
|
3106
|
+
security_source: @sdk_configuration.security_source
|
|
3107
|
+
)
|
|
3108
|
+
|
|
3109
|
+
error = T.let(nil, T.nilable(StandardError))
|
|
3110
|
+
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
3111
|
+
|
|
3112
|
+
|
|
3113
|
+
begin
|
|
3114
|
+
http_response = T.must(connection).get(url) do |req|
|
|
3115
|
+
req.headers.merge!(headers)
|
|
3116
|
+
req.options.timeout = timeout unless timeout.nil?
|
|
3117
|
+
req.params = query_params
|
|
3118
|
+
Utils.configure_request_security(req, security)
|
|
3119
|
+
|
|
3120
|
+
@sdk_configuration.hooks.before_request(
|
|
3121
|
+
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
|
|
3122
|
+
hook_ctx: hook_ctx
|
|
3123
|
+
),
|
|
3124
|
+
request: req
|
|
3125
|
+
)
|
|
3126
|
+
end
|
|
3127
|
+
rescue StandardError => e
|
|
3128
|
+
error = e
|
|
3129
|
+
ensure
|
|
3130
|
+
if http_response.nil? || Utils.error_status?(http_response.status)
|
|
3131
|
+
http_response = @sdk_configuration.hooks.after_error(
|
|
3132
|
+
error: error,
|
|
3133
|
+
hook_ctx: SDKHooks::AfterErrorHookContext.new(
|
|
3134
|
+
hook_ctx: hook_ctx
|
|
3135
|
+
),
|
|
3136
|
+
response: http_response
|
|
3137
|
+
)
|
|
3138
|
+
else
|
|
3139
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3140
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3141
|
+
hook_ctx: hook_ctx
|
|
3142
|
+
),
|
|
3143
|
+
response: http_response
|
|
3144
|
+
)
|
|
3145
|
+
end
|
|
3146
|
+
|
|
3147
|
+
if http_response.nil?
|
|
3148
|
+
raise error if !error.nil?
|
|
3149
|
+
raise 'no response'
|
|
3150
|
+
end
|
|
3151
|
+
end
|
|
3152
|
+
|
|
3153
|
+
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
3154
|
+
if Utils.match_status_code(http_response.status, ['200'])
|
|
3155
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
3156
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3157
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3158
|
+
hook_ctx: hook_ctx
|
|
3159
|
+
),
|
|
3160
|
+
response: http_response
|
|
3161
|
+
)
|
|
3162
|
+
response_data = http_response.env.response_body
|
|
3163
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetAtsRolesPositiveResponse)
|
|
3164
|
+
response = Models::Operations::GetAtsRolesResponse.new(
|
|
3165
|
+
status_code: http_response.status,
|
|
3166
|
+
content_type: content_type,
|
|
3167
|
+
raw_response: http_response,
|
|
3168
|
+
get_ats_roles_positive_response: T.unsafe(obj)
|
|
3169
|
+
)
|
|
3170
|
+
sdk = self
|
|
3171
|
+
|
|
3172
|
+
response.next_page = proc do
|
|
3173
|
+
next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
|
|
3174
|
+
if next_cursor.nil?
|
|
3175
|
+
next nil
|
|
3176
|
+
else
|
|
3177
|
+
next_cursor = next_cursor[0]
|
|
3178
|
+
if next_cursor.nil?
|
|
3179
|
+
next nil
|
|
3180
|
+
end
|
|
3181
|
+
end
|
|
3182
|
+
|
|
3183
|
+
sdk.get_roles(
|
|
3184
|
+
integration_id: integration_id,
|
|
3185
|
+
cursor: next_cursor,
|
|
3186
|
+
page_size: page_size,
|
|
3187
|
+
updated_after: updated_after,
|
|
3188
|
+
include_deleted: include_deleted,
|
|
3189
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
3190
|
+
ids: ids,
|
|
3191
|
+
remote_ids: remote_ids,
|
|
3192
|
+
scopes: scopes
|
|
3193
|
+
)
|
|
3194
|
+
end
|
|
3195
|
+
|
|
3196
|
+
|
|
3197
|
+
return response
|
|
3198
|
+
else
|
|
3199
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
3200
|
+
end
|
|
3201
|
+
else
|
|
3202
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
3203
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
3204
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
3205
|
+
hook_ctx: hook_ctx
|
|
3206
|
+
),
|
|
3207
|
+
response: http_response
|
|
3208
|
+
)
|
|
3209
|
+
response_data = http_response.env.response_body
|
|
3210
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboAtsError)
|
|
3211
|
+
obj.raw_response = http_response
|
|
3212
|
+
raise obj
|
|
3213
|
+
else
|
|
3214
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
3215
|
+
end
|
|
3216
|
+
end
|
|
3217
|
+
end
|
|
3218
|
+
|
|
3219
|
+
|
|
3064
3220
|
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAtsOffersResponse) }
|
|
3065
3221
|
def get_offers(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, timeout_ms: nil)
|
|
3066
3222
|
# get_offers - Get offers
|
data/lib/kombo/general.rb
CHANGED
|
@@ -314,6 +314,7 @@ module Kombo
|
|
|
314
314
|
# |BoondManager|`boondmanager/api`|BoondManager [REST API](https://ui.boondmanager.com/administrator/developer/apisandbox). We automatically authenticate all requests and use `https://ui.boondmanager.com/api` as the base URL.|
|
|
315
315
|
# |Breezy HR|`breezyhr/v3`|[BreezyHR's v3 API](https://developer.breezy.hr/reference/overview). We automatically authenticate all requests and use "https://api.breezy.hr/v3/" as the base URL.|
|
|
316
316
|
# |Bullhorn|`bullhorn/default`|[Bullhorn's API](https://bullhorn.github.io/rest-api-docs/index.html). We automatically use the right `https://rest.bullhornstaffing.com/rest-services/\{corpToken\}` base URL.|
|
|
317
|
+
# |CareerPlug|`careerplug/api`|We use `https://api.careerplug.com` as the base URL. Find the official docs [here](https://api.careerplug.com/docs#api).|
|
|
317
318
|
# |Carerix|`carerix/api`|Carerix [REST API](https://docs.carerix.io/rest/introduction). We automatically authenticate all requests and use `https://api.carerix.com` as the base URL. Please note that Carerix uses XML for request and response bodies.|
|
|
318
319
|
# |CEGID TalentSoft Customer|`talentsoftcustomer/v1`|Cegid Talentsoft Recruiting FrontOffice API: [API Documentation](https://developers.cegid.com/api-details#api=cegid-talentsoft-recruiting-frontoffice) We automatically authenticate all requests and use `https://\{customer_subdomain\}.talent-soft.com/api/v1` as the base URL.|
|
|
319
320
|
# |CEGID TalentSoft FrontOffice|`talentsoft/v2`|Cegid Talentsoft Recruiting FrontOffice [API](https://developers.cegid.com/api-details). We automatically authenticate all requests using the provided credentials and use `https://\{domain\}/api/v2` as the base URL.|
|
|
@@ -323,9 +324,11 @@ module Kombo
|
|
|
323
324
|
# |Connexys By Bullhorn|`connexys/api`|[Connexy's API](https://api.conexsys.com/client/v2/docs/#section/Overview). We automatically authenticate all requests and use `https://\{connexys_domain\}/` as the base URL.|
|
|
324
325
|
# |Cornerstone OnDemand|`cornerstoneondemand/learning`|Cornerstone's [Learning API](https://csod.dev/reference/learning/). We automatically authenticate all requests using the client ID and secret and use `https://\{your_domain\}.csod.com/services/api` as the base URL.|
|
|
325
326
|
# |Cornerstone OnDemand|`cornerstoneondemand/recruiting`|Cornerstone's [Recruiting API](https://csod.dev/reference/recruiting/). We automatically authenticate all requests using the client ID and secret and use `https://\{your_domain\}.csod.com/services/api` as the base URL.|
|
|
327
|
+
# |Cornerstone TalentLink|`cornerstonetalentlink/apply`|Cornerstone TalentLink's Apply API. We automatically authenticate all requests using the provided credentials and API key, and use `https://apiproxy.shared.lumessetalentlink.com/apply` as the base URL.|
|
|
328
|
+
# |Cornerstone TalentLink|`cornerstonetalentlink/rest`|Cornerstone TalentLink's [REST API](https://developer.lumesse-talenthub.com/rest-api-developers-guide/1.21.33/index.html?page=rest-api&subpage=introduction). We automatically authenticate all requests using the provided credentials and API key, and use `https://apiproxy.shared.lumessetalentlink.com/tlk/rest` as the base URL.|
|
|
326
329
|
# |Coveto (legacy SOAP API)|`coveto/public`|We automatically use `https://\{subdomain\}.coveto.de` as the base URL.|
|
|
327
330
|
# |Coveto (REST API)|`covetorest/v1`|We automatically use `https://\{subdomain\}.coveto.de/public/api/v1` as the base URL. https://demo.coveto.de/swagger-ui/index.html#/|
|
|
328
|
-
# |Crelate|`crelate/api`|Crelate [REST API](https://
|
|
331
|
+
# |Crelate|`crelate/api`|Crelate [REST API](https://app.crelate.com/api3/docs/index.html). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|
|
|
329
332
|
# |d.vinci admin|`dvinciadmin/odata-api`|[DVinci ODATA API](https://dvinci.freshdesk.com/en/support/solutions/articles/75000059523-odata-reporting-api).|
|
|
330
333
|
# |d.vinci admin|`dvinciadmin/rest-api`|[DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html).|
|
|
331
334
|
# |d.vinci|`dvinci/apply-api`|The [DVinci Apply API](https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html). All requests are authenticated by Kombo and use `https://\{dvinci_domain\}/p/\{portal_path\}/` as the base URL.|
|
|
@@ -336,6 +339,7 @@ module Kombo
|
|
|
336
339
|
# |DATEV|`datevhr/hr:payrollreports`|DATEV's [hr:payrollreports](https://developer.datev.de/en/product-detail/hr-payrollreports/2.0.0/overview) API. We automatically authenticate all requests and use `https://hr-payrollreports.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
|
|
337
340
|
# |Dayforce|`dayforce/V1`|[Dayforce's API](https://developers.dayforce.com/Build/Home.aspx). We automatically authenticate all requests and use `\{\{baseUrl\}\}/Api/\{\{clientNamespace\}\}/V1` as the base URL|
|
|
338
341
|
# |Deel|`deel/api`|Deel's [API](https://developer.deel.com/reference/). We automatically authenticate all requests using the provided credentials and use `https://\{api_domain\}/rest` as the base URL.|
|
|
342
|
+
# |Digital Recruiters|`digitalrecruiters/api`|Cegid Digital Recruiters [Talent Acquisition API](https://cegid-hr-developers.talentsoft.net/docs/tutorial-basics/Talent%20Acquisition/Getting%20Started). We automatically authenticate all requests by replacing `:token` in the request URL with your configured access token and use your configured Digital Recruiters domain as the base URL.|
|
|
339
343
|
# |Eightfold|`eightfold/api`|Eightfold's [API](https://apidocs.eightfold.ai/). We automatically authenticate all requests and use `https://apiv2.\{region\}/api/v2/core/` as the base URL.|
|
|
340
344
|
# |Employment Hero|`employmenthero/default`|EmploymentHero [API](https://developer.employmenthero.com/api-references/#icon-book-open-introduction). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.employmenthero.com/api` as the base URL.|
|
|
341
345
|
# |Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests and use `https://\{subdomain\}.eploy.net/api` as the base URL.|
|
|
@@ -352,15 +356,17 @@ module Kombo
|
|
|
352
356
|
# |Greenhouse Job Board|`greenhousejobboard/boards-api`|[Greenhouse Job Board API](https://developers.greenhouse.io/job-board). We automatically authenticate all requests and use 'https://boards-api.greenhouse.io/v1/boards/\{job_board_token\}' as the base URL. Optionally, you can provide a custom job_board_token to use a different job board.|
|
|
353
357
|
# |Greenhouse|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.|
|
|
354
358
|
# |Greenhouse|`greenhouse/harvest`|Greenhouse [Harvest API v1](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v1` as the base URL.|
|
|
359
|
+
# |Gusto|`gusto/v1`|[Gusto API](https://docs.gusto.com/app-integrations/docs/introduction). We automatically authenticate all requests with OAuth and use `\{api_base_url\}/v1` as the base URL (`https://api.gusto.com/v1` in production, `https://api.gusto-demo.com/v1` in development).|
|
|
355
360
|
# |Hailey HR|`haileyhr/api`|Hailey HR's [API](https://api.haileyhr.app/docs/index.html). We automatically authenticate all requests using the provided credentials and use `https://api.haileyhr.app` as the base URL.|
|
|
356
361
|
# |Hansalog|`hansalog/vision`|Hansalog's [Vision API](https://hansalog-vision.document360.io/docs/). We automatically authenticate all requests and use `https://\{subdomain\}.hansalog-cloud.de/vision` as the base URL.|
|
|
357
362
|
# |Haufe Umantis|`umantis/v1`|[Umantis API v1](https://recruitingapp-91005709.umantis.com/api/v1/swagger-ui). We automatically authenticate all requests and use `https://\{subdomain\}.umantis.com/api/v1` as the base URL.|
|
|
358
363
|
# |HeavenHR|`heavenhr/v2`|[HeavenHR API](https://api.heavenhr.com/). We automatically authenticate all requests using the provided credentials and use `https://api.heavenhr.com/api/v2` as the base URL.|
|
|
359
364
|
# |Heyrecruit|`heyrecruit/v2`|[Heyrecruit's v2 API](https://documenter.getpostman.com/view/23241256/2s9YysBLcf#47e271ac-47c8-4c75-9cc6-b8c506e9dad6). We automatically authenticate all requests using the client ID and secret and use `https://app.heyrecruit.de/api/v2` as the base URL.|
|
|
360
|
-
# |HiBob|`hibob/docs`|This passthrough is only used for fetching employee documents in
|
|
365
|
+
# |HiBob|`hibob/docs`|This passthrough is only used for fetching employee documents in HiBob. It is present as a workaround while we are working on a new endpoint for fetching documents in HRIS. It should not be used for any other purpose. We automatically authenticate all requests using the service user credentials and use `https://app.hibob.com/api/docs/employees/` as the base URL.|
|
|
361
366
|
# |HiBob|`hibob/hire`|[HiBob's Hire API](https://apidocs.hibob.com/docs/how-to-integrate-with-ats-hire-api). We automatically authenticate all requests using the hire service user credentials. The base URL is configured during the integration setup.|
|
|
362
|
-
# |HiBob|`hibob/v1`|[
|
|
367
|
+
# |HiBob|`hibob/v1`|[HiBob's v1 API](https://apidocs.hibob.com/reference/get_people). We automatically authenticate all requests using the service user credentials (or, for old integrations, the API key) and use `https://api.hibob.com/v1` as the base URL.|
|
|
363
368
|
# |HoorayHR|`hoorayhr/api`|[HoorayHR API](https://api.hoorayhr.io/documentation/). We automatically authenticate all requests and use `https://api.hoorayhr.io` as the base URL.|
|
|
369
|
+
# |HR Office|`hroffice/soap`|[HROffice SOAP API](https://api.hroffice.nl/HROfficeCoreService.asmx). We automatically authenticate all requests and wrap them in a SOAP envelope. Build the request `Body` with the raw XML parameters for your operation (e.g., `\<languageId\>1\</languageId\>`). Use `/` as your `path`. Set your `method` to `POST`. You need to specify the `api_options` object and set `operation_name` to the SOAP operation you want to call (e.g., `GetAllJobByLanguage`).|
|
|
364
370
|
# |HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.|
|
|
365
371
|
# |HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g., https://`\{base_url\}`/ or https://`\{subdomain\}.hr4you.org`/).|
|
|
366
372
|
# |Humaans|`humaans/api`|Humaans' [API](https://docs.humaans.io/api/). We automatically authenticate all requests using the API key and use `https://app.humaans.io/api` as the base URL.|
|
|
@@ -383,7 +389,8 @@ module Kombo
|
|
|
383
389
|
# |Leapsome|`leapsome/scim`|Leapsome [SCIM API](https://api.leapsome.com/scim/v1/api-docs/). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.leapsome.com/scim/v1` as the base URL.|
|
|
384
390
|
# |Leapsome|`leapsome/v1`|Leapsome [API](https://api.leapsome.com/v1/api-docs/). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.leapsome.com/v1` as the base URL.|
|
|
385
391
|
# |Lever|`lever/v1`|[Lever's v1 API](https://hire.lever.co/developer/documentation). We automatically authenticate all requests using the partner credentials which have been configured in the Lever tool settings (this uses Kombo's partner credentials by default).|
|
|
386
|
-
# |LinkedIn Learning|`linkedinlearning/v2`|LinkedIn Learning [API v2](https://learn.microsoft.com/en-us/linkedin/learning/). We automatically handle authentication and use `https://api.linkedin.com` as the base URL.|
|
|
392
|
+
# |LinkedIn Learning|`linkedinlearning/v2`|LinkedIn Learning [API v2](https://learn.microsoft.com/en-us/linkedin/learning/). We automatically handle authentication and use `https://api.linkedin.com/v2` as the base URL.|
|
|
393
|
+
# |Loket|`loket/api`|[Loket's REST API](https://developers.loket.nl/). We automatically authenticate all requests and use `https://\{api_domain\}` as the base URL, where `api_domain` is the API domain configured during integration setup (e.g. `api.loket.nl`).|
|
|
387
394
|
# |Loxo|`loxo/v1`|[Loxo's API](https://loxo.readme.io/reference/loxo-api). We automatically authenticate all requests and use 'https://app.loxo.co/api/\{agency_slug\}' as base URL.|
|
|
388
395
|
# |Lucca|`lucca/api`|[Luccas's API](https://developers.lucca.fr/api-reference/legacy/introduction). We automatically authenticate all requests and use 'https://\{account\}.\{ilucca|ilucca-demo\}.\{region\}/' as the base URL.|
|
|
389
396
|
# |Manatal|`manatal/career-page`|Manatal's Career Page API. We use `https://api.manatal.com/open/v3/career-page/\{client_slug\}` as the base URL.|
|
|
@@ -399,6 +406,7 @@ module Kombo
|
|
|
399
406
|
# |Oracle HCM|`oraclehcm/api`|Oracle HCM Cloud [REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/index.html). We automatically authenticate all requests and use `https://\{domain\}/` as the base URL, where domain is your Oracle Cloud domain.|
|
|
400
407
|
# |Oracle Recruiting Cloud|`oraclerecruiting/rest`|[Oracle's REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/rest-endpoints.html). We automatically authenticate all requests and use 'https://\{company_url\}' as the base url.|
|
|
401
408
|
# |Oracle Recruiting Cloud|`oraclerecruiting/rest`|[Oracles's REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/rest-endpoints.html). We automatically authenticate all requests and use 'https://\{company_url\}' as the base url.|
|
|
409
|
+
# |OTYS|`otys/json-rpc`|[OTYS JSON-RPC API](https://ows.otys.nl/info/). We authenticate with your stored API key and inject the session token as the first element of the JSON-RPC `params` array on each request (except `loginByUid`, which uses `params` as sent). Requests use `https://ows.otys.nl` as the base URL (for example `POST /jservice.php` with the RPC method in the URL fragment, matching OTYS conventions).|
|
|
402
410
|
# |Paradox|`paradox/v1`|We use `\{api_url\}/api/v1` as the base URL. Find the official docs [here](https://paradox.readme.io/).|
|
|
403
411
|
# |Paradox|`paradox/v1public`|We use `\{api_url\}/api/v1/public` as the base URL. Find the official docs [here](https://paradox.readme.io/).|
|
|
404
412
|
# |Paychex|`paychex/api`|Paychex [REST API](https://developer.paychex.com/documentation). We automatically authenticate all requests and use `https://api.paychex.com` as the base URL.|
|
|
@@ -418,7 +426,9 @@ module Kombo
|
|
|
418
426
|
# |Phenom|`phenom/rest-api`|The [Phenom API](https://developer.phenom.com/). We automatically authenticate all requests and use `https://api-stg.phenompro.com` as the base URL.|
|
|
419
427
|
# |Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\{subdomain\}.pinpointhq.com/api/v1` as the base URL.|
|
|
420
428
|
# |Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.|
|
|
429
|
+
# |Recruit CRM|`recruitcrm/api`|We use `https://api.recruitcrm.io` as the base URL. Find the official docs [here](https://docs.recruitcrm.io/docs/rcrm-api-reference/ZG9jOjMyNzk0NA-getting-started).|
|
|
421
430
|
# |Recruitee|`recruitee/default`|The [Recruitee API](https://api.recruitee.com/docs/index.html). We automatically authenticate all requests and use `https://api.recruitee.com/c/\{company_id\}` as the base URL.|
|
|
431
|
+
# |Recruitee|`recruitee/v1`|We use `https://api.recruitee.com/c/\{company_id\}` as the base URL. Find the official docs [here](https://docs.recruitee.com/reference).|
|
|
422
432
|
# |RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.|
|
|
423
433
|
# |Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials.|
|
|
424
434
|
# |rexx systems|`rexx/default`|Rexx's HRIS export API. There is only one endpoint: `Get /`|
|
|
@@ -439,10 +449,12 @@ module Kombo
|
|
|
439
449
|
# |Sympa|`sympa/api`|Sympa's [API](https://documenter.getpostman.com/view/33639379/2sA3kXG1vX#intro). We automatically authenticate all requests and use `https://api.sympahr.net/api/` as the base URL.|
|
|
440
450
|
# |Taleez|`taleez/0`|[Taleez's API](https://api.taleez.com/swagger-ui/index.html). We automatically authenticate all requests and use `https://api.taleez.com/0` as the base URL.|
|
|
441
451
|
# |Talention|`talention/v1`|Talention's API. We automatically authenticate all requests and use `https://\{api_domain\}/tms/\{account_id\}/external/api/1.0` as the base URL. Documentation is provided privately by Talention. Contact Kombo support for assistance with specific endpoints.|
|
|
452
|
+
# |TalentLMS|`talentlms/v2`|We use `https://\{subdomain\}.talentlms.com/api/v2` as the base URL.|
|
|
442
453
|
# |Taleo|`taleo/soap`|[Taleo's API](https://docs.oracle.com/en/cloud/saas/taleo-enterprise/23b/otwsu/c-taleoapi.html). We automatically authenticate all requests and use 'https://\{your-subdomain\}.taleo.net/enterprise/soap' as base URL.|
|
|
443
454
|
# |Teamtailor Job Boards|`teamtailorjobboards/direct-apply`|Teamtailor's [Job Board Direct Apply API](https://partner.teamtailor.com/job_boards/direct_apply/#direct-apply). We automatically authenticate all requests and use `https://5qbn6o9x4h.execute-api.eu-west-1.amazonaws.com/production` as the base URL. All requests are automatically signed with HMAC-SHA256 signature.|
|
|
444
455
|
# |Teamtailor|`teamtailor/v1`|We use `https://api.teamtailor.com/v1` as the base URL. Find the official docs [here](https://docs.teamtailor.com/).|
|
|
445
456
|
# |TRAFFIT|`traffit/v2`|Traffit's [v2 API](https://api.traffit.com). We authenticate all requests with the Traffit API key and use the base URL `https://yourdomain.traffit.com/api/integration/v2`.|
|
|
457
|
+
# |TriNet PEO|`trinetpeo/v1`|We use `https://api.trinet.com` as the base URL. Find the official docs [here](https://developers.trinet.com).|
|
|
446
458
|
# |Udemy Business|`udemy/learning`|Udemy Business REST API. We automatically handle authentication and use `https://\{account_name\}.udemy.com/api-2.0/organizations/\{account_id\}/` as the base URL.|
|
|
447
459
|
# |UKG Pro|`ukgpro/default`|[UKG Pro's HRIS API](https://developer.ukg.com/hcm/reference/get_personnel-v1-person-details). We automatically authenticate all requests and use `https://\{hostname\}` as the base URL.|
|
|
448
460
|
# |UKG Pro|`ukgpro/recruting`|[UKG Pro's Recruiting API](https://developer.ukg.com/hcm/reference/retrieveapplications). We automatically authenticate all requests and use `https://\{hostname\}/talent/recruiting/v2/\{tenantalias\}/api` as the base URL.|
|
|
@@ -450,7 +462,8 @@ module Kombo
|
|
|
450
462
|
# |Visma Peple|`peple/hrm`|[Visma Payroll Reporting API](https://api.analytics1.hrm.visma.net/docs/openapi.html). We automatically authenticate all requests using the client credentials and use 'https://api.analytics1.hrm.visma.net' as the base URL.|
|
|
451
463
|
# |Visma Raet - Youforce|`youforce/v1.0`|[Youforce's basic v1.0 API](https://vr-api-integration.github.io/youforce-api-documentation/postman_collections.html). We automatically authenticate all requests and use 'https://api.youforce.com' as base URL.|
|
|
452
464
|
# |Visma YouServe|`youserve/learning`|Visma YouServe [Learning API](https://youserve-domain-api.github.io/SwaggerUI/learning.html). We automatically authenticate all requests using OAuth 2.0 with the provided credentials and use `https://api.youserve.nl/learning/v1.0` as the base URL.|
|
|
453
|
-
# |Workable|`workable/v1
|
|
465
|
+
# |Workable|`workable/v1`|**Deprecated: Use `v3` instead.** Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.|
|
|
466
|
+
# |Workable|`workable/v3`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.|
|
|
454
467
|
# |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., "v1", "v2"); if omitted, it defaults to "v1".|
|
|
455
468
|
# |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).|
|
|
456
469
|
# |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.|
|
data/lib/kombo/hris.rb
CHANGED
|
@@ -2399,10 +2399,6 @@ module Kombo
|
|
|
2399
2399
|
#
|
|
2400
2400
|
# Retrieve performance review cycles data from HRIS tools.
|
|
2401
2401
|
#
|
|
2402
|
-
# <Warning>**Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.</Warning>
|
|
2403
|
-
#
|
|
2404
|
-
#
|
|
2405
|
-
#
|
|
2406
2402
|
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
2407
2403
|
request = Models::Operations::GetHrisPerformanceReviewCyclesRequest.new(
|
|
2408
2404
|
integration_id: integration_id,
|
|
@@ -2556,10 +2552,6 @@ module Kombo
|
|
|
2556
2552
|
#
|
|
2557
2553
|
# Retrieve performance review data from HRIS tools.
|
|
2558
2554
|
#
|
|
2559
|
-
# <Warning>**Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.</Warning>
|
|
2560
|
-
#
|
|
2561
|
-
#
|
|
2562
|
-
#
|
|
2563
2555
|
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
2564
2556
|
request = Models::Operations::GetHrisPerformanceReviewsRequest.new(
|
|
2565
2557
|
integration_id: integration_id,
|
|
@@ -2689,6 +2681,171 @@ module Kombo
|
|
|
2689
2681
|
end
|
|
2690
2682
|
|
|
2691
2683
|
|
|
2684
|
+
return response
|
|
2685
|
+
else
|
|
2686
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
2687
|
+
end
|
|
2688
|
+
else
|
|
2689
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
2690
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
2691
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
2692
|
+
hook_ctx: hook_ctx
|
|
2693
|
+
),
|
|
2694
|
+
response: http_response
|
|
2695
|
+
)
|
|
2696
|
+
response_data = http_response.env.response_body
|
|
2697
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError)
|
|
2698
|
+
obj.raw_response = http_response
|
|
2699
|
+
raise obj
|
|
2700
|
+
else
|
|
2701
|
+
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
2702
|
+
end
|
|
2703
|
+
end
|
|
2704
|
+
end
|
|
2705
|
+
|
|
2706
|
+
|
|
2707
|
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), model_types: T.nilable(T::Array[::String]), statuses: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetHrisStaffingEntitiesResponse) }
|
|
2708
|
+
def get_staffing_entities(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, model_types: nil, statuses: nil, timeout_ms: nil)
|
|
2709
|
+
# get_staffing_entities - Get staffing entities
|
|
2710
|
+
# Retrieve all staffing entities.
|
|
2711
|
+
#
|
|
2712
|
+
# Retrieve all staffing entities (positions, requisitions, and jobs) from the HRIS system.
|
|
2713
|
+
#
|
|
2714
|
+
# Many enterprise HRIS platforms distinguish between **positions**, **requisitions**, and **jobs** — three related but different concepts used to manage headcount and hiring. Not every HRIS uses all three, and naming varies across systems, but here is a general overview:
|
|
2715
|
+
#
|
|
2716
|
+
# - **Position**: A slot in the organizational structure that represents a role to be filled (or already filled) by one or more employees. Positions typically carry metadata like department, location, cost center, and reporting line. Think of it as "a chair at a desk" — it exists whether someone is sitting in it or not.
|
|
2717
|
+
# - **Requisition**: A formal request to fill a position. When a manager wants to hire for an open position, they usually create a requisition that goes through an approval workflow. Requisitions are time-bound and tied to a specific hiring need. In Kombo's data model, a requisition's `parent_id` points to the position it was opened for.
|
|
2718
|
+
# - **Job**: Some systems use "job" as a more generic or lightweight alternative to a requisition. Jobs often represent an ongoing, unlimited hiring need (e.g., a company that is always hiring for "Software Engineer") rather than a one-off backfill. This is reflected in the `OPEN_UNLIMITED` status.
|
|
2719
|
+
#
|
|
2720
|
+
# You can use the `model_types` filter to retrieve only the type(s) relevant to your use case. Each record's `model_type` field tells you which of the three concepts it represents.
|
|
2721
|
+
#
|
|
2722
|
+
# Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)`
|
|
2723
|
+
request = Models::Operations::GetHrisStaffingEntitiesRequest.new(
|
|
2724
|
+
integration_id: integration_id,
|
|
2725
|
+
cursor: cursor,
|
|
2726
|
+
page_size: page_size,
|
|
2727
|
+
updated_after: updated_after,
|
|
2728
|
+
include_deleted: include_deleted,
|
|
2729
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
2730
|
+
ids: ids,
|
|
2731
|
+
remote_ids: remote_ids,
|
|
2732
|
+
model_types: model_types,
|
|
2733
|
+
statuses: statuses
|
|
2734
|
+
)
|
|
2735
|
+
url, params = @sdk_configuration.get_server_details
|
|
2736
|
+
base_url = Utils.template_url(url, params)
|
|
2737
|
+
url = "#{base_url}/hris/staffing-entities"
|
|
2738
|
+
headers = Utils.get_headers(request, @sdk_configuration.globals)
|
|
2739
|
+
headers = T.cast(headers, T::Hash[String, String])
|
|
2740
|
+
query_params = Utils.get_query_params(Models::Operations::GetHrisStaffingEntitiesRequest, request, nil, @sdk_configuration.globals)
|
|
2741
|
+
headers['Accept'] = 'application/json'
|
|
2742
|
+
headers['user-agent'] = @sdk_configuration.user_agent
|
|
2743
|
+
|
|
2744
|
+
security = @sdk_configuration.security_source&.call
|
|
2745
|
+
|
|
2746
|
+
timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
|
|
2747
|
+
timeout ||= @sdk_configuration.timeout
|
|
2748
|
+
|
|
2749
|
+
|
|
2750
|
+
connection = @sdk_configuration.client
|
|
2751
|
+
|
|
2752
|
+
hook_ctx = SDKHooks::HookContext.new(
|
|
2753
|
+
config: @sdk_configuration,
|
|
2754
|
+
base_url: base_url,
|
|
2755
|
+
oauth2_scopes: nil,
|
|
2756
|
+
operation_id: 'GetHrisStaffingEntities',
|
|
2757
|
+
security_source: @sdk_configuration.security_source
|
|
2758
|
+
)
|
|
2759
|
+
|
|
2760
|
+
error = T.let(nil, T.nilable(StandardError))
|
|
2761
|
+
http_response = T.let(nil, T.nilable(Faraday::Response))
|
|
2762
|
+
|
|
2763
|
+
|
|
2764
|
+
begin
|
|
2765
|
+
http_response = T.must(connection).get(url) do |req|
|
|
2766
|
+
req.headers.merge!(headers)
|
|
2767
|
+
req.options.timeout = timeout unless timeout.nil?
|
|
2768
|
+
req.params = query_params
|
|
2769
|
+
Utils.configure_request_security(req, security)
|
|
2770
|
+
|
|
2771
|
+
@sdk_configuration.hooks.before_request(
|
|
2772
|
+
hook_ctx: SDKHooks::BeforeRequestHookContext.new(
|
|
2773
|
+
hook_ctx: hook_ctx
|
|
2774
|
+
),
|
|
2775
|
+
request: req
|
|
2776
|
+
)
|
|
2777
|
+
end
|
|
2778
|
+
rescue StandardError => e
|
|
2779
|
+
error = e
|
|
2780
|
+
ensure
|
|
2781
|
+
if http_response.nil? || Utils.error_status?(http_response.status)
|
|
2782
|
+
http_response = @sdk_configuration.hooks.after_error(
|
|
2783
|
+
error: error,
|
|
2784
|
+
hook_ctx: SDKHooks::AfterErrorHookContext.new(
|
|
2785
|
+
hook_ctx: hook_ctx
|
|
2786
|
+
),
|
|
2787
|
+
response: http_response
|
|
2788
|
+
)
|
|
2789
|
+
else
|
|
2790
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
2791
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
2792
|
+
hook_ctx: hook_ctx
|
|
2793
|
+
),
|
|
2794
|
+
response: http_response
|
|
2795
|
+
)
|
|
2796
|
+
end
|
|
2797
|
+
|
|
2798
|
+
if http_response.nil?
|
|
2799
|
+
raise error if !error.nil?
|
|
2800
|
+
raise 'no response'
|
|
2801
|
+
end
|
|
2802
|
+
end
|
|
2803
|
+
|
|
2804
|
+
content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
|
|
2805
|
+
if Utils.match_status_code(http_response.status, ['200'])
|
|
2806
|
+
if Utils.match_content_type(content_type, 'application/json')
|
|
2807
|
+
http_response = @sdk_configuration.hooks.after_success(
|
|
2808
|
+
hook_ctx: SDKHooks::AfterSuccessHookContext.new(
|
|
2809
|
+
hook_ctx: hook_ctx
|
|
2810
|
+
),
|
|
2811
|
+
response: http_response
|
|
2812
|
+
)
|
|
2813
|
+
response_data = http_response.env.response_body
|
|
2814
|
+
obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisStaffingEntitiesPositiveResponse)
|
|
2815
|
+
response = Models::Operations::GetHrisStaffingEntitiesResponse.new(
|
|
2816
|
+
status_code: http_response.status,
|
|
2817
|
+
content_type: content_type,
|
|
2818
|
+
raw_response: http_response,
|
|
2819
|
+
get_hris_staffing_entities_positive_response: T.unsafe(obj)
|
|
2820
|
+
)
|
|
2821
|
+
sdk = self
|
|
2822
|
+
|
|
2823
|
+
response.next_page = proc do
|
|
2824
|
+
next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
|
|
2825
|
+
if next_cursor.nil?
|
|
2826
|
+
next nil
|
|
2827
|
+
else
|
|
2828
|
+
next_cursor = next_cursor[0]
|
|
2829
|
+
if next_cursor.nil?
|
|
2830
|
+
next nil
|
|
2831
|
+
end
|
|
2832
|
+
end
|
|
2833
|
+
|
|
2834
|
+
sdk.get_staffing_entities(
|
|
2835
|
+
integration_id: integration_id,
|
|
2836
|
+
cursor: next_cursor,
|
|
2837
|
+
page_size: page_size,
|
|
2838
|
+
updated_after: updated_after,
|
|
2839
|
+
include_deleted: include_deleted,
|
|
2840
|
+
ignore_unsupported_filters: ignore_unsupported_filters,
|
|
2841
|
+
ids: ids,
|
|
2842
|
+
remote_ids: remote_ids,
|
|
2843
|
+
model_types: model_types,
|
|
2844
|
+
statuses: statuses
|
|
2845
|
+
)
|
|
2846
|
+
end
|
|
2847
|
+
|
|
2848
|
+
|
|
2692
2849
|
return response
|
|
2693
2850
|
else
|
|
2694
2851
|
raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received'
|
|
@@ -21,6 +21,15 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` considers changes to the record itself as well as changes to the following relations:
|
|
26
|
+
#
|
|
27
|
+
# - ✓ `candidate`
|
|
28
|
+
# - ✗ `tags`
|
|
29
|
+
# - ✓ `current_stage`
|
|
30
|
+
# - ✗ `job`
|
|
31
|
+
# - ✓ `interviews`
|
|
32
|
+
# - ✓ `offers`
|
|
24
33
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
34
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
35
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,8 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, only changes to the returned record itself are considered.
|
|
24
26
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
27
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
28
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,14 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` considers changes to the record itself as well as changes to the following relations:
|
|
26
|
+
#
|
|
27
|
+
# - ✓ `applications`
|
|
28
|
+
# - ✗ `current_stage`
|
|
29
|
+
# - ✗ `job`
|
|
30
|
+
# - ✓ `tags`
|
|
31
|
+
# - ✗ `tag`
|
|
24
32
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
33
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
34
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,14 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` considers changes to the record itself as well as changes to the following relations:
|
|
26
|
+
#
|
|
27
|
+
# - ✓ `interviewers`
|
|
28
|
+
# - ✗ `user`
|
|
29
|
+
# - ✓ `application`
|
|
30
|
+
# - ✗ `candidate`
|
|
31
|
+
# - ✗ `job`
|
|
24
32
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
33
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
34
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,17 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` considers changes to the record itself as well as changes to the following relations:
|
|
26
|
+
#
|
|
27
|
+
# - ✓ `application_stages`
|
|
28
|
+
# - ✗ `stage`
|
|
29
|
+
# - ✓ `screening_questions`
|
|
30
|
+
# - ✗ `question`
|
|
31
|
+
# - ✓ `job_postings`
|
|
32
|
+
# - ✓ `hiring_team`
|
|
33
|
+
# - ✗ `user`
|
|
34
|
+
# - ✗ `role_assignments`
|
|
24
35
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
36
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
37
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,12 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, `updated_after` considers changes to the record itself as well as changes to the following relations:
|
|
26
|
+
#
|
|
27
|
+
# - ✓ `application`
|
|
28
|
+
# - ✗ `candidate`
|
|
29
|
+
# - ✗ `job`
|
|
24
30
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
31
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
32
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|
|
@@ -21,6 +21,8 @@ module Kombo
|
|
|
21
21
|
# If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
|
|
22
22
|
#
|
|
23
23
|
# For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
|
|
24
|
+
#
|
|
25
|
+
# For this endpoint, only changes to the returned record itself are considered.
|
|
24
26
|
field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
|
|
25
27
|
# Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
|
|
26
28
|
field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
|