kombo 1.1.1 → 1.1.3

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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/general.rb +142 -1
  3. data/lib/kombo/models/operations/getatsapplications_request.rb +2 -2
  4. data/lib/kombo/models/operations/getatscandidates_request.rb +2 -2
  5. data/lib/kombo/models/operations/getatsinterviews_request.rb +2 -2
  6. data/lib/kombo/models/operations/getatsjobs_request.rb +2 -2
  7. data/lib/kombo/models/operations/getatsoffers_request.rb +2 -2
  8. data/lib/kombo/models/operations/getatsusers_request.rb +2 -2
  9. data/lib/kombo/models/operations/gethrisabsences_request.rb +2 -2
  10. data/lib/kombo/models/operations/gethrisemployees_request.rb +2 -2
  11. data/lib/kombo/models/operations/gethrisperformancereviews_request.rb +2 -2
  12. data/lib/kombo/models/operations/gethrisstaffingentities_request.rb +2 -2
  13. data/lib/kombo/models/operations/gethristimeoffbalances_request.rb +2 -2
  14. data/lib/kombo/models/operations/postintegrationsintegrationidsetuplink_request.rb +36 -0
  15. data/lib/kombo/models/operations/postintegrationsintegrationidsetuplink_request.rbi +15 -0
  16. data/lib/kombo/models/operations/postintegrationsintegrationidsetuplink_response.rb +44 -0
  17. data/lib/kombo/models/operations/postintegrationsintegrationidsetuplink_response.rbi +19 -0
  18. data/lib/kombo/models/operations.rb +2 -0
  19. data/lib/kombo/models/shared/getatsjobspositiveresponse_result.rb +2 -2
  20. data/lib/kombo/models/shared/{visibility.rb → getatsjobspositiveresponse_visibility.rb} +1 -1
  21. data/lib/kombo/models/shared/getatsjobspositiveresponse_visibility.rbi +11 -0
  22. data/lib/kombo/models/shared/imported_id.rb +6 -2
  23. data/lib/kombo/models/shared/imported_id.rbi +2 -0
  24. data/lib/kombo/models/shared/integration_tool.rb +6 -0
  25. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_greenhousev3.rb +32 -0
  26. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_greenhousev3.rbi +13 -0
  27. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb +6 -2
  28. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi +2 -0
  29. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_visibility.rb +22 -0
  30. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_visibility.rbi +11 -0
  31. data/lib/kombo/models/shared/postatsapplicationsapplicationidrejectrequestbody_greenhousev3.rb +32 -0
  32. data/lib/kombo/models/shared/postatsapplicationsapplicationidrejectrequestbody_greenhousev3.rbi +13 -0
  33. data/lib/kombo/models/shared/postatsapplicationsapplicationidrejectrequestbody_remote_fields.rb +6 -2
  34. data/lib/kombo/models/shared/postatsapplicationsapplicationidrejectrequestbody_remote_fields.rbi +2 -0
  35. data/lib/kombo/models/shared/postatscandidatesrequestbody_greenhousev3.rb +36 -0
  36. data/lib/kombo/models/shared/postatscandidatesrequestbody_greenhousev3.rbi +15 -0
  37. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +6 -2
  38. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +2 -0
  39. data/lib/kombo/models/shared/postatsimporttrackedapplicationpositiveresponse_greenhousev3_applicationid.rb +39 -0
  40. data/lib/kombo/models/shared/postatsimporttrackedapplicationpositiveresponse_greenhousev3_applicationid.rbi +15 -0
  41. data/lib/kombo/models/shared/postatsimporttrackedapplicationpositiveresponse_greenhousev3_union.rb +27 -0
  42. data/lib/kombo/models/shared/postatsimporttrackedapplicationpositiveresponse_greenhousev3_union.rbi +11 -0
  43. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody.rb +6 -2
  44. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody.rbi +2 -0
  45. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody_greenhousev3_applicationid.rb +39 -0
  46. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody_greenhousev3_applicationid.rbi +15 -0
  47. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody_greenhousev3_union.rb +27 -0
  48. data/lib/kombo/models/shared/postatsimporttrackedapplicationrequestbody_greenhousev3_union.rbi +11 -0
  49. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_greenhousev3.rb +36 -0
  50. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_greenhousev3.rbi +15 -0
  51. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +6 -2
  52. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +2 -0
  53. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkpositiveresponse.rb +39 -0
  54. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkpositiveresponse.rbi +15 -0
  55. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkpositiveresponse_data.rb +32 -0
  56. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkpositiveresponse_data.rbi +13 -0
  57. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody.rb +36 -0
  58. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody.rbi +15 -0
  59. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody_language.rb +24 -0
  60. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody_language.rbi +11 -0
  61. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody_link_type.rb +21 -0
  62. data/lib/kombo/models/shared/postintegrationsintegrationidsetuplinkrequestbody_link_type.rbi +11 -0
  63. data/lib/kombo/models/shared.rb +15 -1
  64. data/lib/kombo/sdkconfiguration.rb +2 -2
  65. metadata +36 -4
  66. data/lib/kombo/models/shared/visibility.rbi +0 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b766eb8608d28908b92ab3310a641652a9b5bf9daea7bf78c38a72b455394272
