kombo 1.2.9 → 1.2.10

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 (75) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kombo/ats.rb +6 -2
  3. data/lib/kombo/general.rb +15 -5
  4. data/lib/kombo/hris.rb +0 -2
  5. data/lib/kombo/models/shared/amount.rb +1 -1
  6. data/lib/kombo/models/shared/amount_ytd.rb +36 -0
  7. data/lib/kombo/models/shared/amount_ytd.rbi +15 -0
  8. data/lib/kombo/models/shared/domestic_bank_routing.rb +1 -1
  9. data/lib/kombo/models/shared/domestic_bank_routing_type.rb +1 -0
  10. data/lib/kombo/models/shared/gethrisgroupspositiveresponse_result.rb +6 -2
  11. data/lib/kombo/models/shared/gethrisgroupspositiveresponse_result.rbi +2 -0
  12. data/lib/kombo/models/shared/gethrislegalentitiespositiveresponse_result.rb +6 -2
  13. data/lib/kombo/models/shared/gethrislegalentitiespositiveresponse_result.rbi +2 -0
  14. data/lib/kombo/models/shared/gethrislocationspositiveresponse_result.rb +6 -2
  15. data/lib/kombo/models/shared/gethrislocationspositiveresponse_result.rbi +2 -0
  16. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb +1 -1
  17. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb +1 -1
  18. data/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb +1 -1
  19. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb +1 -1
  20. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb +1 -1
  21. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb +1 -1
  22. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb +6 -2
  23. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi +2 -0
  24. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb +14 -2
  25. data/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi +6 -0
  26. data/lib/kombo/models/shared/gross_pay_ytd.rb +36 -0
  27. data/lib/kombo/models/shared/gross_pay_ytd.rbi +15 -0
  28. data/lib/kombo/models/shared/integration_tool.rb +5 -1
  29. data/lib/kombo/models/shared/line_item.rb +14 -2
  30. data/lib/kombo/models/shared/line_item.rbi +6 -0
  31. data/lib/kombo/models/shared/net_pay_ytd.rb +36 -0
  32. data/lib/kombo/models/shared/net_pay_ytd.rbi +15 -0
  33. data/lib/kombo/models/shared/paid_amount_ytd.rb +36 -0
  34. data/lib/kombo/models/shared/paid_amount_ytd.rbi +15 -0
  35. data/lib/kombo/models/shared/pay_code.rb +36 -0
  36. data/lib/kombo/models/shared/pay_code.rbi +15 -0
  37. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody.rb +6 -2
  38. data/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody.rbi +2 -0
  39. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_remote_fields.rb +6 -2
  40. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_remote_fields.rbi +2 -0
  41. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_traffit.rb +32 -0
  42. data/lib/kombo/models/shared/postatsapplicationsapplicationidresultlinksrequestbody_traffit.rbi +13 -0
  43. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_remote_fields.rb +6 -2
  44. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_remote_fields.rbi +2 -0
  45. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_traffit.rb +32 -0
  46. data/lib/kombo/models/shared/postatscandidatescandidateidresultlinksrequestbody_traffit.rbi +13 -0
  47. data/lib/kombo/models/shared/postatscandidatesrequestbody_emplypeople.rb +32 -0
  48. data/lib/kombo/models/shared/postatscandidatesrequestbody_emplypeople.rbi +13 -0
  49. data/lib/kombo/models/shared/postatscandidatesrequestbody_fountain.rb +44 -0
  50. data/lib/kombo/models/shared/postatscandidatesrequestbody_fountain.rbi +19 -0
  51. data/lib/kombo/models/shared/postatscandidatesrequestbody_icims.rb +32 -0
  52. data/lib/kombo/models/shared/postatscandidatesrequestbody_icims.rbi +13 -0
  53. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rb +14 -2
  54. data/lib/kombo/models/shared/postatscandidatesrequestbody_remote_fields.rbi +6 -0
  55. data/lib/kombo/models/shared/postatscandidatesrequestbody_talentsoft.rb +6 -2
  56. data/lib/kombo/models/shared/postatscandidatesrequestbody_talentsoft.rbi +2 -0
  57. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_emplypeople.rb +32 -0
  58. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_emplypeople.rbi +13 -0
  59. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_fountain.rb +44 -0
  60. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_fountain.rbi +19 -0
  61. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_icims.rb +32 -0
  62. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_icims.rbi +13 -0
  63. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rb +14 -2
  64. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_remote_fields.rbi +6 -0
  65. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_talentsoft.rb +6 -2
  66. data/lib/kombo/models/shared/postatsjobsjobidapplicationsrequestbody_talentsoft.rbi +2 -0
  67. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_lever.rb +32 -0
  68. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_lever.rbi +13 -0
  69. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rb +6 -2
  70. data/lib/kombo/models/shared/putatsapplicationsapplicationidstagerequestbody_remote_fields.rbi +2 -0
  71. data/lib/kombo/models/shared/work_location.rb +6 -2
  72. data/lib/kombo/models/shared/work_location.rbi +2 -0
  73. data/lib/kombo/models/shared.rb +14 -0
  74. data/lib/kombo/sdkconfiguration.rb +3 -3
  75. metadata +30 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fe1f739bbc04ed61ad38bef2effdb2f3630cd08840e7b35724ac5ef51dc4a8f
4
- data.tar.gz: d24c68855a6da134d09492e37b0403cd5945a98e622583438a728ad925ac2b9d
3
+ metadata.gz: dafcf87dbcd4030c5c4fcca87577dbb035b839508fc5cb5c4dbcf151a3743a42
4
+ data.tar.gz: 5039a5ded19b97282d78b1e451372f2ee66967f70b24c8262890b210610a243d
5
5
  SHA512:
6
- metadata.gz: '054178bec2ff26b3beb0378e00ffec16122f77f1477421e64cdd7a5de71b798d6f3fe0fa6cef5de75c4698997bb69e61894e4bef4a50dc44956b13f21f2ebe4f'
7
- data.tar.gz: 31edc1371125d0445d80e2e6c0f2d78f44398e28ec8b0bf2222a37f105a27825ad3c2ed93e3f1274db475833c9a43b6dff4ee7a702fc540451e5a3fe0f48efd2
6
+ metadata.gz: cde4aba61d6ffbbcc0b29cc15c71eb63d2ab1e1b2aac59a121a2185227aa4696dee7c1e2f3a97ed25cebb77db6d0de9db1bf6b2442f24dd14c57fbdacbf42057
7
+ data.tar.gz: d14566f9b669859d2d1a087702c1c42d1763015dec33f9dae16ff4411f8d3e2971045062a166351600150cc253e5efa265878a5e585e433aa44df7fec458ca85
data/lib/kombo/ats.rb CHANGED
@@ -694,6 +694,8 @@ module Kombo
694
694
  #
695
695
  # Get attachments from an application. If the ATS stores the attachments on the candidate, it will get the attachments from the corresponding candidate instead.
696
696
  #
697
+ # This endpoint calls the ATS on every request. To get the files of all candidates without a request per application, use [synced attachments](/ats/features/attachments).
698
+ #
697
699
  # <Note>
698
700
  # This endpoint requires the permission **Read document attachments** to be enabled in [your scope config](/scopes).
699
701
  # </Note>
@@ -1505,6 +1507,8 @@ module Kombo
1505
1507
  # get_candidate_attachments - Get candidate attachments
1506
1508
  # Get attachments from a candidate, including all attachments of all of their applications.
1507
1509
  #
1510
+ # This endpoint calls the ATS on every request. To get the files of all candidates without a request per candidate, use [synced attachments](/ats/features/attachments).
1511
+ #
1508
1512
  # <Note>
1509
1513
  # This endpoint requires the permission **Read document attachments** to be enabled in [your scope config](/scopes).
1510
1514
  # </Note>
@@ -4078,9 +4082,9 @@ module Kombo
4078
4082
  # get_ats_attachments - Get attachments
4079
4083
  # Retrieve all attachments.
4080
4084
  #
4081
- # These attachments are already synced, so this endpoint never calls the ATS and the files sit in the destination you configured.
4085
+ # Returns the attachments Kombo synced into your file destination.
4082
4086
  #
4083
- # The on-demand alternatives call the ATS and return a `data_url` we host: [get candidate attachments](/ats/v1/get-candidates-candidate-id-attachments) for every file of one candidate, [get application attachments](/ats/v1/get-applications-application-id-attachments) for the files of one application.
4087
+ # [Attachments](/ats/features/attachments) compares synced attachments with reading files on demand.
4084
4088
  #
4085
4089
  # 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)`