4
- data.tar.gz: 81f7b7f5bc399688363dd673069942cf080951c286539ec47826b0b1f82b171b
3
+ metadata.gz: 24d81ffc145933d397ab482906e43662262d3fa5d5049f575ee85294180c0563
4
+ data.tar.gz: 650ed96f7a2dfba4dc9e3ccf6101e46c777bcaa17d471ca170596a7bddde78d8
5
5
  SHA512:
6
- metadata.gz: 03b6f478fa958ad31c550c30b5a48185204e11a80aa6427cbb73753f381fb6ce0cd4c8a8a01569cc496b4b48e7c9058757eabb33b1f453e26b1775fe6edc2f0d
7
- data.tar.gz: 0d08749c2f76af4b17f3cfc904b44672dc0401b105b344a171df0121bb60efaf74219f2ae2d38ed8e577b8a6c2818d915a32e50cb62730b2ebb90d8c69a01b68
6
+ metadata.gz: 474d0515c4bcbf72162f8f78fd00bf38809376a6ca60ee63dadd0f2623a4638f4f379d91361ddbd10fd65cfab0f28872c90c08aa0df9f14e7dcf967be891e64e
7
+ data.tar.gz: 8144d5aea0bf152fe48446f1f3f7d3d10ca46eef8369a18a27e58053a41206b42b7dac0cde40815d47ae182c4fe928d6e88877f565c6c24992b3296067560e33
data/lib/kombo/general.rb CHANGED
@@ -313,6 +313,7 @@ module Kombo
313
313
  # |BITE|`bite/v1`|[Bite's v1 API](https://api.b-ite.io/docs/#/). We automatically authenticate all requests and use 'https://api.b-ite.io/v1' as base URL.|
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
+ # |Bullhorn for Salesforce|`bullhorn4salesforce/v66`|We use `https://\{subdomain\}.my.salesforce.com/services/data/v66.0` as the base URL. Find the official docs [here](https://kb.bullhorn.com/bh4sf/Content/BH4SF/Topics/bh4sfRestAPI.htm).|
316
317
  # |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
318
  # |CareerPlug|`careerplug/api`|We use `https://api.careerplug.com` as the base URL. Find the official docs [here](https://api.careerplug.com/docs#api).|
318
319
  # |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.|
@@ -354,12 +355,13 @@ module Kombo
354
355
  # |Gem|`gem/api`|Gem's [ATS API](https://api.gem.com/ats/v0/reference) We automatically authenticate all requests.|
355
356
  # |Google Workspace|`googleworkspace/admin`|[Googles's API](https://developers.google.com/admin-sdk/directory/reference/rest). We automatically authenticate all requests and use 'https://admin.googleapis.com' as the base URL.|
356
357
  # |Google Workspace|`googleworkspace/people`|[Googles's API](https://developers.google.com/people/api/rest). We automatically authenticate all requests and use 'https://people.googleapis.com' as the base URL.|
358
+ # |Greenhouse (V3)|`greenhousev3/harvestv3`|We use `https://harvest.greenhouse.io/v3` as the base URL. Find the official docs [here](https://harvestdocs.greenhouse.io/reference/).|
357
359
  # |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.|
358
360
  # |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.|
359
361
  # |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.|
360
362
  # |GuideCom|`guidecom/api`|GuideCom's API. We automatically authenticate all requests and use the configured API base URL.|
361
363
  # |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).|