4086
4090
  request = Models::Operations::GetAtsAttachmentsRequest.new(
data/lib/kombo/general.rb CHANGED
@@ -309,6 +309,7 @@ module Kombo
309
309
  # |Abacus|`abacus/api`|Abacus [REST API](https://apihub.abacus.ch/). We automatically authenticate all requests and use `https://\{\{abacusUrl\}\}/api/entity/v1/mandants/\{\{mandantId\}\}` as the base URL.|
310
310
  # |Absence.io|`absenceio/v2`|Absence.io [API](https://docs.absence.io/). We automatically authenticate all requests and use `https://app.absence.io/api/v2` as the base URL.|
311
311
  # |ADP Decidium|`adpdecidium/default`|[ADP Decidium API](https://developers.adp.com/apis/api-explorer/hcm-offrg-dge). We automatically authenticate all requests and use `https://api.eu.adp.com` as the base URL.|
312
+ # |ADP Link|`adplink/default`|[ADP Link API](https://developers.adp.com/apis/api-explorer/hcm-offrg-dge). We automatically authenticate all requests and use `https://api.eu.adp.com` as the base URL.|
312
313
  # |ADP Workforce Now|`adpworkforcenow/default`|[ADP Workforce Now API v2](https://developers.adp.com/build/api-explorer/hcm-offrg-wfn). We automatically authenticate all requests and use the correct subdomain.|
313
314
  # |AFAS Software|`afas/api`|AFAS' [API](https://connect.afas.nl/rest/get). We automatically authenticate all requests and use `https://\{domain\}/ProfitRestServices` as the base URL.|
314
315
  # |AlexisHR|`alexishr/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\{subdomain\}.alexishr.com` as base URL.|
@@ -322,6 +323,7 @@ module Kombo
322
323
  # |BambooHR|`bamboohr/v1`|BambooHR's [API](https://documentation.bamboohr.com/reference/get-employee). We automatically authenticate all requests using the customer credentials `https://api.bamboohr.com/api/gateway.php/\{subdomain\}/v1` as the base URL.|
323
324
  # |BITE|`bite/v1`|[Bite's v1 API](https://api.b-ite.io/docs/#/). We automatically authenticate all requests and use your configured API base URL with `/v1` appended (default `https://api.b-ite.io/v1`).|
324
325
  # |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.|
326
+ # |Breathe HR|`breathehr/v1`|Breathe HR's [API](https://developer.breathehr.com/). We automatically authenticate all requests and use `https://api.breathehr.com/v1` as the base URL.|
325
327
  # |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.|
326
328
  # |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).|
327
329
  # |Bullhorn|`bullhorn/default`|[Bullhorn's API](https://bullhorn.github.io/rest-api-docs/index.html). We automatically use the right `https://\{subdomain\}.bullhornstaffing.com/rest-services/\{corpToken\}` base URL.|
@@ -329,7 +331,7 @@ module Kombo
329
331
  # |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.|
330
332
  # |Carerix|`carerixgraphql/graphql`|Carerix [GraphQL API](https://docs.carerix.io/graphql/welcome). We automatically authenticate all requests (OAuth2 client credentials) and use `https://api.carerix.io/graphql/v1` as the base URL. Send GraphQL requests as `POST /graphql` with a JSON body of `\{ "query": "...", "variables": \{ ... \} \}`.|
331
333
  # |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.|
332
- # |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.|
334
+ # |CEGID TalentSoft FrontOffice|`talentsoft/v2`|Cegid Talentsoft Recruiting FrontOffice [API](https://cegid-hr-developers.talentsoft.net/docs/Talentsoft%20Recrutement/frontoffice/). We automatically authenticate all requests using the provided credentials and use `https://\{domain\}/api/v2` as the base URL.|
333
335
  # |Ceipal|`ceipal/v1`|We use `https://api.ceipal.com/v1` as the base URL. Find the official docs [here](https://developer.ceipal.com/ceipal-ats-version-one/ceipal-ats-v1-api-reference).|
334
336
  # |Cezanne HR|`cezannehr/dataservice`|[CezanneHR's v7 dataservice API](https://api.cezannehr.com/).We automatically authenticate all requests and use the base URL `https://\{subdomain\}.cezanneondemand.com/cezanneondemand/v7/dataservice.svc`|
335
337
  # |Compleet (Persy)|`compleetpersy/api`|Compleet Persy [REST API](https://persy-api.refined.site/space/PAPI/450166808/Requirements+Jobfeed+%2F+Anforderungen+f%C3%BCr+Jobfeeds). We automatically authenticate all requests and use `https://www.germanpersonnel.de/persy/api/v1` as the base URL.|
@@ -357,7 +359,7 @@ module Kombo
357
359
  # |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|
358
360
  # |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.|
359
361
  # |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.|
360
- # |Docebo|`docebo/api`|Docebo [API](https://developer.docebo.com). We automatically handle authentication and use `https://\{subdomain\}.docebosaas.com` as the base URL.|
362
+ # |Docebo|`docebo/api`|Docebo [API](https://developer.docebo.com). We automatically handle authentication via OAuth and use `https://\{subdomain\}.docebosaas.com` as the base URL.|
361
363
  # |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.|
362
364
  # |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.|
363
365
  # |Emply People|`emplypeople/v2`|We use `https://api.emply.com/v2` as the base URL. Find the official docs [here](https://api.emply.com/v2/index.html).|
@@ -389,7 +391,7 @@ module Kombo
389
391
  # |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.|
390
392
  # |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.|
391
393
  # |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.|
392
- # |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.|
394
+ # |HiBob|`hibob/v1`|[HiBob's v1 API](https://apidocs.hibob.com/reference/get_people), including the [hiring endpoints](https://apidocs.hibob.com/docs/explore-hiring-api). 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.|
393
395
  # |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.|
394
396
  # |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`).|
395
397
  # |HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.|
@@ -404,10 +406,11 @@ module Kombo
404
406
  # |JobAdder|`jobadder/api`|We use `https://api.jobadder.com/v2` as the base URL. Find the official docs [here](https://api.jobadder.com/v2/docs).|
405
407
  # |JobDiva|`jobdiva/api`|We automatically authenticate all requests and use `https://api.jobdiva.com` as the base URL.|
406
408
  # |Jobvite|`jobvite/api`|We automatically authenticate all requests and use 'https://api.jobvite.com/api/v2' as the base URL.|
407
- # |Jobvite|`jobvite/v2`|We use `https://api.jobvite.com/api/v2` as the base URL. Find the official docs [here](https://help.jobvite.com/hc/en-us/articles/8870636608925-Jobvite-API).|
409
+ # |Jobvite|`jobvite/v2`|Production connections use `https://api.jobvite.com/api/v2` as the base URL. Staging connections (`remote_environment: STAGING`) use `https://api.jvistg2.com/api/v2`. Find the official docs [here](https://help.jobvite.com/hc/en-us/articles/8870636608925-Jobvite-API).|
408
410
  # |Jobylon|`jobylon/feed`|The [Jobylon Feed API](https://developer.jobylon.com/feed-api/). We automatically authenticate all requests and use `https://\{subdomain\}.jobylon.com/feeds/\{job_hash\}` as the base URL.|
409
411
  # |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.|
410
412
  # |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.|
413
+ # |Kallidus (Sapling)|`sapling/v1`|Kallidus Sapling's [API](https://kallidus.readme.io/v1.9/reference/overview). We automatically authenticate all requests and use `https://\{subdomain\}.saplingapp.io/api/v1/beta` (US) or `https://\{subdomain\}.kallidus-suite.com/hr/api/v1/beta` (UK) as the base URL.|
411
414
  # |Kenjo|`kenjo/api`|Kenjo's [API](https://kenjo.readme.io/reference/generate-the-api-key). We automatically authenticate all requests using the API key. The base URL is `https://api.kenjo.io/` (or `https://sandbox-api.kenjo.io/` for sandbox environments).|
412
415
  # |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.|
413
416
  # |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.|
@@ -419,7 +422,7 @@ module Kombo
419
422
  # |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).|
420
423
  # |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.|
421
424
  # |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).|
422
- # |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`).|
425
+ # |Loket|`loket/api`|[Loket's REST API](https://developer.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`).|
423
426
  # |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.|
424
427
  # |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.|
425
428
  # |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.|
@@ -456,6 +459,7 @@ module Kombo
456
459
  # |PeopleXD|`peoplexd/b2b`|PeopleXD's [B2B API](https://documenter.getpostman.com/view/3101638/TzeTHUDu#intro). We automatically authenticate all requests and use `https://api.corehr.com/ws/\{tenant_id\}/corehr` or `https://uatapi.corehr.com/ws/\{tenant_id\}/corehr` as the base URL.|
457
460
  # |Personio|`personio/jobboard`|API endpoints exposed on Personio's public job board pages ([currently just the XML feed](https://developer.personio.de/reference/get_xml)). We automatically use the right `https://\{company\}.jobs.personio.de` base URL.|
458
461
  # |Personio|`personio/personnel`|Personio's [Personnel Data API](https://developer.personio.de/reference/get_company-employees). We automatically authenticate all requests using the client ID and secret and use `https://api.personio.de/v1` as the base URL.|
462
+ # |Personio|`personio/personnelv2`|Personio's [V2 Data API](https://developer.personio.de/v2.0/reference/introduction). We automatically authenticate all requests using the client ID and secret and use `https://api.personio.de/v2` as the base URL.|
459
463
  # |Personio|`personio/personnelv2`|Personio's [V2 Personnel Data API](https://developer.personio.de/v2.0/reference/introduction). We automatically authenticate all requests using the client ID and secret and use `https://api.personio.de/v2` as the base URL.|
460
464
  # |Personio|`personio/recruiting`|Personio's [Recruiting API](https://developer.personio.de/reference/get_company-employees). We automatically authenticate all requests using the Recruiting access token and use `https://api.personio.de/v1/recruiting` as the base URL.|
461
465
  # |Personio|`personio/recruitingV2`|Personio's [V2 Recruiting API](https://developer.personio.de/reference/get_v2-recruiting-applications). We automatically authenticate all requests using the Recruiting access token, send the `Beta` header and use `https://api.personio.de/v2/recruiting` as the base URL.|
@@ -472,6 +476,8 @@ module Kombo
472
476
  # |Sage People|`sagepeople/salesforce-rest-api`|Sage People is built on Salesforce's [API](https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_what_is_rest_api.htm). We automatically authenticate all requests and use `https://\{customer_name\}.my.salesforce.com/` as the base URL.|
473
477
  # |SAP SuccessFactors|`successfactors/lms-odata-v4`|We use `https://\{api_domain\}/learning/odatav4` as the base URL. Find the official docs [here](https://help.sap.com/docs/successfactors-learning/sap-successfactors-learning-odata-apis).|
474
478
  # |SAP SuccessFactors|`successfactors/odata-v2`|[SuccessFactors' OData V2 API](https://help.sap.com/doc/74597e67f54d4f448252bad4c2b601c9/2211/en-US/SF_HCM_OData_API_REF_en.pdf). We automatically authenticate all requests and use `https://\{api_domain\}\{path?\}/odata/v2` as the base URL (the optional `\{path\}` is used when connecting via proxied/gateway domains).|
479
+ # |SAP SuccessFactors|`successfactors/odata-v4`|[SuccessFactors' OData V4 API](https://help.sap.com/doc/a7c08a422cc14e1eaaffee83610a981d/2611/en-US/SF_HCM_OData_API_DEV.pdf). We automatically authenticate all requests and use `https://\{api_domain\}\{path?\}/odatav4` as the base URL (the optional `\{path\}` is used when connecting via proxied/gateway domains).|
480
+ # |SAP SuccessFactors|`successfactors/rest`|[SuccessFactors' REST APIs](https://help.sap.com/doc/a7c08a422cc14e1eaaffee83610a981d/2611/en-US/SF_HCM_OData_API_DEV.pdf). We automatically authenticate all requests and use `https://\{api_domain\}\{path?\}/rest` as the base URL (the optional `\{path\}` is used when connecting via proxied/gateway domains).|
475
481
  # |SD Worx|`sdworx/default`|SD Worx's [OData API](https://apistaging.cobra.sdworx.com/Resources). We automatically authenticate all requests using the client ID and secret and use `\{api_url\}` as the base URL.|
476
482
  # |Silae|`silae/rest`|[Silae's REST API](https://silae-api.document360.io/docs). We automatically authenticate all requests and use 'https://payroll-api.silae.fr/payroll' as the base URL.|
477
483
  # |Simployer|`simployer/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\{subdomain\}.alexishr.com` as base URL.|
@@ -484,6 +490,7 @@ module Kombo
484
490
  # |Softgarden|`softgarden/frontend-v3`|[Softgarden's Frontend API v3](https://dev.softgarden.de/frontend-v3/. We automatically authenticate all requests and use 'https://api.softgarden.io/api/rest' as base URL.|
485
491
  # |Spark Hire Recruit|`comeet/api`|[Spark Hire Recruit's API.](https://developers.comeet.com/reference/recruiting-api-overview)We automatically authenticate all requests and use `https://api.comeet.com` as the base URL.|
486
492
  # |Spott|`spott/protected`|The [Spott API](https://docs.gospott.com). We automatically authenticate all requests and use `https://api.gospott.com` as the base URL.|
493
+ # |Stardex|`stardex/v1`|We use `https://api.stardex.ai` as the base URL. Find the official docs [here](https://docs.stardex.com/api-reference/introduction-v1).|
487
494
  # |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.|
488
495
  # |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.|
489
496
  # |Talent360|`talent360/v3`|We use `https://api.talent360.io/V3` as the base URL. Find the official docs [here](https://api-doc.talent360.io/).|
@@ -502,10 +509,13 @@ module Kombo
502
509
  # |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.|
503
510
  # |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.|
504
511
  # |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.|
512
+ # |UKG Ready|`ukgready/v2`|UKG Ready [API](https://secure.saashr.com/ta/docs/rest/public/). We automatically authenticate all requests and use `https://\{api_domain\}/ta/rest/v2/companies/!\{short_name\}` as the base URL.|
513
+ # |VEDA HR Suite|`veda/api`|VEDA's [API](https://api.veda.net). We automatically authenticate all requests and use `https://\{domain\}/api` as the base URL.|
505
514
  # |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.|
506
515
  # |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.|
507
516
  # |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.|
508
517
  # |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.|
518
+ # |Workable|`workable/v3`|We use `https://\{subdomain\}.workable.com/spi/v3` as the base URL. Find the official docs [here](https://www.workable.com/docs/api/overview).|
509
519
  # |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.|
510
520
  # |Workday|`workday/custom-report`|[Workday's Custom Reports](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests and use `https://\{domain\}/ccx/service/customreport2/\{tenant\}/` as the base URL. Set your `method` to `GET`. The `path` should be the report path after the tenant, e.g., `/\{report_owner\}/\{report_name\}`. You can include query parameters in the `params` object (e.g., `format=json`).|
511
521
  # |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".|
data/lib/kombo/hris.rb CHANGED
@@ -2290,8 +2290,6 @@ module Kombo
2290
2290
  #
2291
2291
  # Retrieve attendance data and timesheets from HRIS tools.
2292
2292
  #
2293
- # <Warning>**Open Beta Feature:** This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.</Warning>
2294
- #
2295
2293
  # For a detailed explanation of the data model, validation rules, time zones, payable hours, approvals, and break patterns, see the [Time & Attendance guide](/hris/features/time-and-attendance).
2296
2294
  #
2297
2295
  # <Note>
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Shared
10
+ # The year-to-date amount of the line item as returned by the remote system. Kombo never calculates this value. `null` when the remote API does not provide a year-to-date amount.
11
+ class AmountYtd
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
+ field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+
20
+ sig { params(currency: ::String, value: ::Float).void }
21
+ def initialize(currency:, value:)
22
+ @currency = currency
23
+ @value = value
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 @currency == other.currency
30
+ return false unless @value == other.value
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::AmountYtd
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::AmountYtd
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ end
@@ -12,7 +12,7 @@ module Kombo
12
12
  extend T::Sig
13
13
  include Crystalline::MetadataFields
14
14
 
15
- # Bank routing number (e.g. DE Bankleitzahl, GB Sort Code, US ABA routing number, AU BSB code). This field is not formatted and therefore might contain delimiters (eg. 01-23-45).
15
+ # Bank routing number (e.g. DE Bankleitzahl, GB Sort Code, US ABA routing number, AU BSB code, SG bank and branch code). This field is not formatted and therefore might contain delimiters (eg. 01-23-45).
16
16
  field :number, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('number'), required: true } }
17
17
  # Enum of the routing type, prefixed with the iso-3166-1-alpha-2 banks origin country. If there is uncertainty about the type, it will be set to null.
18
18
  field :type, Crystalline::Nilable.new(Models::Shared::DomesticBankRoutingType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::DomesticBankRoutingType, false) } }
@@ -16,6 +16,7 @@ module Kombo
16
16
  CA_ROUTING_NUMBER = new('CA_ROUTING_NUMBER')
17
17
  AU_BSB_CODE = new('AU_BSB_CODE')
18
18
  FR_RIB = new('FR_RIB')
19
+ SG_BANK_BRANCH_CODE = new('SG_BANK_BRANCH_CODE')
19
20
  end
20
21
  end
21
22
  end
@@ -28,9 +28,11 @@ module Kombo
28
28
  field :type, Crystalline::Nilable.new(Models::Shared::GetHrisGroupsPositiveResponseType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::GetHrisGroupsPositiveResponseType, false) } }
29
29
  # The Kombo ID of the group’s parent group in the organizational structure. The ID can be used to retrieve the group from the `get groups` endpoint.
30
30
  field :parent_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('parent_id'), required: true } }
31
+ # A key-value store of fields not covered by the schema. [Read more](/custom-fields)
32
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields'), required: true } }
31
33
 