362
- # |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.|
364
+ # |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. Connections created against the `DEMO` remote environment are routed to `https://api.demo.haileyhr.app` instead.|
363
365
  # |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.|
364
366
  # |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.|
365
367
  # |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.|
@@ -384,6 +386,7 @@ module Kombo
384
386
  # |Jobylon|`jobylon/push`|The [Jobylon Push API](https://developer.jobylon.com/push-api-and-webhooks/). We automatically authenticate all requests and use `https://\{subdomain\}.jobylon.com/p1` as the base URL.|
385
387
  # |JOIN|`join/v2`|Join's [V2 API](https://docs.join.com/reference/getting-started). We automatically authenticate all requests and use `https://api.join.com/v2` as the base URL.|
386
388
  # |Kenjo|`kenjo/api`|Kenjo's [API](https://kenjo.readme.io/reference/generate-the-api-key). We automatically authenticate all requests using the API key and use `https://api.kenjo.io/` as the base URL.|
389
+ # |Kula|`kula/v1`|Kula's [REST API](https://developers.kula.ai/docs/getting-started/overview). We automatically authenticate all requests with the provided credentials and use `https://api.kula.ai/v1` as the base URL.|
387
390
  # |Lattice Talent|`latticetalent/talent`|Lattice's [Talent API](https://developers.lattice.com/reference/introduction). We automatically authenticate all requests using API key credentials with `https://api.latticehq.com` as the base URL.|
388
391
  # |Lattice|`lattice/passthrough`|Lattice's [API](https://developers.lattice.com/v2/docs/base-url-1). We automatically authenticate all requests using OAuth credentials with `https://api.latticehq.com` as the base URL.|
389
392
  # |Lattice|`lattice/talent`|Lattice's [Talent API](https://developers.lattice.com/docs/introduction-1). We automatically authenticate all requests using OAuth credentials with `https://api.latticehq.com` as the base URL.|
@@ -392,6 +395,7 @@ module Kombo
392
395
  # |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.|
393
396
  # |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).|
394
397
  # |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.|
398
+ # |Logic Melon|`logicmelon/json`|We use `https://api.logicmelon.co.uk` as the base URL. Find the official docs [here](https://api.logicmelon.com/JSON/Multiposter.asmx).|
395
399
  # |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`).|
396
400
  # |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.|
397
401
  # |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.|
@@ -463,6 +467,7 @@ module Kombo
463
467
  # |TriNet PEO|`trinetpeo/v1`|We use `https://api.trinet.com` as the base URL. Find the official docs [here](https://developers.trinet.com).|
464
468
  # |Ubeeo|`ubeeo/api`|Ubeeo ATS API. We automatically authenticate all requests using OAuth client credentials and use `https://api.ats-platform.com` as the base URL (sandbox: `https://api.acc.ats-platform.com`).|
465
469
  # |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.|
470
+ # |UKG Pro WFM|`ukgprowfm/api`|UKG Pro WFM's [API](https://developer.ukg.com/wfm/reference/welcome-to-the-ukg-pro-workforce-management-api). We automatically authenticate all requests and use `https://\{hostname\}` as the base URL.|
466
471
  # |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.|
467
472
  # |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.|
468
473
  # |UKG Ready|`ukgready/api`|UKG Ready [API](https://secure.saashr.com/ta/docs/rest/public/). We automatically authenticate all requests using the provided credentials and use `https://\{api_domain\}` as the base URL.|
@@ -1152,6 +1157,142 @@ module Kombo
1152
1157
  end
1153
1158
 
1154
1159
 