32
- sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), type: T.nilable(Models::Shared::GetHrisGroupsPositiveResponseType), parent_id: T.nilable(::String)).void }
33
- def initialize(id:, remote_id:, changed_at:, name: nil, remote_deleted_at: nil, type: nil, parent_id: nil)
34
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), type: T.nilable(Models::Shared::GetHrisGroupsPositiveResponseType), parent_id: T.nilable(::String), custom_fields: T.nilable(T::Hash[Symbol, ::Object])).void }
35
+ def initialize(id:, remote_id:, changed_at:, name: nil, remote_deleted_at: nil, type: nil, parent_id: nil, custom_fields: nil)
34
36
  @id = id
35
37
  @remote_id = remote_id
36
38
  @changed_at = changed_at
@@ -38,6 +40,7 @@ module Kombo
38
40
  @remote_deleted_at = remote_deleted_at
39
41
  @type = type
40
42
  @parent_id = parent_id
43
+ @custom_fields = custom_fields
41
44
  end
42
45
 
43
46
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -50,6 +53,7 @@ module Kombo
50
53
  return false unless @remote_deleted_at == other.remote_deleted_at
51
54
  return false unless @type == other.type
52
55
  return false unless @parent_id == other.parent_id
56
+ return false unless @custom_fields == other.custom_fields
53
57
  true