1160
+ sig { params(body: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBody, integration_id: ::String, timeout_ms: T.nilable(Integer)).returns(Models::Operations::PostIntegrationsIntegrationIdSetupLinkResponse) }
1161
+ def create_setup_link(body:, integration_id:, timeout_ms: nil)
1162
+ # create_setup_link - Create Setup Flow link
1163
+ # Create a link that lets your customer run the [Setup Flow](/hris/features/setup-flow/introduction) for an integration. Use this to send customers back into setup steps like field mapping or employee filtering without having to go through the initial connection flow again. Pass the returned URL to `showKomboConnect` from the Kombo Connect SDK, the same way you do with a connection link.
1164
+ #
1165
+ # The integration must have at least one Setup Flow step enabled (e.g. field mapping or employee filtering); otherwise this endpoint returns a `PLATFORM.INPUT_INVALID` error. Steps can be enabled from the Integration Settings tab in the dashboard or via the [Create Connection Link endpoint](./post-connect-create-link).
1166
+ request = Models::Operations::PostIntegrationsIntegrationIdSetupLinkRequest.new(
1167
+ integration_id: integration_id,
1168
+ body: body
1169
+ )
1170
+ url, params = @sdk_configuration.get_server_details
1171
+ base_url = Utils.template_url(url, params)
1172
+ url = Utils.generate_url(
1173
+ Models::Operations::PostIntegrationsIntegrationIdSetupLinkRequest,
1174
+ base_url,
1175
+ '/integrations/{integration_id}/setup-link',
1176
+ request,
1177
+ @sdk_configuration.globals
1178
+ )
1179
+ headers = {}
1180
+ headers = T.cast(headers, T::Hash[String, String])
1181
+ req_content_type, data, form = Utils.serialize_request_body(request, false, false, :body, :json)
1182
+ headers['content-type'] = req_content_type
1183
+ raise StandardError, 'request body is required' if data.nil? && form.nil?
1184
+
1185
+ if form
1186
+ body = Utils.encode_form(form)
1187
+ elsif Utils.match_content_type(req_content_type, 'application/x-www-form-urlencoded')
1188
+ body = URI.encode_www_form(T.cast(data, T::Hash[Symbol, Object]))
1189
+ else
1190
+ body = data
1191
+ end
1192
+ headers['Accept'] = 'application/json'
1193
+ headers['user-agent'] = @sdk_configuration.user_agent
1194
+
1195
+ security = @sdk_configuration.security_source&.call
1196
+
1197
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
1198
+ timeout ||= (300_000.to_f / 1000)
1199
+
1200
+
1201
+ connection = @sdk_configuration.client
1202
+
1203
+ hook_ctx = SDKHooks::HookContext.new(
1204
+ config: @sdk_configuration,
1205
+ base_url: base_url,
1206
+ oauth2_scopes: nil,
1207
+ operation_id: 'PostIntegrationsIntegrationIdSetupLink',
1208
+ security_source: @sdk_configuration.security_source
1209
+ )
1210
+
1211
+ error = T.let(nil, T.nilable(StandardError))
1212
+ http_response = T.let(nil, T.nilable(Faraday::Response))
1213
+
1214
+
1215
+ begin
1216
+ http_response = T.must(connection).post(url) do |req|
1217
+ req.body = body
1218
+ req.headers.merge!(headers)
1219
+ req.options.timeout = timeout unless timeout.nil?
1220
+ Utils.configure_request_security(req, security)
1221
+
1222
+ @sdk_configuration.hooks.before_request(
1223
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
1224
+ hook_ctx: hook_ctx
1225
+ ),
1226
+ request: req
1227
+ )
1228
+ end
1229
+ rescue StandardError => e
1230
+ error = e
1231
+ ensure
1232
+ if http_response.nil? || Utils.error_status?(http_response.status)
1233
+ http_response = @sdk_configuration.hooks.after_error(
1234
+ error: error,
1235
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
1236
+ hook_ctx: hook_ctx
1237
+ ),
1238
+ response: http_response
1239
+ )
1240
+ else
1241
+ http_response = @sdk_configuration.hooks.after_success(
1242
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1243
+ hook_ctx: hook_ctx
1244
+ ),
1245
+ response: http_response
1246
+ )
1247
+ end
1248
+
1249
+ if http_response.nil?
1250
+ raise error if !error.nil?
1251
+ raise 'no response'
1252
+ end
1253
+ end
1254
+
1255
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
1256
+ if Utils.match_status_code(http_response.status, ['200'])
1257
+ if Utils.match_content_type(content_type, 'application/json')
1258
+ http_response = @sdk_configuration.hooks.after_success(
1259
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1260
+ hook_ctx: hook_ctx
1261
+ ),
1262
+ response: http_response
1263
+ )
1264
+ response_data = http_response.env.response_body
1265
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::PostIntegrationsIntegrationIdSetupLinkPositiveResponse)
1266
+ response = Models::Operations::PostIntegrationsIntegrationIdSetupLinkResponse.new(
1267
+ status_code: http_response.status,
1268
+ content_type: content_type,
1269
+ raw_response: http_response,
1270
+ post_integrations_integration_id_setup_link_positive_response: T.unsafe(obj)
1271
+ )
1272
+
1273
+ return response
1274
+ else
1275
+ 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'
1276
+ end
1277
+ else
1278
+ if Utils.match_content_type(content_type, 'application/json')
1279
+ http_response = @sdk_configuration.hooks.after_success(
1280
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
1281
+ hook_ctx: hook_ctx
1282
+ ),
1283
+ response: http_response
1284
+ )
1285
+ response_data = http_response.env.response_body
1286
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboGeneralError)
1287
+ obj.raw_response = http_response
1288
+ raise obj
1289
+ else
1290
+ 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'
1291
+ end
1292
+ end
1293
+ end
1294
+
1295
+
1155
1296
  sig { params(integration_id: ::String, cursor: T.nilable(::String), page_size: T.nilable(::Integer), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetIntegrationsIntegrationIdIntegrationFieldsResponse) }