54
58
  end
55
59
  end
@@ -22,4 +22,6 @@ class Kombo::Models::Shared::GetHrisGroupsPositiveResponseResult
22
22
  def type=(str_); end
23
23
  def parent_id(); end
24
24
  def parent_id=(str_); end
25
+ def custom_fields(); end
26
+ def custom_fields=(str_); end
25
27
  end
@@ -24,16 +24,19 @@ module Kombo
24
24
  # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
25
25
  # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
26
26
  field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
27
+ # A key-value store of fields not covered by the schema. [Read more](/custom-fields)
28
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields'), required: true } }
27
29
  # The legal entity’s address.
28
30
  field :address, Crystalline::Nilable.new(Models::Shared::GetHrisLegalEntitiesPositiveResponseAddress), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('address') } }
29
31
 
30
- sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), address: T.nilable(Models::Shared::GetHrisLegalEntitiesPositiveResponseAddress)).void }
31
- def initialize(id:, changed_at:, remote_id: nil, name: nil, remote_deleted_at: nil, address: nil)
32
+ sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), address: T.nilable(Models::Shared::GetHrisLegalEntitiesPositiveResponseAddress)).void }
33
+ def initialize(id:, changed_at:, remote_id: nil, name: nil, remote_deleted_at: nil, custom_fields: nil, address: nil)
32
34
  @id = id
33
35
  @changed_at = changed_at
34
36
  @remote_id = remote_id
35
37
  @name = name
36
38
  @remote_deleted_at = remote_deleted_at
39
+ @custom_fields = custom_fields
37
40
  @address = address
38
41
  end
39
42
 
@@ -45,6 +48,7 @@ module Kombo
45
48
  return false unless @remote_id == other.remote_id
46
49
  return false unless @name == other.name
47
50
  return false unless @remote_deleted_at == other.remote_deleted_at
51
+ return false unless @custom_fields == other.custom_fields
48
52
  return false unless @address == other.address
49
53
  true
50
54
  end
@@ -18,6 +18,8 @@ class Kombo::Models::Shared::GetHrisLegalEntitiesPositiveResponseResult
18
18
  def name=(str_); end
19
19
  def remote_deleted_at(); end
20
20
  def remote_deleted_at=(str_); end
21
+ def custom_fields(); end
22
+ def custom_fields=(str_); end
21
23
  def address(); end
22
24
  def address=(str_); end
23
25
  end
@@ -26,17 +26,20 @@ module Kombo
26
26
  # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
27
27
  # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
28
28
  field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
29
+ # A key-value store of fields not covered by the schema. [Read more](/custom-fields)
30
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields'), required: true } }
29
31
  # The work location’s address
30
32
  field :address, Crystalline::Nilable.new(Models::Shared::GetHrisLocationsPositiveResponseAddress), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('address') } }
31
33
 
32
- sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), name: T.nilable(::String), type: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), address: T.nilable(Models::Shared::GetHrisLocationsPositiveResponseAddress)).void }
33
- def initialize(id:, changed_at:, remote_id: nil, name: nil, type: nil, remote_deleted_at: nil, address: nil)
34
+ sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), name: T.nilable(::String), type: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), custom_fields: T.nilable(T::Hash[Symbol, ::Object]), address: T.nilable(Models::Shared::GetHrisLocationsPositiveResponseAddress)).void }
35
+ def initialize(id:, changed_at:, remote_id: nil, name: nil, type: nil, remote_deleted_at: nil, custom_fields: nil, address: nil)
34
36
  @id = id
35
37
  @changed_at = changed_at
36
38
  @remote_id = remote_id
37
39
  @name = name
38
40
  @type = type
39
41
  @remote_deleted_at = remote_deleted_at
42
+ @custom_fields = custom_fields
40
43
  @address = address
41
44
  end
42
45
 
@@ -49,6 +52,7 @@ module Kombo
49
52
  return false unless @name == other.name
50
53
  return false unless @type == other.type
51
54
  return false unless @remote_deleted_at == other.remote_deleted_at
55
+ return false unless @custom_fields == other.custom_fields
52
56
  return false unless @address == other.address
53
57
  true
54
58
  end
@@ -20,6 +20,8 @@ class Kombo::Models::Shared::GetHrisLocationsPositiveResponseResult
20
20
  def type=(str_); end
21
21
  def remote_deleted_at(); end
22
22
  def remote_deleted_at=(str_); end
23
+ def custom_fields(); end
24
+ def custom_fields=(str_); end
23
25
  def address(); end
24
26
  def address=(str_); end
25
27
  end
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -14,7 +14,7 @@ module Kombo
14
14
 
15
15
  # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
16
  field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
- # The monetary value.
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
18
  field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
19
 
20
20
  sig { params(currency: ::String, value: ::Float).void }
@@ -25,20 +25,23 @@ module Kombo
25
25
  field :employee, Models::Shared::Employee, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('employee'), required: true } }
26
26
  # The individual earnings, deductions, and contributions that make up the payslip.
27
27
  field :line_items, Crystalline::Array.new(Models::Shared::LineItem), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('line_items'), required: true } }
28
+ # A key-value store of fields not covered by the schema. [Read more](/custom-fields)
29
+ field :custom_fields, Crystalline::Nilable.new(Crystalline::Hash.new(Symbol, ::Object)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('custom_fields'), required: true } }
28
30
  # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.
29
31
  # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
30
32
  field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } }
31
33
  # The pay run the payslip was paid out through.
32
34
  field :pay_run, Crystalline::Nilable.new(Models::Shared::PayRun), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('pay_run'), required: true } }
33
35
 
34
- sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayslipsPositiveResponseTotals, employee: Models::Shared::Employee, line_items: T::Array[Models::Shared::LineItem], remote_deleted_at: T.nilable(::DateTime), pay_run: T.nilable(Models::Shared::PayRun)).void }
35
- def initialize(id:, remote_id:, changed_at:, totals:, employee:, line_items:, remote_deleted_at: nil, pay_run: nil)
36
+ sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayslipsPositiveResponseTotals, employee: Models::Shared::Employee, line_items: T::Array[Models::Shared::LineItem], custom_fields: T.nilable(T::Hash[Symbol, ::Object]), remote_deleted_at: T.nilable(::DateTime), pay_run: T.nilable(Models::Shared::PayRun)).void }
37
+ def initialize(id:, remote_id:, changed_at:, totals:, employee:, line_items:, custom_fields: nil, remote_deleted_at: nil, pay_run: nil)
36
38
  @id = id
37
39
  @remote_id = remote_id
38
40
  @changed_at = changed_at
39
41
  @totals = totals
40
42
  @employee = employee
41
43
  @line_items = line_items
44
+ @custom_fields = custom_fields
42
45
  @remote_deleted_at = remote_deleted_at
43
46
  @pay_run = pay_run
44
47
  end
@@ -52,6 +55,7 @@ module Kombo
52
55
  return false unless @totals == other.totals