1156
1297
  def get_integration_fields(integration_id:, cursor: nil, page_size: nil, timeout_ms: nil)
1157
1298
  # get_integration_fields - Get integration fields
@@ -24,7 +24,7 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `candidate` | n/a | ✓ Yes |
30
30
  # | `candidate` → `tags` | ✗ No | ✗ No |
@@ -33,7 +33,7 @@ module Kombo
33
33
  # | `interviews` | ✓ Yes | ✓ Yes |
34
34
  # | `offers` | ✓ Yes | ✓ Yes |
35
35
  #
36
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
36
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
37
37
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
38
38
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
39
39
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,14 +24,14 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `applications` | ✓ Yes | ✓ Yes |
30
30
  # | `applications` → `current_stage` | ✗ No | ✗ No |
31
31
  # | `applications` → `job` | ✗ No | ✗ No |
32
32
  # | `tags` | ✓ Yes | ✗ No |
33
33
  #
34
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
34
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
35
35
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
36
36
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
37
37
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,14 +24,14 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `interviewers` | ✓ Yes | ✗ No |
30
30
  # | `application` | n/a | ✓ Yes |
31
31
  # | `application` → `candidate` | ✗ No | ✗ No |
32
32
  # | `application` → `job` | ✗ No | ✗ No |
33
33
  #
34
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
34
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
35
35
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
36
36
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
37
37
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,14 +24,14 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `stages` | ✓ Yes | ✗ No |
30
30
  # | `screening_questions` | ✓ Yes | ✗ No |
31
31
  # | `job_postings` | ✓ Yes | ✓ Yes |
32
32
  # | `hiring_team` | ✓ Yes | ✗ No |
33
33
  #
34
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
34
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
35
35
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
36
36
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
37
37
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,13 +24,13 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `application` | n/a | ✓ Yes |
30
30
  # | `application` → `candidate` | ✗ No | ✗ No |
31
31
  # | `application` → `job` | ✗ No | ✗ No |
32
32
  #
33
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
33
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
34
34
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
35
35
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
36
36
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,11 +24,11 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `system_role_assignment` | ✓ Yes | ✓ Yes |
30
30
  #
31
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
31
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
32
32
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
33
33
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
34
34
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,11 +24,11 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `type` | n/a | ✓ Yes |
30
30
  #
31
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
31
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
32
32
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
33
33
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
34
34
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,7 +24,7 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `employments` | ✓ Yes | ✓ Yes |
30
30
  # | `time_off_balances` | ✓ Yes | ✓ Yes |
@@ -33,7 +33,7 @@ module Kombo
33
33
  # | `legal_entity` | n/a | ✓ Yes |
34
34
  # | `work_location` | n/a | ✓ Yes |
35
35
  #
36
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
36
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
37
37
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
38
38
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
39
39
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,13 +24,13 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `review_cycle` | n/a | ✓ Yes |
30
30
  # | `reviewee` | n/a | ✓ Yes |
31
31
  # | `reviewer` | n/a | ✓ Yes |
32
32
  #
33
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
33
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
34
34
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
35
35
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
36
36
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,13 +24,13 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `locations` | ✓ Yes | ✓ Yes |
30
30
  # | `legal_entities` | ✓ Yes | ✓ Yes |
31
31
  # | `groups` | ✓ Yes | ✓ Yes |
32
32
  #
33
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
33
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
34
34
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
35
35
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
36
36
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -24,11 +24,11 @@ module Kombo
24
24
  #
25
25
  # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.
26
26
  #
27
- # | Path | Relationship | Target Record |
27
+ # | Path | Added/Removed | Linked Record |
28
28
  # | --- | --- | --- |
29
29
  # | `type` | n/a | ✓ Yes |
30
30
  #
31
- # _**Relationship**: Whether adding or removing entries from this list triggers an update (n/a for single references that are not lists). **Target Record**: Whether changes to the linked record itself trigger an update._
31
+ # _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._
32
32
  field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
33
33
  # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
34
34
  field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Operations
10
+
11
+ class PostIntegrationsIntegrationIdSetupLinkRequest
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # POST /integrations/:integration_id/setup-link Parameter
16
+ field :integration_id, ::String, { 'path_param': { 'field_name': 'integration_id', 'style': 'simple', 'explode': false } }
17
+ # POST /integrations/:integration_id/setup-link Request body
18
+ field :body, Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBody, { 'request': { 'media_type': 'application/json' } }
19
+
20
+ sig { params(integration_id: ::String, body: Models::Shared::PostIntegrationsIntegrationIdSetupLinkRequestBody).void }
21
+ def initialize(integration_id:, body:)
22
+ @integration_id = integration_id
23
+ @body = body
24
+ end
25
+
26
+ sig { params(other: T.untyped).returns(T::Boolean) }
27
+ def ==(other)
28
+ return false unless other.is_a? self.class
29
+ return false unless @integration_id == other.integration_id
30
+ return false unless @body == other.body
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Operations::PostIntegrationsIntegrationIdSetupLinkRequest
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Operations::PostIntegrationsIntegrationIdSetupLinkRequest
11
+ def integration_id(); end
12
+ def integration_id=(str_); end
13
+ def body(); end
14
+ def body=(str_); end
15
+ end
@@ -0,0 +1,44 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Operations
10
+
11
+ class PostIntegrationsIntegrationIdSetupLinkResponse
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # HTTP response content type for this operation
16
+ field :content_type, ::String
17
+ # HTTP response status code for this operation
18
+ field :status_code, ::Integer
19
+ # Raw HTTP response; suitable for custom response parsing
20
+ field :raw_response, ::Faraday::Response
21
+ # POST /integrations/:integration_id/setup-link Positive response
22
+ field :post_integrations_integration_id_setup_link_positive_response, Crystalline::Nilable.new(Models::Shared::PostIntegrationsIntegrationIdSetupLinkPositiveResponse)
23
+
24
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, post_integrations_integration_id_setup_link_positive_response: T.nilable(Models::Shared::PostIntegrationsIntegrationIdSetupLinkPositiveResponse)).void }
25
+ def initialize(content_type:, status_code:, raw_response:, post_integrations_integration_id_setup_link_positive_response: nil)
26
+ @content_type = content_type
27
+ @status_code = status_code
28
+ @raw_response = raw_response
29
+ @post_integrations_integration_id_setup_link_positive_response = post_integrations_integration_id_setup_link_positive_response
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 @content_type == other.content_type
36
+ return false unless @status_code == other.status_code
37
+ return false unless @raw_response == other.raw_response
38
+ return false unless @post_integrations_integration_id_setup_link_positive_response == other.post_integrations_integration_id_setup_link_positive_response
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::Operations::PostIntegrationsIntegrationIdSetupLinkResponse
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Operations::PostIntegrationsIntegrationIdSetupLinkResponse
11
+ def content_type(); end
12
+ def content_type=(str_); end
13
+ def status_code(); end
14
+ def status_code=(str_); end
15
+ def raw_response(); end
16
+ def raw_response=(str_); end
17
+ def post_integrations_integration_id_setup_link_positive_response(); end
18
+ def post_integrations_integration_id_setup_link_positive_response=(str_); end
19
+ end
@@ -112,6 +112,8 @@ module Kombo
112
112
  autoload :PostHrisEmployeesFormResponse, 'kombo/models/operations/posthrisemployeesform_response.rb'
113
113
  autoload :PostIntegrationsIntegrationIdRelinkRequest, 'kombo/models/operations/postintegrationsintegrationidrelink_request.rb'
114
114
  autoload :PostIntegrationsIntegrationIdRelinkResponse, 'kombo/models/operations/postintegrationsintegrationidrelink_response.rb'