53
56
  return false unless @employee == other.employee
54
57
  return false unless @line_items == other.line_items
58
+ return false unless @custom_fields == other.custom_fields
55
59
  return false unless @remote_deleted_at == other.remote_deleted_at
56
60
  return false unless @pay_run == other.pay_run
57
61
  true
@@ -20,6 +20,8 @@ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseResult
20
20
  def employee=(str_); end
21
21
  def line_items(); end
22
22
  def line_items=(str_); end
23
+ def custom_fields(); end
24
+ def custom_fields=(str_); end
23
25
  def remote_deleted_at(); end
24
26
  def remote_deleted_at=(str_); end
25
27
  def pay_run(); end
@@ -18,12 +18,21 @@ module Kombo
18
18
  field :net_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay') } }
19
19
  # The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions.
20
20
  field :paid_amount, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount') } }
21
+ # The year-to-date gross pay as returned by the remote system. Kombo never calculates this value. `null` when the remote API does not provide a year-to-date amount.
22
+ field :gross_pay_ytd, Crystalline::Nilable.new(Models::Shared::GrossPayYtd), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('gross_pay_ytd') } }
23
+ # The year-to-date net pay as returned by the remote system. Kombo never calculates this value. `null` when the remote API does not provide a year-to-date amount.
24
+ field :net_pay_ytd, Crystalline::Nilable.new(Models::Shared::NetPayYtd), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay_ytd') } }
25
+ # The year-to-date paid amount as returned by the remote system. Kombo never calculates this value. `null` when the remote API does not provide a year-to-date amount.
26
+ field :paid_amount_ytd, Crystalline::Nilable.new(Models::Shared::PaidAmountYtd), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount_ytd') } }
21
27
 
22
- sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount)).void }
23
- def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil)
28
+ sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount), gross_pay_ytd: T.nilable(Models::Shared::GrossPayYtd), net_pay_ytd: T.nilable(Models::Shared::NetPayYtd), paid_amount_ytd: T.nilable(Models::Shared::PaidAmountYtd)).void }
29
+ def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil, gross_pay_ytd: nil, net_pay_ytd: nil, paid_amount_ytd: nil)
24
30
  @gross_pay = gross_pay
25
31
  @net_pay = net_pay
26
32
  @paid_amount = paid_amount
33
+ @gross_pay_ytd = gross_pay_ytd
34
+ @net_pay_ytd = net_pay_ytd
35
+ @paid_amount_ytd = paid_amount_ytd
27
36
  end
28
37
 
29
38
  sig { params(other: T.untyped).returns(T::Boolean) }
@@ -32,6 +41,9 @@ module Kombo
32
41
  return false unless @gross_pay == other.gross_pay
33
42
  return false unless @net_pay == other.net_pay
34
43
  return false unless @paid_amount == other.paid_amount
44
+ return false unless @gross_pay_ytd == other.gross_pay_ytd
45
+ return false unless @net_pay_ytd == other.net_pay_ytd
46
+ return false unless @paid_amount_ytd == other.paid_amount_ytd
35
47
  true
36
48
  end
37
49
  end
@@ -14,4 +14,10 @@ class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseTotals
14
14
  def net_pay=(str_); end
15
15
  def paid_amount(); end
16
16
  def paid_amount=(str_); end
17
+ def gross_pay_ytd(); end
18
+ def gross_pay_ytd=(str_); end
19
+ def net_pay_ytd(); end
20
+ def net_pay_ytd=(str_); end
21
+ def paid_amount_ytd(); end
22
+ def paid_amount_ytd=(str_); end
17
23
  end
@@ -0,0 +1,36 @@
1
+ # Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
2
+
3
+ # typed: true
4
+ # frozen_string_literal: true
5
+
6
+
7
+ module Kombo
8
+ module Models
9
+ module Shared
10
+ # The year-to-date gross pay as returned by the remote system. Kombo never calculates this value. `null` when the remote API does not provide a year-to-date amount.
11
+ class GrossPayYtd
12
+ extend T::Sig
13
+ include Crystalline::MetadataFields
14
+
15
+ # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in.
16
+ field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } }
17
+ # The monetary value. See the integration’s limitations for whether this value is rounded. Rounded values use mathematical rounding (half away from zero).
18
+ field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } }
19
+
20
+ sig { params(currency: ::String, value: ::Float).void }
21
+ def initialize(currency:, value:)
22
+ @currency = currency
23
+ @value = value
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 @currency == other.currency
30
+ return false unless @value == other.value
31
+ true
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,15 @@
1
+ # typed: true
2
+ # frozen_string_literal: true
3
+
4
+
5
+ class Kombo::Models::Shared::GrossPayYtd
6
+ extend ::Crystalline::MetadataFields::ClassMethods
7
+ end
8
+
9
+
10
+ class Kombo::Models::Shared::GrossPayYtd
11
+ def currency(); end
12
+ def currency=(str_); end
13
+ def value(); end
14
+ def value=(str_); end
15
+ end