115
+ autoload :PostIntegrationsIntegrationIdSetupLinkRequest, 'kombo/models/operations/postintegrationsintegrationidsetuplink_request.rb'
116
+ autoload :PostIntegrationsIntegrationIdSetupLinkResponse, 'kombo/models/operations/postintegrationsintegrationidsetuplink_response.rb'
115
117
  autoload :PostPassthroughToolApiRequest, 'kombo/models/operations/postpassthroughtoolapi_request.rb'
116
118
  autoload :PostPassthroughToolApiResponse, 'kombo/models/operations/postpassthroughtoolapi_response.rb'
117
119
  autoload :PutAssessmentOrdersAssessmentOrderIdResultRequest, 'kombo/models/operations/putassessmentordersassessmentorderidresult_request.rb'
@@ -98,7 +98,7 @@ module Kombo
98
98
  # *Note: For any checks (e.g., "can we publish this job?"), always evaluate both `status` and `visibility`.*
99
99
  #
100
100
  # In rare cases where we can’t find a clear mapping, the original string is passed through.
101
- field :visibility, Crystalline::Nilable.new(Models::Shared::Visibility), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('visibility'), 'decoder': Utils.enum_from_string(Models::Shared::Visibility, true) } }
101
+ field :visibility, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseVisibility), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('visibility'), 'decoder': Utils.enum_from_string(Models::Shared::GetAtsJobsPositiveResponseVisibility, true) } }
102
102
  # Defines if the job supports remote work and if so, to what extent.
103
103
  field :remote_work_status, Crystalline::Nilable.new(Models::Shared::RemoteWorkStatus), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_work_status'), 'decoder': Utils.enum_from_string(Models::Shared::RemoteWorkStatus, true) } }
104
104
  # The period of time over which the salary amount is paid (not equal to the pay frequency). In rare cases where we can’t find a clear mapping, the original string is passed through.
@@ -106,7 +106,7 @@ module Kombo
106
106
  # The location of the listed job.
107
107
  field :location, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseLocation), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('location') } }
108
108
 
109
- sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, stages: T::Array[Models::Shared::Stage], screening_questions: T::Array[Models::Shared::ScreeningQuestion], job_postings: T::Array[Models::Shared::JobPosting], hiring_team: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeam], name: T.nilable(::String), job_code: T.nilable(::String), description: T.nilable(::String), confidential: T.nilable(T::Boolean), weekly_hours: T.nilable(::Float), category: T.nilable(::String), department: T.nilable(::String), post_url: T.nilable(::String), experience_level: T.nilable(::String), salary_amount: T.nilable(::Float), salary_amount_from: T.nilable(::Float), salary_amount_to: T.nilable(::Float), salary_currency: T.nilable(::String), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), remote_url: T.nilable(::String), opened_at: T.nilable(::DateTime), closed_at: T.nilable(::DateTime), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), contact_id: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), employment_type: T.nilable(Models::Shared::GetAtsJobsPositiveResponseEmploymentType), status: T.nilable(Models::Shared::GetAtsJobsPositiveResponseStatus), visibility: T.nilable(Models::Shared::Visibility), remote_work_status: T.nilable(Models::Shared::RemoteWorkStatus), salary_period: T.nilable(Models::Shared::SalaryPeriod), location: T.nilable(Models::Shared::GetAtsJobsPositiveResponseLocation)).void }
109
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, stages: T::Array[Models::Shared::Stage], screening_questions: T::Array[Models::Shared::ScreeningQuestion], job_postings: T::Array[Models::Shared::JobPosting], hiring_team: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeam], name: T.nilable(::String), job_code: T.nilable(::String), description: T.nilable(::String), confidential: T.nilable(T::Boolean), weekly_hours: T.nilable(::Float), category: T.nilable(::String), department: T.nilable(::String), post_url: T.nilable(::String), experience_level: T.nilable(::String), salary_amount: T.nilable(::Float), salary_amount_from: T.nilable(::Float), salary_amount_to: T.nilable(::Float), salary_currency: T.nilable(::String), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), remote_url: T.nilable(::String), opened_at: T.nilable(::DateTime), closed_at: T.nilable(::DateTime), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), contact_id: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), employment_type: T.nilable(Models::Shared::GetAtsJobsPositiveResponseEmploymentType), status: T.nilable(Models::Shared::GetAtsJobsPositiveResponseStatus), visibility: T.nilable(Models::Shared::GetAtsJobsPositiveResponseVisibility), remote_work_status: T.nilable(Models::Shared::RemoteWorkStatus), salary_period: T.nilable(Models::Shared::SalaryPeriod), location: T.nilable(Models::Shared::GetAtsJobsPositiveResponseLocation)).void }
110
110
  def initialize(id:, remote_id:, changed_at:, stages:, screening_questions:, job_postings:, hiring_team:, name: nil, job_code: nil, description: nil, confidential: nil, weekly_hours: nil, category: nil, department: nil, post_url: nil, experience_level: nil, salary_amount: nil, salary_amount_from: nil, salary_amount_to: nil, salary_currency: nil, custom_fields: nil, remote_url: nil, opened_at: nil, closed_at: nil, remote_created_at: nil, remote_updated_at: nil, contact_id: nil, remote_deleted_at: nil, employment_type: nil, status: nil, visibility: nil, remote_work_status: nil, salary_period: nil, location: nil)
111
111
  @id = id
112
112
  @remote_id = remote_id
@@ -8,7 +8,7 @@ module Kombo
8
8
  module Models
9
9
  module Shared
10
10
 
11
- class Visibility < T::Enum
11
+ class GetAtsJobsPositiveResponseVisibility < T::Enum
12
12
 
13
13
 
14
14
  enums do
@@ -0,0 +1,11 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseVisibility
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GetAtsJobsPositiveResponseVisibility
11
+ end
@@ -21,16 +21,19 @@ module Kombo
21
21
 
22
22
  field :greenhouse, Crystalline::Nilable.new(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseGreenhouseApplicationID), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('greenhouse') } }
23
23
 
24
+ field :greenhousev3, Crystalline::Nilable.new(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseGreenhousev3ApplicationID), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('greenhousev3') } }
25
+
24
26
  field :onlyfy, Crystalline::Nilable.new(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseOnlyfyApplicationID), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('onlyfy') } }
25
27
 
26
28
  field :smartrecruiters, Crystalline::Nilable.new(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseSmartrecruitersCandidateAndJobRemoteIds), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('smartrecruiters') } }
27
29
 
28
- sig { params(erecruiter: T.nilable(T.any(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseErecruiterApplicationAndJobRemoteIds, Models::Shared::PostAtsImportTrackedApplicationPositiveResponseErecruiterApplicationAndCandidateRemoteIds)), successfactors: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseSuccessfactorsApplicationRemoteID), recruitee: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseRecruiteePlacementID), greenhouse: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseGreenhouseApplicationID), onlyfy: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseOnlyfyApplicationID), smartrecruiters: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseSmartrecruitersCandidateAndJobRemoteIds)).void }
29
- def initialize(erecruiter: nil, successfactors: nil, recruitee: nil, greenhouse: nil, onlyfy: nil, smartrecruiters: nil)
30
+ sig { params(erecruiter: T.nilable(T.any(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseErecruiterApplicationAndJobRemoteIds, Models::Shared::PostAtsImportTrackedApplicationPositiveResponseErecruiterApplicationAndCandidateRemoteIds)), successfactors: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseSuccessfactorsApplicationRemoteID), recruitee: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseRecruiteePlacementID), greenhouse: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseGreenhouseApplicationID), greenhousev3: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseGreenhousev3ApplicationID), onlyfy: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseOnlyfyApplicationID), smartrecruiters: T.nilable(Models::Shared::PostAtsImportTrackedApplicationPositiveResponseSmartrecruitersCandidateAndJobRemoteIds)).void }
31
+ def initialize(erecruiter: nil, successfactors: nil, recruitee: nil, greenhouse: nil, greenhousev3: nil, onlyfy: nil, smartrecruiters: nil)
30
32
  @erecruiter = erecruiter
31
33
  @successfactors = successfactors
32
34
  @recruitee = recruitee
33
35
  @greenhouse = greenhouse
36
+ @greenhousev3 = greenhousev3
34
37
  @onlyfy = onlyfy
35
38
  @smartrecruiters = smartrecruiters
36
39
  end
@@ -42,6 +45,7 @@ module Kombo
42
45
  return false unless @successfactors == other.successfactors
43
46
  return false unless @recruitee == other.recruitee
44
47
  return false unless @greenhouse == other.greenhouse
48
+ return false unless @greenhousev3 == other.greenhousev3
45
49
  return false unless @onlyfy == other.onlyfy
46
50
  return false unless @smartrecruiters == other.smartrecruiters
47
51
  true