diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock
index 3451af99..02f3fd20 100644
--- a/.speakeasy/gen.lock
+++ b/.speakeasy/gen.lock
@@ -1,19 +1,19 @@
lockVersion: 2.0.0
id: a945ea15-b620-47b9-9868-c165c173bf88
management:
- docChecksum: 1a5ccdbcfe223bcdfb2e76cc1c64228f
+ docChecksum: 45fd69816296ca36485ed862b4705f20
docVersion: 1.0.0
speakeasyVersion: 1.700.2
generationVersion: 2.801.2
- releaseVersion: 1.0.4
- configChecksum: a2ec9b798c6c09fa8517ddb6f2353608
+ releaseVersion: 1.0.5
+ configChecksum: 6646c496d1f63192be2db3e3d48c0e14
repoURL: https://github.com/kombohq/ruby-sdk.git
installationURL: https://github.com/kombohq/ruby-sdk
published: true
persistentEdits:
- generation_id: 85633cd8-3064-4218-873f-efe34cab5487
- pristine_commit_hash: de1822ef45469e59598196bc17359b071cba642a
- pristine_tree_hash: 8a5cabd1d95ad0d32ac51b19148fdfd9baaed3d7
+ generation_id: ee23a227-6c9e-4349-b893-5c77fd2002b3
+ pristine_commit_hash: 25b9d631d24ebe4df1a962b0df8f60e7069b762c
+ pristine_tree_hash: 9ab84ac27a8120f9e0f6bf9866b49e793338ce0b
features:
ruby:
constsAndDefaults: 0.1.1
@@ -48,8 +48,8 @@ trackedFiles:
pristine_git_object: b0ea40558f3ca80dcf7d30b159d34a1e5ab33440
Gemfile.lock:
id: 21fb5836b499
- last_write_checksum: sha1:c790ffa0c13687c11df31ebebb8f54ba4620ee9e
- pristine_git_object: 7a3b95bb8a2eb56583d8db73eec872c0b958d80d
+ last_write_checksum: sha1:345828c4ea70461765a6f5d6653abd79b99ac956
+ pristine_git_object: 0fb7b304f8fc84a3f23da3ece141442f262d208e
Rakefile:
id: 44b7fa1ba503
last_write_checksum: sha1:bb15946e7c34d00098a6ee8fef994bbd57960092
@@ -182,6 +182,14 @@ trackedFiles:
id: f17bfac7904b
last_write_checksum: sha1:5cb1e1a5b0fc4df1c36e2bd27d21cf5fe06e1b6a
pristine_git_object: 434df4895eb0c0a25f721ae38d45f3d4ab5a0260
+ docs/models/operations/getatsrolesrequest.md:
+ id: c9b363532bdb
+ last_write_checksum: sha1:a3736a9cd09f0a77e5546268bedda41f34abe582
+ pristine_git_object: 32f3f88c101dfe58e1394d46afe3ba2d82c2d9b1
+ docs/models/operations/getatsrolesresponse.md:
+ id: 6e975a192d41
+ last_write_checksum: sha1:4b319187dfb577ab3a239ce6f52ad0f7192e437e
+ pristine_git_object: 141d0ae56d770962f51f1cf784e51ab70f0cbc61
docs/models/operations/getatstagsrequest.md:
id: e4f0fac4a2d3
last_write_checksum: sha1:97451de09ce8061cec5ca43ac113b96dbc12c086
@@ -1152,8 +1160,8 @@ trackedFiles:
pristine_git_object: e6cd02c7b421ceda9814980a8c20c8720be9eeb3
docs/models/shared/getatsjobspositiveresponse.md:
id: 9f6633e45c6d
- last_write_checksum: sha1:9f23235891175e1a0b86c8a608652b711430ef45
- pristine_git_object: a70d37a7373c5c69f28c08bd9e69acdb797289ef
+ last_write_checksum: sha1:6b582cdd8c956610952edbc04651aa4107be6926
+ pristine_git_object: 57ba3a8da119db7fecf815c7c281c2b43b8db563
docs/models/shared/getatsjobspositiveresponsecategory.md:
id: 7297942794a6
last_write_checksum: sha1:abe401cc1943ce198d4b0037445bc9c306e66ba1
@@ -1168,8 +1176,8 @@ trackedFiles:
pristine_git_object: 51dfca002bd25775f9fb6bc041b4d3aedccd64f0
docs/models/shared/getatsjobspositiveresponsehiringteam.md:
id: 80529d8bcd62
- last_write_checksum: sha1:992a6464430628ccf60d71d8597ce55c0f600387
- pristine_git_object: 2ddf0fc5d01cd921e6593a8192fdaac55cb14e95
+ last_write_checksum: sha1:f762865b7b28dbd9e989eb4515807ef665234d28
+ pristine_git_object: 435e1e79efbe382dc07bfd8455b7fd6b1c0cefdd
docs/models/shared/getatsjobspositiveresponsehiringteamrole.md:
id: ba925c3a7423
last_write_checksum: sha1:a8dcc282f369bee90735a21bea943057d69a1d46
@@ -1182,10 +1190,18 @@ trackedFiles:
id: 68ba27f1798a
last_write_checksum: sha1:a14abd7e22469cbe26cc5dd12a5a5c825362653f
pristine_git_object: 1d3f4c49d00993609deffa5a64e0802fbc833542
+ docs/models/shared/getatsjobspositiveresponsescope.md:
+ id: ef186bddc63c
+ last_write_checksum: sha1:2d9b573628398778ffc996a22594dcd814104dbf
+ pristine_git_object: 980dc5e522a096a884837a139402fdb20acc5c68
docs/models/shared/getatsjobspositiveresponsestatus.md:
id: ef09a4c9bb3c
last_write_checksum: sha1:6ddb92a07f43ce9642996cc00d07b4d2a0ab3526
pristine_git_object: 4cdc6694491c763adf6ad6088e996c8197c6cd00
+ docs/models/shared/getatsjobspositiveresponseunifiedtype.md:
+ id: 38a13286eb4e
+ last_write_checksum: sha1:57bcffb6b074cb5d6f330ce3e75eb0fee8c16c4d
+ pristine_git_object: afb7df8d6868381957e772950f5549578e201633
docs/models/shared/getatsofferspositiveresponse.md:
id: 6406956aacb3
last_write_checksum: sha1:414f2dc2ec44f051054a92f18f0902f22a170e22
@@ -1230,6 +1246,26 @@ trackedFiles:
id: 5e11355738d3
last_write_checksum: sha1:be2fbaa23f8d7a9653c17fc885d50b216abb385f
pristine_git_object: 6d4740bca30747da108842be61cbeff741fc48e7
+ docs/models/shared/getatsrolespositiveresponse.md:
+ id: 2554d86f91e2
+ last_write_checksum: sha1:d8389ecf6e764b66fa788b3722d1b9d32315659e
+ pristine_git_object: d67293ea53b1e9e5afb83456beb87b350e1f1351
+ docs/models/shared/getatsrolespositiveresponsedata.md:
+ id: 0d2e90db7576
+ last_write_checksum: sha1:20ee4e146eb4402c317e928c0666cb76f151b24a
+ pristine_git_object: 202e403fde2e4d4e299be7f0eb37db47a51adf7f
+ docs/models/shared/getatsrolespositiveresponseresult.md:
+ id: 6d882b5b8b6a
+ last_write_checksum: sha1:e07e9edab5e6646e8edd3ade5c651c89dd79f9ce
+ pristine_git_object: f133b3c3a937d09249d8261d90ab8425de89e0ab
+ docs/models/shared/getatsrolespositiveresponsescope.md:
+ id: c2ca4766e112
+ last_write_checksum: sha1:8503ed98129c2811b2625f48a1591d6c25c78c17
+ pristine_git_object: 3c2c1ec01de13e1d29114725512b9d0f0e1acdc0
+ docs/models/shared/getatsrolespositiveresponseunifiedtype.md:
+ id: b17d5fcf19b6
+ last_write_checksum: sha1:b7b9865a158a96cf332181043621e0836a6c3ff5
+ pristine_git_object: 046ab774d05f2317404bdf28a70f013f1ae5706d
docs/models/shared/getatstagspositiveresponse.md:
id: 26bfef32cc25
last_write_checksum: sha1:6f029e6cd7ec1c1ae3231cef71b89f3f58bc504a
@@ -1244,20 +1280,28 @@ trackedFiles:
pristine_git_object: 1e54d0d83aab19b8e1e432ce9157dd1ecc288a03
docs/models/shared/getatsuserspositiveresponse.md:
id: e19859f0b307
- last_write_checksum: sha1:806e1f9dfc96a6e2b0518428213387a2d635c501
- pristine_git_object: 20a2f3717601bc5555602be639933a537f8a4e05
+ last_write_checksum: sha1:382cf47ac3016efca043e18aa1b6df7efccdf249
+ pristine_git_object: b0b4f257e6e220bdf6e710633d9a39734215a7e2
docs/models/shared/getatsuserspositiveresponsedata.md:
id: 9f5bdd9e42dd
last_write_checksum: sha1:f79b2e91bad668165442eba90e742f31deb859f7
pristine_git_object: 5c0b81ba99060926f7da1f9700f77cdec6783adc
docs/models/shared/getatsuserspositiveresponseresult.md:
id: 70175595b979
- last_write_checksum: sha1:2828ddb27b7caf9bfd74012ed05ad0aa04e9efb9
- pristine_git_object: 9bdcba1f85f769a1c2077b5f37b385d1b002d499
+ last_write_checksum: sha1:b22b26cd037ee49f8dd7ba08c0b51d97d89a4237
+ pristine_git_object: 1141c636210d5fd971e01d02ffdcba46aab53642
+ docs/models/shared/getatsuserspositiveresponsescope.md:
+ id: 9b2b2fe1aae4
+ last_write_checksum: sha1:57fbc4250395ed66dd01b9245d6ec80751a0e18d
+ pristine_git_object: 3183f2869e18c246b781c81239b0fae530d7fe7b
docs/models/shared/getatsuserspositiveresponsestatus.md:
id: 34e689dc1764
last_write_checksum: sha1:89da85c3be92adbf68b23c1670ccd095c2eda2ba
pristine_git_object: 595625e1f9e7065af7d7843222fd3d7485011e14
+ docs/models/shared/getatsuserspositiveresponseunifiedtype.md:
+ id: 3026bf993341
+ last_write_checksum: sha1:a7b25d985d2e3e43152d9edff11c468d6ae421d9
+ pristine_git_object: a0b02b057cd41d75d361e688e3cd02e7535511f9
docs/models/shared/getcheckapikeypositiveresponse.md:
id: 8276bafddc1d
last_write_checksum: sha1:d375f0c0b0471bab0400b94a3d8ae594a2f3ccb1
@@ -1868,8 +1912,8 @@ trackedFiles:
pristine_git_object: 1b44fd372a1b5113087190b3328e0e11317349f3
docs/models/shared/integrationtool.md:
id: ccbce9847167
- last_write_checksum: sha1:e7b696320b3262425eb3101c4a7c234cdedcc89f
- pristine_git_object: 1634174e5bdc90eb935990674e8d416f71c156f5
+ last_write_checksum: sha1:4dc625d537e7b3c69f1a14a17532bdfe821e35dd
+ pristine_git_object: 2b5db433d10a6685326630bc1296e1f5ce2f0b3f
docs/models/shared/interview.md:
id: d8d282f154af
last_write_checksum: sha1:8a02e7bc37075650da6db4da83362416f77a08ac
@@ -1886,6 +1930,10 @@ trackedFiles:
id: 2b39c7a72543
last_write_checksum: sha1:68ba4afa90116babe8003e38272d5a078b558c3a
pristine_git_object: cf12765b651dc1f77fb6359737a16e0f5c86026b
+ docs/models/shared/jobrole.md:
+ id: ca487aea9882
+ last_write_checksum: sha1:370cb8456a43d239f0774b5a99ba673d3a0ca6c8
+ pristine_git_object: ea00a4fb2ffba5bf894fcfd356b9ed0211aa6f63
docs/models/shared/komboatserrorcode.md:
id: cc92342a1a7f
last_write_checksum: sha1:6f2674725a151a1b38e411a26fd9845f642c0442
@@ -1952,8 +2000,8 @@ trackedFiles:
pristine_git_object: 58d1e21a9c1429370493b8f4bb3c25d87fe9b26c
docs/models/shared/name.md:
id: bfbb7874446d
- last_write_checksum: sha1:56c696f1e5e12da08d4739e2925eaf8cdfbd246f
- pristine_git_object: 1142aa48cc7b27ced697b97c41b64f3920f17f68
+ last_write_checksum: sha1:1782931f2ba035594c9d4c062b9d40753198274c
+ pristine_git_object: 6247f63326041ff620a5e54148cdc3694d1f4c6b
docs/models/shared/offer.md:
id: 87c20251f010
last_write_checksum: sha1:793e13347bea041a687932404e3d71647aaf70b6
@@ -2054,6 +2102,10 @@ trackedFiles:
id: 4dd11dd9a5e9
last_write_checksum: sha1:a1ca4a5b4133051c69557a0370abd3b48776f79d
pristine_git_object: ede246f2cf329e4fb77afac2093fe1ff55137c14
+ docs/models/shared/postatsapplicationsapplicationidnotesrequestbodylever.md:
+ id: "941400654459"
+ last_write_checksum: sha1:a086ceccb66cfd94a67070afedf1c4da385e40b2
+ pristine_git_object: 90d638bb2a235deeeb84cd94b30fa01b84e16506
docs/models/shared/postatsapplicationsapplicationidnotesrequestbodypostheaders.md:
id: fb93da95e454
last_write_checksum: sha1:f4adcf3fbd9a5d790ce1d46fb0ef3be6f53110bf
@@ -2064,8 +2116,8 @@ trackedFiles:
pristine_git_object: 1b3359d5d65fed1e1577aff2d28cc47415bca51b
docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyremotefields.md:
id: bd1550e01184
- last_write_checksum: sha1:72a7f567363b59fb329e222fa59f79acf20a747a
- pristine_git_object: 79be3c3dc4d65830a3e23e20ae27a544ee7d9120
+ last_write_checksum: sha1:e53dc0db7c72f95cfc50bc0deafa8e09e61a61dd
+ pristine_git_object: 0d529f1e01770f13b49577dafaf6ea5d19ec899c
docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyteamtailor.md:
id: 66d59640f6aa
last_write_checksum: sha1:255280998eff9787f0cbacadc755938598d824db
@@ -3414,10 +3466,14 @@ trackedFiles:
id: 6e5b0f4bedfc
last_write_checksum: sha1:acc9b8d94ee35173f2cf1d745a3613afe89903b2
pristine_git_object: fe96a9e0a67ae9a18f24cc860fe0606f39362177
+ docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md:
+ id: 4e34fa13fef0
+ last_write_checksum: sha1:b04c3b1419bef4f89917dbc3dd6516d6c0b0baa8
+ pristine_git_object: 32606269ef803999e594226576f88d5f56e703f7
docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyremotefields.md:
id: a08fd47ac153
- last_write_checksum: sha1:729fc81f2fa5d808488bf601254a3c632b3c86cf
- pristine_git_object: b8dcc22dd4bc28036012279540ec05795b70ab54
+ last_write_checksum: sha1:b2a687a6931b072d2d545b44093d225c1adca871
+ pristine_git_object: 6dde9a58350a495be1af87784a00373c0be5c221
docs/models/shared/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md:
id: 2757fe99961e
last_write_checksum: sha1:d291dae1bc296733ac0821a42348f4c775236a27
@@ -3858,6 +3914,10 @@ trackedFiles:
id: ece8d04ad25c
last_write_checksum: sha1:21db734a1f37f676e0fae42deed1188d0248660f
pristine_git_object: cc8bb792a6e99af4ca22c49e53d2bc295aae9d7d
+ docs/models/shared/systemrole.md:
+ id: 1828c6ac7e9b
+ last_write_checksum: sha1:2a72050a1990eafe449a0db60ea66f718d571351
+ pristine_git_object: 5effdbb36562a3d749af01862e9f912ac85582c7
docs/models/shared/timeoffbalance.md:
id: fb758831e1f7
last_write_checksum: sha1:d54c8f57c9e88691bf4041d1fbb520d5c4c7b67b
@@ -3960,16 +4020,16 @@ trackedFiles:
pristine_git_object: 7a6693ecc0ba77b522118da871787decadaec89a
docs/sdks/ats/README.md:
id: 24fafa267f6c
- last_write_checksum: sha1:f469eedd8b41315aa092a2236415f0214f843c83
- pristine_git_object: 8dd86c259aaddb6ddc37f9036a9852cae893acff
+ last_write_checksum: sha1:0182f9232c1a431d0a3ac4930e669f2f505939ed
+ pristine_git_object: dce284ae61605c988f81846a7210d14540da0328
docs/sdks/connect/README.md:
id: 074a4658c86b
last_write_checksum: sha1:063179f4d920ff19db9c7654eebbb4ea708d9fb3
pristine_git_object: fe85124ef65d5d4cc291875df2918323cc450776
docs/sdks/general/README.md:
id: ce0ada6fa2e1
- last_write_checksum: sha1:15feeab79ee0c3f5de07d1a1c10a6ca9e0d7562c
- pristine_git_object: fb64161aee08ae33d6b3ece8bbfab5c7f1e2ca5d
+ last_write_checksum: sha1:af1692ee5466d7426f2572731a96c393a99dd7e0
+ pristine_git_object: 73633729e5c69b55e86b8d20290c7c8e82ab8034
docs/sdks/hris/README.md:
id: 0baa868a038c
last_write_checksum: sha1:acfe5afcadc9ed4db6bd3440eb752f88818f95d3
@@ -3980,8 +4040,8 @@ trackedFiles:
pristine_git_object: 237a19c94ed3feee821ecd5611703991f84d91fa
kombo.gemspec:
id: 476dd5dc2d31
- last_write_checksum: sha1:d34812589dc0cf8f14226549b8c33879c48abe61
- pristine_git_object: 929f925c7883bcd3d1da5378b25cbb120bc7ba1c
+ last_write_checksum: sha1:b82543a22540e6edb9e1a7b133118d0e63f2a85d
+ pristine_git_object: 236dc58445823559d87e10d8891ae8f745f4b016
lib/crystalline.rb:
id: eca767cf937a
last_write_checksum: sha1:b6ec0a2833f58ba9a6f07c9637fdca05e59006d3
@@ -4012,16 +4072,16 @@ trackedFiles:
pristine_git_object: b7c0db1bdeefab0be5439a35decfa3f3f3d603de
lib/kombo/ats.rb:
id: de47f540d26c
- last_write_checksum: sha1:8dce9da03bc7c63c778a1b0a595956802aa17346
- pristine_git_object: 2c058b0737fe22ad88721f26ece7ec6f647211fa
+ last_write_checksum: sha1:40033322f817770f43730b29268ea2f479a9548e
+ pristine_git_object: 53ea48677119e7f3ca2f29ddc2f49f92f0313bc1
lib/kombo/connect.rb:
id: 915f4913d259
last_write_checksum: sha1:d5fcd199b9425a138bca66d7bedcf760d609e9db
pristine_git_object: da6a94f73a3dfc084ec6129c87056d1ab1604b1c
lib/kombo/general.rb:
id: b25b5d515a10
- last_write_checksum: sha1:62ba4988e0acd83ea519b3888b0fcb7b35b030c2
- pristine_git_object: c838e49a1ca6063b7afba08e084f2c438866d41f
+ last_write_checksum: sha1:64fb2d6168c63ead2ae0f87f3ffaa6dde959d411
+ pristine_git_object: a5643d86655196f0f3aeb2c7eaaef908b9f451a2
lib/kombo/hris.rb:
id: 13c3ecc1e9af
last_write_checksum: sha1:15c9984296accd962e01f4b2b607f70ebb54b759
@@ -4072,8 +4132,8 @@ trackedFiles:
pristine_git_object: abfa62ec08db3ce4ace8d32a11eca9491677814d
lib/kombo/models/operations.rb:
id: 0dabe81114b0
- last_write_checksum: sha1:c181244ed34381af8bf431e3a4d0f07e8883d421
- pristine_git_object: 9a04952a63a93a5940a812c71fe6a77f007e1096
+ last_write_checksum: sha1:ae41f30440a4749e51d3206c213f8c1efd13c9a3
+ pristine_git_object: 831e6037bee5882be28c879420f0e8a5d8f00996
lib/kombo/models/operations/deleteatscandidatescandidateidtags_request.rb:
id: ae79d39fb2e8
last_write_checksum: sha1:ea4eef09846b81f0b867e27126e2a58309fdcf30
@@ -4298,6 +4358,22 @@ trackedFiles:
id: 89dfd5a734e0
last_write_checksum: sha1:1a4245fd8b03b62e499d7db2f2c60703ab6f1dda
pristine_git_object: efb31591e9ad054508c809d5adc2d93931203e6d
+ lib/kombo/models/operations/getatsroles_request.rb:
+ id: b1dbc30709b9
+ last_write_checksum: sha1:16d51e19f8a22928982e25a9a3cd81c7c2619556
+ pristine_git_object: ae1c896f759b996f2c103060abe6f829ac278743
+ lib/kombo/models/operations/getatsroles_request.rbi:
+ id: cb6c767e3abe
+ last_write_checksum: sha1:ac06f7e7fd26941c4533305ebcbf3d83ea14c21c
+ pristine_git_object: 6a94c3fa2f6a226a8fe8c921236c5f7f63059be4
+ lib/kombo/models/operations/getatsroles_response.rb:
+ id: bac55940b94f
+ last_write_checksum: sha1:919531089687829366017f47c92c5a67a884d924
+ pristine_git_object: af05abc30849f8d91db9c1ff0a84c3d462ed5b2b
+ lib/kombo/models/operations/getatsroles_response.rbi:
+ id: 5345626244b1
+ last_write_checksum: sha1:9103cd404dc37d43ef0603fb80d00082410cc775
+ pristine_git_object: e19bbbf6e817b927a03cfe15394d7d39d9d9b212
lib/kombo/models/operations/getatstags_request.rb:
id: c83cda69169a
last_write_checksum: sha1:deb35b3e90afca6c794c1db429f8529382f7c4d8
@@ -4988,8 +5064,8 @@ trackedFiles:
pristine_git_object: 5c2b698f35005fd6c12acccbf44cf5e358940129
lib/kombo/models/shared.rb:
id: 243803bd4275
- last_write_checksum: sha1:7194aed39fb2e7a31ee653e399d750e3d4b49a01
- pristine_git_object: df369c447e33a66d16d108ce80f0361bf89d26f2
+ last_write_checksum: sha1:ea6c11623b628a1eaa97c0c03b7b0f2a0f8b6464
+ pristine_git_object: 4ff5adfc0037a29620a9d708b84cc98c47c7d500
lib/kombo/models/shared/a3innuvanomina.rb:
id: 9fd5b4269e9a
last_write_checksum: sha1:07e4f292950b316a10cd82ade7c7052ab059183f
@@ -6272,12 +6348,12 @@ trackedFiles:
pristine_git_object: 7adc18439960525f133730dae6dc51743c16c296
lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb:
id: 9ff00773fe7a
- last_write_checksum: sha1:2c0407a257581231a5f9506f5d39bcc4c91789e9
- pristine_git_object: c6d49c5d07f926747cc2b4627aac9b23c7f4529b
+ last_write_checksum: sha1:ddf0ff5fec735e38b7e782ca95f2c04598ec7656
+ pristine_git_object: c5ea9fea74b881fc711516888cea256506fe0f13
lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi:
id: b95043f41c29
- last_write_checksum: sha1:d970941494bf4d6a20cb1050f8bee9aad695d11f
- pristine_git_object: 99d8983c0cd8d6e14c2fc2aaecdafefbe9ae5adc
+ last_write_checksum: sha1:5293de6d7caf45bf31af1d27d73048243237a09a
+ pristine_git_object: 840277cef4fd811f5d5d713980b977c8bbf70317
lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb:
id: 99a5ac78e77b
last_write_checksum: sha1:afec80c2670f9cc80c09755a698ce808ddb62945
@@ -6302,6 +6378,14 @@ trackedFiles:
id: 0f08d1f90874
last_write_checksum: sha1:75d769eae42dea0b9175d4aa318d02be1aa33ea8
pristine_git_object: 3a3ef08db30ff0d3d041167a9ecde76bfe56903c
+ lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb:
+ id: 583bbf3618df
+ last_write_checksum: sha1:ee0d28da804f5555f1d8695f5e1ea01e5914b086
+ pristine_git_object: 8a23015780bd227c0b109f1a4d4cff74bed1d776
+ lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi:
+ id: 5b4e6dcbfe7d
+ last_write_checksum: sha1:5ac6bc9d69238e2d8d972ce4161fc9b64e4e1553
+ pristine_git_object: 4fe2c80217a32cd8502578b170e77b311c4464d4
lib/kombo/models/shared/getatsjobspositiveresponse_status.rb:
id: 4f42007ca035
last_write_checksum: sha1:5d9295aa07f6b0ec21802095a8e9cae5f465e696
@@ -6310,6 +6394,14 @@ trackedFiles:
id: 499a8fb26ee2
last_write_checksum: sha1:a43207851599086bcd7b46110e0a4411fd51d135
pristine_git_object: 69f43c81fea09824a1d0ac5b5ee3b84e600b3d1d
+ lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb:
+ id: 4618e8c181ec
+ last_write_checksum: sha1:e961a91f347f4715faf72d36067646bba4485bc3
+ pristine_git_object: 7018698093252c505c985b8f647bf79721f1b14e
+ lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi:
+ id: f9f9a197fc37
+ last_write_checksum: sha1:49bd750b991f94b3c36bd8b8d21951acec69f189
+ pristine_git_object: ae4da4ac236720cd9f429042e8696d45cbf7ab17
lib/kombo/models/shared/getatsofferspositiveresponse.rb:
id: 001e43ade0d8
last_write_checksum: sha1:6a65dd19d1f806965dc39748dc3db4fa661a7382
@@ -6398,6 +6490,46 @@ trackedFiles:
id: 95b02d482d37
last_write_checksum: sha1:6ab223dc2f2605fe5eeb37bc20853aa574656fab
pristine_git_object: 795b054089f30353944209d705753b46a4de5fff
+ lib/kombo/models/shared/getatsrolespositiveresponse.rb:
+ id: c6bb9499ab40
+ last_write_checksum: sha1:a6be143db02e2954c8a7964b7080abba6292349f
+ pristine_git_object: 35c79a474372f65f7fd8e019ab03f79bf428f230
+ lib/kombo/models/shared/getatsrolespositiveresponse.rbi:
+ id: 519575f9b2b7
+ last_write_checksum: sha1:291ab4f99e8c1743acbaedeb155d2677f6b5cbd7
+ pristine_git_object: 51b272eb480fd454f149fe96573a5fee7edfdb67
+ lib/kombo/models/shared/getatsrolespositiveresponse_data.rb:
+ id: dfe4f818ef5e
+ last_write_checksum: sha1:8fa028acbaa1b9007d62ac7266c30d2410ef7a8d
+ pristine_git_object: 0ea618cf3d9a2f2465439d2aa85f45d3f272e185
+ lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi:
+ id: 2f2db5f0bc7f
+ last_write_checksum: sha1:d4a485825688b44ac4381fb523f655564804926e
+ pristine_git_object: 12f05f2f4227841c2b03cf03f1872650bfcd61ca
+ lib/kombo/models/shared/getatsrolespositiveresponse_result.rb:
+ id: 63283aff74db
+ last_write_checksum: sha1:76b38858a1e5ea87b5e125b7d1283ca4de875980
+ pristine_git_object: a57dbb0578e6fd1f8d8cef538c89ab624f68f7b8
+ lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi:
+ id: 9f94acce19bb
+ last_write_checksum: sha1:6b7dff0546da1f5e6728c047940de98840bec1c8
+ pristine_git_object: f3c429eb6422292f17c99865360429ecc6d9b934
+ lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb:
+ id: a466bf596deb
+ last_write_checksum: sha1:907c7a13e047783987821c81bfa3ac74f7d3a911
+ pristine_git_object: 1e5f13e9445e937176a762ae902af028a4884aff
+ lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi:
+ id: 674df2c7b407
+ last_write_checksum: sha1:2f130d52023e95faa5863719e7072015effd4b88
+ pristine_git_object: 73bafb9ebfa7ec20069f7ce1aba241c006507857
+ lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb:
+ id: 48b3932f7c40
+ last_write_checksum: sha1:9c5956e715e327cfa052c6e15ea91786ace5d136
+ pristine_git_object: a2ba66948cc4dce0431913199e95237e34cc408c
+ lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi:
+ id: 911237f7ade3
+ last_write_checksum: sha1:3440a0f15e54b997c7f06773ff3878199a25219a
+ pristine_git_object: e27bebfba42040f8ac0808a45ec2997e5cd1330b
lib/kombo/models/shared/getatstagspositiveresponse.rb:
id: 6ca4077b1bb4
last_write_checksum: sha1:f7b16a8bde69a3f6ffa4dd9794ef9da736459159
@@ -6440,12 +6572,20 @@ trackedFiles:
pristine_git_object: fe7250d5b52c719659994613b4fc85d3895687c7
lib/kombo/models/shared/getatsuserspositiveresponse_result.rb:
id: e8220425c22e
- last_write_checksum: sha1:32590b0edff8b64774d9a51523f8fc8500c7cfda
- pristine_git_object: 0c53b73b0029f11367e16ebf094d90274c0e6afa
+ last_write_checksum: sha1:05f81a8884d067afc5126c131bb5a87a782e716f
+ pristine_git_object: a68869a0e21077a2f42b8cfb7e9900a8b93e2005
lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi:
id: 555c1ab81d79
- last_write_checksum: sha1:9f7e5ffc76e7bec59edc031581a6580f7a5c3af2
- pristine_git_object: 0e9dd88f395621079b4b60af9fa6aa7555fedc3e
+ last_write_checksum: sha1:b9175044591d251fc5038fc975df2a228c084040
+ pristine_git_object: 2182d8d14b51f3f73b0802902130a53294c7f5c9
+ lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb:
+ id: 59344e30a8dd
+ last_write_checksum: sha1:3e4c5947a50321188008fac03660f80e406b289b
+ pristine_git_object: 616de85fbb9298a6f082e2c0ef415487b10ef259
+ lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi:
+ id: aa8fce159efc
+ last_write_checksum: sha1:9d8d990b35c618ac82fc5115c610ff7d6ce8972d
+ pristine_git_object: 42dd90ad9cbe240afbe08d274eb787a22239cb61
lib/kombo/models/shared/getatsuserspositiveresponse_status.rb:
id: 42b1725be9d3
last_write_checksum: sha1:56598551f2c8bd43e07e7dfb582213256f005616
@@ -6454,6 +6594,14 @@ trackedFiles:
id: ec3a5ed7fec3
last_write_checksum: sha1:98866e34b992be369ab6fc7c4bd1a0e8a84317a1
pristine_git_object: 0e069004823d93977df6d603e4ad26ab3b7a49a1
+ lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb:
+ id: 775b6083f706
+ last_write_checksum: sha1:2c86cebc0b564cea10fe99869e2ca8cbcfc3744b
+ pristine_git_object: 259f737ef65aa64068e2da4f9754aa77d02f93eb
+ lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi:
+ id: 702cbbf6e4e6
+ last_write_checksum: sha1:4d86e21a1a2a28d4b99772fea71638bf29ba0e50
+ pristine_git_object: f257b606b370b8deae830f7e814fb39e862192d2
lib/kombo/models/shared/getcheckapikeypositiveresponse.rb:
id: 4af30a0fa18d
last_write_checksum: sha1:45a6010315e269357764ce5a81e13fb29c8c4583
@@ -7544,8 +7692,8 @@ trackedFiles:
pristine_git_object: 61d9236f014e29375471436f1af74f42efce65d1
lib/kombo/models/shared/integration_tool.rb:
id: ec252bdaa1fd
- last_write_checksum: sha1:4972c9c5afda662191c4f993c24cdf8caa14595d
- pristine_git_object: 706170ed307190c65aa19717d594ff2b1df3881a
+ last_write_checksum: sha1:0d856dc6f3929b955dfac4bbe1b589c9495ad106
+ pristine_git_object: e7a517a1013c76d02e26b3261917d4ed50149652
lib/kombo/models/shared/integration_tool.rbi:
id: fecc74b6f738
last_write_checksum: sha1:c0987391d8322f5bca901ba6cc47a8c2bac6b195
@@ -7710,6 +7858,14 @@ trackedFiles:
id: e7a6d4ff1eea
last_write_checksum: sha1:6d766ff5c99e1286b2184bff9d01767f05a3dadf
pristine_git_object: ccc0849f510e377ce5e9e4cd138d093c5e02d394
+ lib/kombo/models/shared/job_role.rb:
+ id: dbe92eba8197
+ last_write_checksum: sha1:149720a0828bfdfebf78c4091040a45d6a1340d9
+ pristine_git_object: 0ac69d3215e73645200c75948cf40933134fa71d
+ lib/kombo/models/shared/job_role.rbi:
+ id: 2c435971c1c5
+ last_write_checksum: sha1:ac5acdac6cca90e96c5e9caa49109781fb861a76
+ pristine_git_object: 0578494337ff26d7848f24b1accc8258aba264b1
lib/kombo/models/shared/komboatserror_code.rb:
id: 893199233faa
last_write_checksum: sha1:8651fe4ff25b792dfd7116cdfea3f1d49fe5784e
@@ -7840,8 +7996,8 @@ trackedFiles:
pristine_git_object: 88004f4a4fac10af695709af27bf15a7a59ab706
lib/kombo/models/shared/name.rb:
id: 70047deb719d
- last_write_checksum: sha1:ab867071055afd15261af8b6b1f767993b5cc2d1
- pristine_git_object: c5d6e99bbc31f8a36f48306f1b0e74394375c1ea
+ last_write_checksum: sha1:a85b2489d6823680da692f52b2084abfa9fb9fc3
+ pristine_git_object: 4cbb06fb144b68c9c8ca8b745cb921e78ba3d0ff
lib/kombo/models/shared/name.rbi:
id: 42b088602335
last_write_checksum: sha1:269e15d7d41493ba578d91bbf5cc64adc55f775c
@@ -8046,6 +8202,14 @@ trackedFiles:
id: f3cdc75f3e3c
last_write_checksum: sha1:c9232943010126fa9d4624b7bff89924281c46ee
pristine_git_object: d53f1d856e412eb0bdaced85e40dfba8a6e86b5f
+ lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb:
+ id: deaeda7ac0b5
+ last_write_checksum: sha1:9c08b4c450b62d7eb1fffc59b3e6b5d962504ef2
+ pristine_git_object: e6c6535b0857017b08d932f691cb5b23cbcc3a14
+ lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi:
+ id: 170a8fe5f6c0
+ last_write_checksum: sha1:5f302343fbb3992308a594a879f554baac5b8e3b
+ pristine_git_object: 6f4b192052928907809c352f0405ecb12937141c
lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_post_headers.rb:
id: fd4b1cc7835c
last_write_checksum: sha1:d7b56ed1cde7f5bd8674ccce4216aa148c74dd7e
@@ -8064,12 +8228,12 @@ trackedFiles:
pristine_git_object: 284df9c1e378093bf07b20ee1ed6143a070b77b4
lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb:
id: 3e817bff19d5
- last_write_checksum: sha1:af61f86aa09d6b32d3b0e3699aa7c1af3344e00e
- pristine_git_object: 0df5f9bfe2b1e23f8e0462df1cc0d69a253b5ac6
+ last_write_checksum: sha1:9e5abff35fcfacc91b8eb3916d8788b6cc21ea49
+ pristine_git_object: 1ee47a44c0eb2c1e97c913ab5138d0b8b11c8280
lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi:
id: 2d32ffad0550
- last_write_checksum: sha1:bff11fb7fd4ef0d9f7a459e01c13508fa0a04f06
- pristine_git_object: cda2b1ba20f85ee1c9fa1e7aa96ecc990d9d6d5b
+ last_write_checksum: sha1:daae35d05e7e6dff8e199beabfbd80027aee3f2e
+ pristine_git_object: c5df56278577f83dbc8b77818f39a9ac4c587881
lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_teamtailor.rb:
id: c3ca0f6b2f47
last_write_checksum: sha1:770ceb033706a1e32d2ccf677bbe2cc252d2aafa
@@ -10766,14 +10930,22 @@ trackedFiles:
id: 0b685b9707eb
last_write_checksum: sha1:9cc35f462f1441d22b298737cb21a1ed1173b06b
pristine_git_object: 3640e72b1620cc3a5d05f68fba16c09badf3c24b
+ lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb:
+ id: f38c2e553100
+ last_write_checksum: sha1:0b65149c1a6018ed3b865d6e77ca8d49aa1fce3a
+ pristine_git_object: b106dc400c159e0bfb1bb957d2057b3ae0a01d00
+ lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi:
+ id: 3bf15270cc6c
+ last_write_checksum: sha1:b98cf53e071f122040366e19802c3310cf22a555
+ pristine_git_object: 66fe8702e0481cd6a0e5961ef21e1a683a5db481
lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb:
id: e3bd001d3853
- last_write_checksum: sha1:3c9333299de2846b3f810deb26f43690b1f7d684
- pristine_git_object: 020ca87e4c9c8d99c9eca11961cba4c2de35b8e0
+ last_write_checksum: sha1:14d55cacd1fc5aaa83081cd327a5a0cf54880b29
+ pristine_git_object: 935388d64d5d701d20332523e5d344245a9663d7
lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi:
id: 85b6dbc1f32b
- last_write_checksum: sha1:7052735ccce085859e6c86e103abf5d14ae40bb8
- pristine_git_object: e9d7d16edf9936c00705a0f0edecbd2f6e229968
+ last_write_checksum: sha1:b7c9206d121ab1bddd828aa29a104fb6d4c0de3a
+ pristine_git_object: b37bb72ff408a14af03434d638a578381fbfecfa
lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_smartrecruiters.rb:
id: 7723249b64a3
last_write_checksum: sha1:e5c490a04ba3c484a0b4236326e698946fee3d4b
@@ -11654,6 +11826,14 @@ trackedFiles:
id: 613d01af652c
last_write_checksum: sha1:52426b399d789397f9ee483eb6c267e9fb91df1c
pristine_git_object: e04b3c2e4ad92deae229adfcc6f48040f8d036e9
+ lib/kombo/models/shared/system_role.rb:
+ id: 928385a7f893
+ last_write_checksum: sha1:68b6b26690b33546656d94765ee326a5dff92ab0
+ pristine_git_object: 0b6c62c53fbef8290963c31bd2c0a7b41f792f20
+ lib/kombo/models/shared/system_role.rbi:
+ id: c5bf25a8ccca
+ last_write_checksum: sha1:15e966b518b712b4847477bc35674dc653b9d1cc
+ pristine_git_object: db69b909074b7f63967d634f56e8e9ea4097e807
lib/kombo/models/shared/time_off_balance.rb:
id: fbf2bf9b50ae
last_write_checksum: sha1:8971592e6dc474db28362b47079ab26f5d70b853
@@ -11856,8 +12036,8 @@ trackedFiles:
pristine_git_object: cc0af5d0bc79da7ef48343408db80c1436d75ef9
lib/kombo/sdkconfiguration.rb:
id: 576e58b2ad72
- last_write_checksum: sha1:9dfdefcd79060ccab8c170c3223674fd2b3ff73d
- pristine_git_object: 35f7a2bb34f46c02ccf8bf1f11688c6dbc73f5fb
+ last_write_checksum: sha1:6953b42293f9c073ae9f4ae43f58cfe2fde2315d
+ pristine_git_object: 2ebc998dfe43c2d8a9175f7a8cc9ca1dcd184af2
lib/kombo/sdkconfiguration.rbi:
id: d1d4becc3542
last_write_checksum: sha1:d6a79e38280d703264428e6158d6d796ba61d63f
@@ -13793,7 +13973,7 @@ examples:
X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
responses:
"200":
- application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "H5daSm8e85Dmvmne3wLeCPhX", "remote_id": "32", "name": "Backend Engineer", "job_code": "BE-2021-01", "description": "
Kombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.
", "confidential": false, "weekly_hours": 37, "employment_type": "FULL_TIME", "status": "OPEN", "visibility": "PUBLIC", "category": "Technical Job", "department": "Engineering", "post_url": "https://jobs.example.com/post/159829112", "experience_level": "Mid-Senior", "remote_work_status": "HYBRID", "salary_amount": 4200, "salary_amount_from": null, "salary_amount_to": null, "salary_currency": "EUR", "salary_period": "MONTH", "location": {"city": "Berlin", "country": "DE", "raw": "Berlin, Germany", "state": "Berlin", "street_1": "Lohmühlenstraße 65", "street_2": null, "zip_code": "12435"}, "custom_fields": {}, "remote_url": "https://app.greenhouse.io/jobs/32", "opened_at": "2022-08-07T14:01:29.196Z", "closed_at": null, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "contact_id": "6gT2yLMBEipd3zpezATv3Rhu", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "stages": [{"id": "5J7L4b48wBfffYwek9Az9pkM", "remote_id": "32", "name": "Initial Screening", "index": 0}], "screening_questions": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": {"display_type": "SINGLE_LINE", "max_length": null, "type": "TEXT"}, "category": null, "index": 0, "required": true, "precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk", "precondition_options": ["7qd5qjPwDHarsMLFMGzXYG1K"]}], "job_postings": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Frontend Engineer", "description_html": "We are looking for a Frontend Engineer.
", "status": "ACTIVE", "visibility": "PUBLIC", "url": "https://jobs.example.com/post/159829112"}], "hiring_team": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "hiring_team_roles": ["RECRUITER"]}]}]}}
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "H5daSm8e85Dmvmne3wLeCPhX", "remote_id": "32", "name": "Backend Engineer", "job_code": "BE-2021-01", "description": "Kombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.
", "confidential": false, "weekly_hours": 37, "employment_type": "FULL_TIME", "status": "OPEN", "visibility": "PUBLIC", "category": "Technical Job", "department": "Engineering", "post_url": "https://jobs.example.com/post/159829112", "experience_level": "Mid-Senior", "remote_work_status": "HYBRID", "salary_amount": 4200, "salary_amount_from": null, "salary_amount_to": null, "salary_currency": "EUR", "salary_period": "MONTH", "location": {"city": "Berlin", "country": "DE", "raw": "Berlin, Germany", "state": "Berlin", "street_1": "Lohmühlenstraße 65", "street_2": null, "zip_code": "12435"}, "custom_fields": {}, "remote_url": "https://app.greenhouse.io/jobs/32", "opened_at": "2022-08-07T14:01:29.196Z", "closed_at": null, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "contact_id": "6gT2yLMBEipd3zpezATv3Rhu", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "stages": [{"id": "5J7L4b48wBfffYwek9Az9pkM", "remote_id": "32", "name": "Initial Screening", "index": 0}], "screening_questions": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": {"display_type": "SINGLE_LINE", "max_length": null, "type": "TEXT"}, "category": null, "index": 0, "required": true, "precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk", "precondition_options": ["7qd5qjPwDHarsMLFMGzXYG1K"]}], "job_postings": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Frontend Engineer", "description_html": "We are looking for a Frontend Engineer.
", "status": "ACTIVE", "visibility": "PUBLIC", "url": "https://jobs.example.com/post/159829112"}], "hiring_team": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "hiring_team_roles": ["RECRUITER"], "job_roles": [{"remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER"}]}]}]}}
default:
application/json: {"status": "error", "error": {"code": "ATS.JOB_CLOSED", "title": "", "message": "", "log_url": "https://suburban-request.net"}}
example1:
@@ -13806,7 +13986,7 @@ examples:
X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
responses:
"200":
- application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "H5daSm8e85Dmvmne3wLeCPhX", "remote_id": "32", "name": "Backend Engineer", "job_code": "BE-2021-01", "description": "Kombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.
", "confidential": false, "weekly_hours": 37, "employment_type": "FULL_TIME", "status": "OPEN", "visibility": "PUBLIC", "category": "Technical Job", "department": "Engineering", "post_url": "https://jobs.example.com/post/159829112", "experience_level": "Mid-Senior", "remote_work_status": "HYBRID", "salary_amount": 4200, "salary_amount_from": null, "salary_amount_to": null, "salary_currency": "EUR", "salary_period": "MONTH", "location": {"city": "Berlin", "country": "DE", "raw": "Berlin, Germany", "state": "Berlin", "street_1": "Lohmühlenstraße 65", "street_2": null, "zip_code": "12435"}, "custom_fields": {}, "remote_url": "https://app.greenhouse.io/jobs/32", "opened_at": "2022-08-07T14:01:29.196Z", "closed_at": null, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "contact_id": "6gT2yLMBEipd3zpezATv3Rhu", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "stages": [{"id": "5J7L4b48wBfffYwek9Az9pkM", "remote_id": "32", "name": "Initial Screening", "index": 0}], "screening_questions": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": {"display_type": "SINGLE_LINE", "max_length": null, "type": "TEXT"}, "category": null, "index": 0, "required": true, "precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk", "precondition_options": ["7qd5qjPwDHarsMLFMGzXYG1K"]}], "job_postings": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Frontend Engineer", "description_html": "We are looking for a Frontend Engineer.
", "status": "ACTIVE", "visibility": "PUBLIC", "url": "https://jobs.example.com/post/159829112"}], "hiring_team": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "hiring_team_roles": ["RECRUITER"]}]}]}}
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "H5daSm8e85Dmvmne3wLeCPhX", "remote_id": "32", "name": "Backend Engineer", "job_code": "BE-2021-01", "description": "Kombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.
", "confidential": false, "weekly_hours": 37, "employment_type": "FULL_TIME", "status": "OPEN", "visibility": "PUBLIC", "category": "Technical Job", "department": "Engineering", "post_url": "https://jobs.example.com/post/159829112", "experience_level": "Mid-Senior", "remote_work_status": "HYBRID", "salary_amount": 4200, "salary_amount_from": null, "salary_amount_to": null, "salary_currency": "EUR", "salary_period": "MONTH", "location": {"city": "Berlin", "country": "DE", "raw": "Berlin, Germany", "state": "Berlin", "street_1": "Lohmühlenstraße 65", "street_2": null, "zip_code": "12435"}, "custom_fields": {}, "remote_url": "https://app.greenhouse.io/jobs/32", "opened_at": "2022-08-07T14:01:29.196Z", "closed_at": null, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "contact_id": "6gT2yLMBEipd3zpezATv3Rhu", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "stages": [{"id": "5J7L4b48wBfffYwek9Az9pkM", "remote_id": "32", "name": "Initial Screening", "index": 0}], "screening_questions": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Which is your primary programming language?", "description": "Please enter the language you are most comfortable with.", "format": {"display_type": "SINGLE_LINE", "max_length": null, "type": "TEXT"}, "category": null, "index": 0, "required": true, "precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk", "precondition_options": ["7qd5qjPwDHarsMLFMGzXYG1K"]}], "job_postings": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4", "title": "Frontend Engineer", "description_html": "We are looking for a Frontend Engineer.
", "status": "ACTIVE", "visibility": "PUBLIC", "url": "https://jobs.example.com/post/159829112"}], "hiring_team": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "hiring_team_roles": ["RECRUITER"], "job_roles": [{"remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER"}]}]}]}}
Error Response:
parameters:
query:
@@ -13887,7 +14067,7 @@ examples:
X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
responses:
"200":
- application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "status": "ACTIVE", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null}]}}
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "status": "ACTIVE", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "system_roles": [{"remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER"}]}]}}
default:
application/json: {"status": "error", "error": {"code": "ATS.JOB_CLOSED", "title": null, "message": "", "log_url": "https://earnest-patroller.net/"}}
example1:
@@ -13900,7 +14080,7 @@ examples:
X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
responses:
"200":
- application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "status": "ACTIVE", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null}]}}
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev", "status": "ACTIVE", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "system_roles": [{"remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER"}]}]}}
Error Response:
parameters:
query:
@@ -14295,4 +14475,52 @@ examples:
responses:
default:
application/json: {"status": "error", "error": {"code": null, "title": null, "message": "The message is always in the response.", "log_url": null}}
+ GetAtsRoles:
+ speakeasy-default-get-ats-roles:
+ parameters:
+ query:
+ page_size: 100
+ include_deleted: false
+ ignore_unsupported_filters: false
+ header:
+ X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
+ responses:
+ "200":
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null}]}}
+ default:
+ application/json: {"status": "error", "error": {"code": "ATS.JOB_CLOSED", "title": "", "message": "", "log_url": "https://slight-mallard.org/"}}
+ example1:
+ parameters:
+ query:
+ page_size: 100
+ include_deleted: false
+ ignore_unsupported_filters: false
+ header:
+ X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
+ responses:
+ "200":
+ application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "remote_label": "Hiring Manager", "scope": "JOB", "unified_type": "HIRING_MANAGER", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null}]}}
+ Error Response:
+ parameters:
+ query:
+ page_size: 100
+ include_deleted: false
+ ignore_unsupported_filters: false
+ header:
+ X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
+ responses:
+ default:
+ application/json: {"status": "error", "error": {"code": "INTEGRATION.MODEL_NOT_AVAILABLE", "title": "This data model isn't supported for the selected integration.", "message": "The \"employees\" model is not yet available for Greenhouse. Please reach out to Kombo if you need this functionality.", "log_url": "https://app.kombo.dev/my-prod/logs?interactionId=123456"}}
+ Minimal Error Response:
+ parameters:
+ query:
+ page_size: 100
+ include_deleted: false
+ ignore_unsupported_filters: false
+ header:
+ X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28"
+ responses:
+ default:
+ application/json: {"status": "error", "error": {"code": null, "title": null, "message": "The message is always in the response.", "log_url": null}}
examplesVersion: 1.0.2
+releaseNotes: "## Ruby SDK Changes:\n* `kombo.ats.get_roles()`: **Added**\n* `kombo.ats.add_application_note()`: \n * `request.body.remote_fields.lever` **Added**\n* `kombo.ats.get_jobs()`: `response.data.results[].hiring_team[].job_roles` **Added**\n* `kombo.ats.get_users()`: `response.data.results[].system_roles` **Added**\n* `kombo.assessment.update_order_result()`: \n * `request.body.remote_fields.recruitee` **Added**\n* `kombo.connect.create_connection_link()`: \n * `request.integration_tool.enum(digitalrecruiters)` **Added**\n"
diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml
index 0f542ca6..9c44c54c 100644
--- a/.speakeasy/gen.yaml
+++ b/.speakeasy/gen.yaml
@@ -31,7 +31,7 @@ generation:
skipResponseBodyAssertions: false
versioningStrategy: automatic
ruby:
- version: 1.0.4
+ version: 1.0.5
additionalDependencies:
development:
irb: ""
diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock
index 958f6f47..2e8d1747 100644
--- a/.speakeasy/workflow.lock
+++ b/.speakeasy/workflow.lock
@@ -2,20 +2,20 @@ speakeasyVersion: 1.700.2
sources:
kombo-prepared-spec:
sourceNamespace: kombo-api
- sourceRevisionDigest: sha256:31bb52ee87e3b03bda89d4770eba087a1ec7a83373627ea770064bbf1ab0c298
- sourceBlobDigest: sha256:7e0f81461ec23fca9b9299a1c98e50fcf10548d64c5ebbca7fa3704bfde4d696
+ sourceRevisionDigest: sha256:7abce15c03703f327e8486716b962dfc9c9f8d14fc7ff9fba8897c3d80f1c00e
+ sourceBlobDigest: sha256:53a104ff5dc28864c8630abeb037013e1b1e5a10395567f8e296fc612c57c097
tags:
- latest
- - speakeasy-sdk-regen-1772092668
+ - speakeasy-sdk-regen-1772153310
- 1.0.0
targets:
kombo-ruby:
source: kombo-prepared-spec
sourceNamespace: kombo-api
- sourceRevisionDigest: sha256:31bb52ee87e3b03bda89d4770eba087a1ec7a83373627ea770064bbf1ab0c298
- sourceBlobDigest: sha256:7e0f81461ec23fca9b9299a1c98e50fcf10548d64c5ebbca7fa3704bfde4d696
+ sourceRevisionDigest: sha256:7abce15c03703f327e8486716b962dfc9c9f8d14fc7ff9fba8897c3d80f1c00e
+ sourceBlobDigest: sha256:53a104ff5dc28864c8630abeb037013e1b1e5a10395567f8e296fc612c57c097
codeSamplesNamespace: kombo-api-python-ruby-code-samples
- codeSamplesRevisionDigest: sha256:be76f9d494eedc6424c4083e59f4e16ecec9ff249088d6b230fc847d950294a6
+ codeSamplesRevisionDigest: sha256:9617536df10e70069097a6643ba5ce48dc40196cd55eae1741a0c62b4ab5a37a
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
diff --git a/Gemfile.lock b/Gemfile.lock
index 7a3b95bb..0fb7b304 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
- kombo (1.0.4)
+ kombo (1.0.5)
base64 (>= 0.2.0, < 1.0)
faraday
faraday-multipart (~> 1.2.0)
@@ -12,7 +12,7 @@ PATH
GEM
remote: https://rubygems.org/
specs:
- addressable (2.8.8)
+ addressable (2.8.9)
public_suffix (>= 2.0.2, < 8.0)
ast (2.4.2)
base64 (0.3.0)
@@ -65,7 +65,7 @@ GEM
psych (5.3.1)
date
stringio
- public_suffix (7.0.2)
+ public_suffix (7.0.5)
racc (1.8.1)
rainbow (3.1.1)
rake (13.2.1)
@@ -93,7 +93,7 @@ GEM
rspec-expectations (3.13.5)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
- rspec-mocks (3.13.7)
+ rspec-mocks (3.13.8)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.7)
diff --git a/README.md b/README.md
index ea2d93c6..76391549 100644
--- a/README.md
+++ b/README.md
@@ -142,6 +142,7 @@ s = ::Kombo::Kombo.new(
* [get_jobs](docs/sdks/ats/README.md#get_jobs) - Get jobs
* [create_application](docs/sdks/ats/README.md#create_application) - Create application
* [get_users](docs/sdks/ats/README.md#get_users) - Get users
+* [get_roles](docs/sdks/ats/README.md#get_roles) - Get roles
* [get_offers](docs/sdks/ats/README.md#get_offers) - Get offers
* [get_rejection_reasons](docs/sdks/ats/README.md#get_rejection_reasons) - Get rejection reasons
* [get_interviews](docs/sdks/ats/README.md#get_interviews) - Get interviews
diff --git a/RELEASES.md b/RELEASES.md
index 6b462822..de3c0ec8 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -48,4 +48,14 @@ Based on:
### Generated
- [ruby v1.0.4] .
### Releases
-- [Ruby Gems v1.0.4] https://rubygems.org/gems/kombo/versions/1.0.4 - .
\ No newline at end of file
+- [Ruby Gems v1.0.4] https://rubygems.org/gems/kombo/versions/1.0.4 - .
+
+## 2026-03-11 00:43:42
+### Changes
+Based on:
+- OpenAPI Doc
+- Speakeasy CLI 1.700.2 (2.801.2) https://github.com/speakeasy-api/speakeasy
+### Generated
+- [ruby v1.0.5] .
+### Releases
+- [Ruby Gems v1.0.5] https://rubygems.org/gems/kombo/versions/1.0.5 - .
\ No newline at end of file
diff --git a/docs/models/operations/getatsrolesrequest.md b/docs/models/operations/getatsrolesrequest.md
new file mode 100644
index 00000000..32f3f88c
--- /dev/null
+++ b/docs/models/operations/getatsrolesrequest.md
@@ -0,0 +1,16 @@
+# GetAtsRolesRequest
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 |
+| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | |
+| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | |
+| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). | |
+| `include_deleted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | |
+| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | |
+| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | |
+| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | |
+| `scopes` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of `SYSTEM`, `JOB`
* `SYSTEM`: System-wide roles that apply globally (e.g., an "Admin" role).
* `JOB`: Job-scoped roles that apply to specific jobs (e.g., a "Hiring Manager" role).
Leave this blank to get results matching all values. | |
\ No newline at end of file
diff --git a/docs/models/operations/getatsrolesresponse.md b/docs/models/operations/getatsrolesresponse.md
new file mode 100644
index 00000000..141d0ae5
--- /dev/null
+++ b/docs/models/operations/getatsrolesresponse.md
@@ -0,0 +1,11 @@
+# GetAtsRolesResponse
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
+| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation |
+| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation |
+| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing |
+| `get_ats_roles_positive_response` | [T.nilable(Models::Shared::GetAtsRolesPositiveResponse)](../../models/shared/getatsrolespositiveresponse.md) | :heavy_minus_sign: | GET /ats/roles Positive response |
\ No newline at end of file
diff --git a/docs/models/shared/getatsjobspositiveresponse.md b/docs/models/shared/getatsjobspositiveresponse.md
index a70d37a7..57ba3a8d 100644
--- a/docs/models/shared/getatsjobspositiveresponse.md
+++ b/docs/models/shared/getatsjobspositiveresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description | Example |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `status` | *::String* | :heavy_check_mark: | N/A | |
-| `data` | [Models::Shared::GetAtsJobsPositiveResponseData](../../models/shared/getatsjobspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "H5daSm8e85Dmvmne3wLeCPhX",
"remote_id": "32",
"name": "Backend Engineer",
"job_code": "BE-2021-01",
"description": "\u003cp\u003eKombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.\u003c/p\u003e",
"confidential": false,
"weekly_hours": 37,
"employment_type": "FULL_TIME",
"status": "OPEN",
"visibility": "PUBLIC",
"category": "Technical Job",
"department": "Engineering",
"post_url": "https://jobs.example.com/post/159829112",
"experience_level": "Mid-Senior",
"remote_work_status": "HYBRID",
"salary_amount": 4200,
"salary_amount_from": null,
"salary_amount_to": null,
"salary_currency": "EUR",
"salary_period": "MONTH",
"location": {
"city": "Berlin",
"country": "DE",
"raw": "Berlin, Germany",
"state": "Berlin",
"street_1": "Lohmühlenstraße 65",
"street_2": null,
"zip_code": "12435"
},
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://app.greenhouse.io/jobs/32",
"opened_at": "2022-08-07T14:01:29.196Z",
"closed_at": null,
"remote_created_at": "2022-08-07T14:01:29.196Z",
"remote_updated_at": "2022-08-07T14:01:29.196Z",
"contact_id": "6gT2yLMBEipd3zpezATv3Rhu",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"stages": [
{
"id": "5J7L4b48wBfffYwek9Az9pkM",
"remote_id": "32",
"name": "Initial Screening",
"remote_data": null,
"index": 0
}
],
"screening_questions": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
"title": "Which is your primary programming language?",
"description": "Please enter the language you are most comfortable with.",
"format": {
"display_type": "SINGLE_LINE",
"max_length": null,
"type": "TEXT"
},
"category": null,
"index": 0,
"required": true,
"precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk",
"precondition_options": [
"7qd5qjPwDHarsMLFMGzXYG1K"
]
}
],
"job_postings": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
"title": "Frontend Engineer",
"description_html": "\u003cp\u003eWe are looking for a Frontend Engineer.\u003c/p\u003e",
"status": "ACTIVE",
"visibility": "PUBLIC",
"url": "https://jobs.example.com/post/159829112",
"remote_data": null
}
],
"hiring_team": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev",
"hiring_team_roles": [
"RECRUITER"
]
}
]
}
]
} |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `status` | *::String* | :heavy_check_mark: | N/A | |
+| `data` | [Models::Shared::GetAtsJobsPositiveResponseData](../../models/shared/getatsjobspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "H5daSm8e85Dmvmne3wLeCPhX",
"remote_id": "32",
"name": "Backend Engineer",
"job_code": "BE-2021-01",
"description": "\u003cp\u003eKombo is hiring engineers! If you are reading this and you are located in Berlin, Germany, feel free to contact us about this position.\u003c/p\u003e",
"confidential": false,
"weekly_hours": 37,
"employment_type": "FULL_TIME",
"status": "OPEN",
"visibility": "PUBLIC",
"category": "Technical Job",
"department": "Engineering",
"post_url": "https://jobs.example.com/post/159829112",
"experience_level": "Mid-Senior",
"remote_work_status": "HYBRID",
"salary_amount": 4200,
"salary_amount_from": null,
"salary_amount_to": null,
"salary_currency": "EUR",
"salary_period": "MONTH",
"location": {
"city": "Berlin",
"country": "DE",
"raw": "Berlin, Germany",
"state": "Berlin",
"street_1": "Lohmühlenstraße 65",
"street_2": null,
"zip_code": "12435"
},
"custom_fields": {},
"integration_fields": [],
"remote_url": "https://app.greenhouse.io/jobs/32",
"opened_at": "2022-08-07T14:01:29.196Z",
"closed_at": null,
"remote_created_at": "2022-08-07T14:01:29.196Z",
"remote_updated_at": "2022-08-07T14:01:29.196Z",
"contact_id": "6gT2yLMBEipd3zpezATv3Rhu",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"stages": [
{
"id": "5J7L4b48wBfffYwek9Az9pkM",
"remote_id": "32",
"name": "Initial Screening",
"remote_data": null,
"index": 0
}
],
"screening_questions": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
"title": "Which is your primary programming language?",
"description": "Please enter the language you are most comfortable with.",
"format": {
"display_type": "SINGLE_LINE",
"max_length": null,
"type": "TEXT"
},
"category": null,
"index": 0,
"required": true,
"precondition_question_id": "4ZVteCSSgDw3BdwGzcQqGEPk",
"precondition_options": [
"7qd5qjPwDHarsMLFMGzXYG1K"
]
}
],
"job_postings": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "48b4d36a-1d4b-4c50-ada7-9519078e65b4",
"title": "Frontend Engineer",
"description_html": "\u003cp\u003eWe are looking for a Frontend Engineer.\u003c/p\u003e",
"status": "ACTIVE",
"visibility": "PUBLIC",
"url": "https://jobs.example.com/post/159829112",
"remote_data": null
}
],
"hiring_team": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev",
"hiring_team_roles": [
"RECRUITER"
],
"job_roles": [
{
"remote_id": "32",
"remote_label": "Hiring Manager",
"scope": "JOB",
"unified_type": "HIRING_MANAGER"
}
]
}
]
}
]
} |
\ No newline at end of file
diff --git a/docs/models/shared/getatsjobspositiveresponsehiringteam.md b/docs/models/shared/getatsjobspositiveresponsehiringteam.md
index 2ddf0fc5..435e1e79 100644
--- a/docs/models/shared/getatsjobspositiveresponsehiringteam.md
+++ b/docs/models/shared/getatsjobspositiveresponsehiringteam.md
@@ -3,11 +3,12 @@
## Fields
-| Field | Type | Required | Description |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| `id` | *::String* | :heavy_check_mark: | The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. |
-| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. |
-| `first_name` | *T.nilable(::String)* | :heavy_check_mark: | First name of the user. |
-| `last_name` | *T.nilable(::String)* | :heavy_check_mark: | Last name of the user. |
-| `email` | *T.nilable(::String)* | :heavy_minus_sign: | Email of the user. If the email address is invalid, it will be set to null. |
-| `hiring_team_roles` | T::Array<[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole](../../models/shared/getatsjobspositiveresponsehiringteamrole.md)> | :heavy_check_mark: | Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema. |
\ No newline at end of file
+| Field | Type | Required | Description |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `id` | *::String* | :heavy_check_mark: | The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. |
+| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. |
+| `first_name` | *T.nilable(::String)* | :heavy_check_mark: | First name of the user. |
+| `last_name` | *T.nilable(::String)* | :heavy_check_mark: | Last name of the user. |
+| `email` | *T.nilable(::String)* | :heavy_minus_sign: | Email of the user. If the email address is invalid, it will be set to null. |
+| ~~`hiring_team_roles`~~ | T::Array<[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole](../../models/shared/getatsjobspositiveresponsehiringteamrole.md)> | :heavy_check_mark: | : warning: ** DEPRECATED **: This will be removed in a future release, please migrate away from it as soon as possible.
**(⚠️ Deprecated - Use `job_roles` to access the full list of job roles.)** Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema. |
+| `job_roles` | T::Array<[Models::Shared::JobRole](../../models/shared/jobrole.md)> | :heavy_check_mark: | Roles assigned to this user for this job.
Note: Use `system_roles` on the `/v1/ats/users` endpoint for system-wide roles. |
\ No newline at end of file
diff --git a/docs/models/shared/getatsjobspositiveresponsescope.md b/docs/models/shared/getatsjobspositiveresponsescope.md
new file mode 100644
index 00000000..980dc5e5
--- /dev/null
+++ b/docs/models/shared/getatsjobspositiveresponsescope.md
@@ -0,0 +1,11 @@
+# GetAtsJobsPositiveResponseScope
+
+Whether the role applies globally or is scoped to a specific job.
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `SYSTEM` | SYSTEM |
+| `JOB` | JOB |
\ No newline at end of file
diff --git a/docs/models/shared/getatsjobspositiveresponseunifiedtype.md b/docs/models/shared/getatsjobspositiveresponseunifiedtype.md
new file mode 100644
index 00000000..afb7df8d
--- /dev/null
+++ b/docs/models/shared/getatsjobspositiveresponseunifiedtype.md
@@ -0,0 +1,12 @@
+# GetAtsJobsPositiveResponseUnifiedType
+
+Unified role type if Kombo can map it.
+
+
+## Values
+
+| Name | Value |
+| ---------------- | ---------------- |
+| `HIRING_MANAGER` | HIRING_MANAGER |
+| `RECRUITER` | RECRUITER |
+| `ADMIN` | ADMIN |
\ No newline at end of file
diff --git a/docs/models/shared/getatsrolespositiveresponse.md b/docs/models/shared/getatsrolespositiveresponse.md
new file mode 100644
index 00000000..d67293ea
--- /dev/null
+++ b/docs/models/shared/getatsrolespositiveresponse.md
@@ -0,0 +1,9 @@
+# GetAtsRolesPositiveResponse
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `status` | *::String* | :heavy_check_mark: | N/A | |
+| `data` | [Models::Shared::GetAtsRolesPositiveResponseData](../../models/shared/getatsrolespositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"remote_label": "Hiring Manager",
"scope": "JOB",
"unified_type": "HIRING_MANAGER",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null
}
]
} |
\ No newline at end of file
diff --git a/docs/models/shared/getatsrolespositiveresponsedata.md b/docs/models/shared/getatsrolespositiveresponsedata.md
new file mode 100644
index 00000000..202e403f
--- /dev/null
+++ b/docs/models/shared/getatsrolespositiveresponsedata.md
@@ -0,0 +1,9 @@
+# GetAtsRolesPositiveResponseData
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
+| `next_` | *T.nilable(::String)* | :heavy_check_mark: | Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. |
+| `results` | T::Array<[Models::Shared::GetAtsRolesPositiveResponseResult](../../models/shared/getatsrolespositiveresponseresult.md)> | :heavy_check_mark: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/getatsrolespositiveresponseresult.md b/docs/models/shared/getatsrolespositiveresponseresult.md
new file mode 100644
index 00000000..f133b3c3
--- /dev/null
+++ b/docs/models/shared/getatsrolespositiveresponseresult.md
@@ -0,0 +1,14 @@
+# GetAtsRolesPositiveResponseResult
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `id` | *::String* | :heavy_check_mark: | The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. | |
+| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. | |
+| `remote_label` | *T.nilable(::String)* | :heavy_check_mark: | The label of the role. | |
+| `scope` | [T.nilable(Models::Shared::GetAtsRolesPositiveResponseScope)](../../models/shared/getatsrolespositiveresponsescope.md) | :heavy_check_mark: | Whether the role applies globally or is scoped to a specific job. | JOB |
+| `unified_type` | [T.nilable(Models::Shared::GetAtsRolesPositiveResponseUnifiedType)](../../models/shared/getatsrolespositiveresponseunifiedtype.md) | :heavy_check_mark: | Unified role type if Kombo can map it. | |
+| `changed_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | |
+| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | 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.
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | |
\ No newline at end of file
diff --git a/docs/models/shared/getatsrolespositiveresponsescope.md b/docs/models/shared/getatsrolespositiveresponsescope.md
new file mode 100644
index 00000000..3c2c1ec0
--- /dev/null
+++ b/docs/models/shared/getatsrolespositiveresponsescope.md
@@ -0,0 +1,11 @@
+# GetAtsRolesPositiveResponseScope
+
+Whether the role applies globally or is scoped to a specific job.
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `SYSTEM` | SYSTEM |
+| `JOB` | JOB |
\ No newline at end of file
diff --git a/docs/models/shared/getatsrolespositiveresponseunifiedtype.md b/docs/models/shared/getatsrolespositiveresponseunifiedtype.md
new file mode 100644
index 00000000..046ab774
--- /dev/null
+++ b/docs/models/shared/getatsrolespositiveresponseunifiedtype.md
@@ -0,0 +1,12 @@
+# GetAtsRolesPositiveResponseUnifiedType
+
+Unified role type if Kombo can map it.
+
+
+## Values
+
+| Name | Value |
+| ---------------- | ---------------- |
+| `HIRING_MANAGER` | HIRING_MANAGER |
+| `RECRUITER` | RECRUITER |
+| `ADMIN` | ADMIN |
\ No newline at end of file
diff --git a/docs/models/shared/getatsuserspositiveresponse.md b/docs/models/shared/getatsuserspositiveresponse.md
index 20a2f371..b0b4f257 100644
--- a/docs/models/shared/getatsuserspositiveresponse.md
+++ b/docs/models/shared/getatsuserspositiveresponse.md
@@ -3,7 +3,7 @@
## Fields
-| Field | Type | Required | Description | Example |
-| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `status` | *::String* | :heavy_check_mark: | N/A | |
-| `data` | [Models::Shared::GetAtsUsersPositiveResponseData](../../models/shared/getatsuserspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev",
"status": "ACTIVE",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null
}
]
} |
\ No newline at end of file
+| Field | Type | Required | Description | Example |
+| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `status` | *::String* | :heavy_check_mark: | N/A | |
+| `data` | [Models::Shared::GetAtsUsersPositiveResponseData](../../models/shared/getatsuserspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev",
"status": "ACTIVE",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"system_roles": [
{
"remote_id": "32",
"remote_label": "Hiring Manager",
"scope": "JOB",
"unified_type": "HIRING_MANAGER"
}
]
}
]
} |
\ No newline at end of file
diff --git a/docs/models/shared/getatsuserspositiveresponseresult.md b/docs/models/shared/getatsuserspositiveresponseresult.md
index 9bdcba1f..1141c636 100644
--- a/docs/models/shared/getatsuserspositiveresponseresult.md
+++ b/docs/models/shared/getatsuserspositiveresponseresult.md
@@ -12,4 +12,5 @@
| `email` | *T.nilable(::String)* | :heavy_minus_sign: | Email of the user. If the email address is invalid, it will be set to null. |
| `status` | [T.nilable(Models::Shared::GetAtsUsersPositiveResponseStatus)](../../models/shared/getatsuserspositiveresponsestatus.md) | :heavy_check_mark: | Whether the user is active or inactive. Consider this field when provisioning users from the ATS. |
| `changed_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) |
-| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | 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.
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) |
\ No newline at end of file
+| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | 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.
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) |
+| `system_roles` | T::Array<[Models::Shared::SystemRole](../../models/shared/systemrole.md)> | :heavy_check_mark: | System-wide roles assigned to this user in the ATS.
Note: Use `job_roles` on the `/v1/ats/jobs` endpoint for job-specific roles. |
\ No newline at end of file
diff --git a/docs/models/shared/getatsuserspositiveresponsescope.md b/docs/models/shared/getatsuserspositiveresponsescope.md
new file mode 100644
index 00000000..3183f286
--- /dev/null
+++ b/docs/models/shared/getatsuserspositiveresponsescope.md
@@ -0,0 +1,11 @@
+# GetAtsUsersPositiveResponseScope
+
+Whether the role applies globally or is scoped to a specific job.
+
+
+## Values
+
+| Name | Value |
+| -------- | -------- |
+| `SYSTEM` | SYSTEM |
+| `JOB` | JOB |
\ No newline at end of file
diff --git a/docs/models/shared/getatsuserspositiveresponseunifiedtype.md b/docs/models/shared/getatsuserspositiveresponseunifiedtype.md
new file mode 100644
index 00000000..a0b02b05
--- /dev/null
+++ b/docs/models/shared/getatsuserspositiveresponseunifiedtype.md
@@ -0,0 +1,12 @@
+# GetAtsUsersPositiveResponseUnifiedType
+
+Unified role type if Kombo can map it.
+
+
+## Values
+
+| Name | Value |
+| ---------------- | ---------------- |
+| `HIRING_MANAGER` | HIRING_MANAGER |
+| `RECRUITER` | RECRUITER |
+| `ADMIN` | ADMIN |
\ No newline at end of file
diff --git a/docs/models/shared/integrationtool.md b/docs/models/shared/integrationtool.md
index 1634174e..2b5db433 100644
--- a/docs/models/shared/integrationtool.md
+++ b/docs/models/shared/integrationtool.md
@@ -101,6 +101,7 @@ Pre-define a tool this integration link can be used for.
| `BREEZYHR` | breezyhr |
| `FLATCHR` | flatchr |
| `DAYFORCE` | dayforce |
+| `DIGITALRECRUITERS` | digitalrecruiters |
| `APPLICANTSTACK` | applicantstack |
| `REACHMEE` | reachmee |
| `TALENTADORE` | talentadore |
diff --git a/docs/models/shared/jobrole.md b/docs/models/shared/jobrole.md
new file mode 100644
index 00000000..ea00a4fb
--- /dev/null
+++ b/docs/models/shared/jobrole.md
@@ -0,0 +1,11 @@
+# JobRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. | |
+| `remote_label` | *T.nilable(::String)* | :heavy_check_mark: | The label of the role. | |
+| `scope` | [T.nilable(Models::Shared::GetAtsJobsPositiveResponseScope)](../../models/shared/getatsjobspositiveresponsescope.md) | :heavy_check_mark: | Whether the role applies globally or is scoped to a specific job. | JOB |
+| `unified_type` | [T.nilable(Models::Shared::GetAtsJobsPositiveResponseUnifiedType)](../../models/shared/getatsjobspositiveresponseunifiedtype.md) | :heavy_check_mark: | Unified role type if Kombo can map it. | |
\ No newline at end of file
diff --git a/docs/models/shared/name.md b/docs/models/shared/name.md
index 1142aa48..6247f633 100644
--- a/docs/models/shared/name.md
+++ b/docs/models/shared/name.md
@@ -5,41 +5,44 @@ The name of the Kombo model or connection that changed.
## Values
-| Name | Value |
-| ----------------------------------- | ----------------------------------- |
-| `HRIS_LEGAL_ENTITIES` | hris_legal_entities |
-| `HRIS_LOCATIONS` | hris_locations |
-| `HRIS_EMPLOYEES` | hris_employees |
-| `HRIS_ABSENCE_TYPES` | hris_absence_types |
-| `HRIS_ABSENCES` | hris_absences |
-| `HRIS_EMPLOYMENTS` | hris_employments |
-| `HRIS_TEAMS` | hris_teams |
-| `HRIS_TIME_OFF_BALANCES` | hris_time_off_balances |
-| `HRIS_TIMESHEETS` | hris_timesheets |
-| `HRIS_EMPLOYEE_DOCUMENT_CATEGORIES` | hris_employee_document_categories |
-| `HRIS_PERFORMANCE_REVIEWS` | hris_performance_reviews |
-| `HRIS_PERFORMANCE_REVIEW_CYCLES` | hris_performance_review_cycles |
-| `ATS_USERS` | ats_users |
-| `ATS_JOBS` | ats_jobs |
-| `ATS_JOB_POSTINGS` | ats_job_postings |
-| `ATS_CANDIDATES` | ats_candidates |
-| `ATS_APPLICATION_STAGES` | ats_application_stages |
-| `ATS_APPLICATIONS` | ats_applications |
-| `ATS_SCREENING_QUESTIONS` | ats_screening_questions |
-| `ATS_TAGS` | ats_tags |
-| `ATS_INTERVIEWS` | ats_interviews |
-| `ATS_OFFERS` | ats_offers |
-| `ATS_REJECTION_REASONS` | ats_rejection_reasons |
-| `LMS_USERS` | lms_users |
-| `LMS_COURSE_PROVIDERS` | lms_course_providers |
-| `LMS_SKILLS` | lms_skills |
-| `LMS_COURSES` | lms_courses |
-| `LMS_COURSE_REVISIONS` | lms_course_revisions |
-| `LMS_COURSE_PROGRESSIONS` | lms_course_progressions |
-| `HRIS_JOIN_EMPLOYEES_TEAMS` | hris_join_employees_teams |
-| `ATS_JOIN_CANDIDATES_TAGS` | ats_join_candidates_tags |
-| `ATS_JOIN_JOBS_APPLICATION_STAGES` | ats_join_jobs_application_stages |
-| `ATS_JOIN_JOBS_SCREENING_QUESTIONS` | ats_join_jobs_screening_questions |
-| `ATS_JOIN_JOBS_USERS` | ats_join_jobs_users |
-| `ATS_JOIN_INTERVIEWS_USERS` | ats_join_interviews_users |
-| `LMS_JOIN_REVISIONS_SKILLS` | lms_join_revisions_skills |
\ No newline at end of file
+| Name | Value |
+| ------------------------------------ | ------------------------------------ |
+| `HRIS_LEGAL_ENTITIES` | hris_legal_entities |
+| `HRIS_LOCATIONS` | hris_locations |
+| `HRIS_EMPLOYEES` | hris_employees |
+| `HRIS_ABSENCE_TYPES` | hris_absence_types |
+| `HRIS_ABSENCES` | hris_absences |
+| `HRIS_EMPLOYMENTS` | hris_employments |
+| `HRIS_TEAMS` | hris_teams |
+| `HRIS_TIME_OFF_BALANCES` | hris_time_off_balances |
+| `HRIS_TIMESHEETS` | hris_timesheets |
+| `HRIS_EMPLOYEE_DOCUMENT_CATEGORIES` | hris_employee_document_categories |
+| `HRIS_PERFORMANCE_REVIEWS` | hris_performance_reviews |
+| `HRIS_PERFORMANCE_REVIEW_CYCLES` | hris_performance_review_cycles |
+| `ATS_USERS` | ats_users |
+| `ATS_JOBS` | ats_jobs |
+| `ATS_JOB_POSTINGS` | ats_job_postings |
+| `ATS_CANDIDATES` | ats_candidates |
+| `ATS_APPLICATION_STAGES` | ats_application_stages |
+| `ATS_APPLICATIONS` | ats_applications |
+| `ATS_SCREENING_QUESTIONS` | ats_screening_questions |
+| `ATS_TAGS` | ats_tags |
+| `ATS_INTERVIEWS` | ats_interviews |
+| `ATS_OFFERS` | ats_offers |
+| `ATS_REJECTION_REASONS` | ats_rejection_reasons |
+| `ATS_ROLES` | ats_roles |
+| `LMS_USERS` | lms_users |
+| `LMS_COURSE_PROVIDERS` | lms_course_providers |
+| `LMS_SKILLS` | lms_skills |
+| `LMS_COURSES` | lms_courses |
+| `LMS_COURSE_REVISIONS` | lms_course_revisions |
+| `LMS_COURSE_PROGRESSIONS` | lms_course_progressions |
+| `HRIS_JOIN_EMPLOYEES_TEAMS` | hris_join_employees_teams |
+| `ATS_JOIN_CANDIDATES_TAGS` | ats_join_candidates_tags |
+| `ATS_JOIN_JOBS_APPLICATION_STAGES` | ats_join_jobs_application_stages |
+| `ATS_JOIN_JOBS_SCREENING_QUESTIONS` | ats_join_jobs_screening_questions |
+| `ATS_JOIN_USER_JOB_ROLE_ASSIGNMENTS` | ats_join_user_job_role_assignments |
+| `ATS_JOIN_JOBS_USERS` | ats_join_jobs_users |
+| `ATS_JOIN_USERS_ROLES` | ats_join_users_roles |
+| `ATS_JOIN_INTERVIEWS_USERS` | ats_join_interviews_users |
+| `LMS_JOIN_REVISIONS_SKILLS` | lms_join_revisions_skills |
\ No newline at end of file
diff --git a/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodylever.md b/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodylever.md
new file mode 100644
index 00000000..90d638bb
--- /dev/null
+++ b/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodylever.md
@@ -0,0 +1,10 @@
+# PostAtsApplicationsApplicationIdNotesRequestBodyLever
+
+Lever specific remote fields for the note.
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
+| `perform_as` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token. |
\ No newline at end of file
diff --git a/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyremotefields.md b/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyremotefields.md
index 79be3c3d..0d529f1e 100644
--- a/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyremotefields.md
+++ b/docs/models/shared/postatsapplicationsapplicationidnotesrequestbodyremotefields.md
@@ -11,4 +11,5 @@ Tool specific remote fields for the note.
| `greenhouse` | [T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse)](../../models/shared/postatsapplicationsapplicationidnotesrequestbodygreenhouse.md) | :heavy_minus_sign: | Fields specific to Greenhouse. |
| `recruitee` | [T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee)](../../models/shared/postatsapplicationsapplicationidnotesrequestbodyrecruitee.md) | :heavy_minus_sign: | Recruitee specific remote fields for the note. |
| `bullhorn` | [T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn)](../../models/shared/postatsapplicationsapplicationidnotesrequestbodybullhorn.md) | :heavy_minus_sign: | Bullhorn specific remote fields for the note. |
+| `lever` | [T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever)](../../models/shared/postatsapplicationsapplicationidnotesrequestbodylever.md) | :heavy_minus_sign: | Lever specific remote fields for the note. |
| `workable` | [T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable)](../../models/shared/postatsapplicationsapplicationidnotesrequestbodyworkable.md) | :heavy_minus_sign: | Workable specific remote fields for ATS actions. |
\ No newline at end of file
diff --git a/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md b/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md
new file mode 100644
index 00000000..32606269
--- /dev/null
+++ b/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md
@@ -0,0 +1,8 @@
+# PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee
+
+
+## Fields
+
+| Field | Type | Required | Description |
+| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
+| `subtitle` | *T.nilable(::String)* | :heavy_minus_sign: | Value that we will pass through to Recruitee's `subtitle` field on the assessment report. |
\ No newline at end of file
diff --git a/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyremotefields.md b/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyremotefields.md
index b8dcc22d..6dde9a58 100644
--- a/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyremotefields.md
+++ b/docs/models/shared/putassessmentordersassessmentorderidresultrequestbodyremotefields.md
@@ -7,4 +7,5 @@ Additional fields that we will pass through to specific ATS systems.
| Field | Type | Required | Description |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| `smartrecruiters` | [T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters)](../../models/shared/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
+| `smartrecruiters` | [T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters)](../../models/shared/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md) | :heavy_minus_sign: | N/A |
+| `recruitee` | [T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee)](../../models/shared/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md) | :heavy_minus_sign: | N/A |
\ No newline at end of file
diff --git a/docs/models/shared/systemrole.md b/docs/models/shared/systemrole.md
new file mode 100644
index 00000000..5effdbb3
--- /dev/null
+++ b/docs/models/shared/systemrole.md
@@ -0,0 +1,11 @@
+# SystemRole
+
+
+## Fields
+
+| Field | Type | Required | Description | Example |
+| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. | |
+| `remote_label` | *T.nilable(::String)* | :heavy_check_mark: | The label of the role. | |
+| `scope` | [T.nilable(Models::Shared::GetAtsUsersPositiveResponseScope)](../../models/shared/getatsuserspositiveresponsescope.md) | :heavy_check_mark: | Whether the role applies globally or is scoped to a specific job. | JOB |
+| `unified_type` | [T.nilable(Models::Shared::GetAtsUsersPositiveResponseUnifiedType)](../../models/shared/getatsuserspositiveresponseunifiedtype.md) | :heavy_check_mark: | Unified role type if Kombo can map it. | |
\ No newline at end of file
diff --git a/docs/sdks/ats/README.md b/docs/sdks/ats/README.md
index 8dd86c25..dce284ae 100644
--- a/docs/sdks/ats/README.md
+++ b/docs/sdks/ats/README.md
@@ -23,6 +23,7 @@
* [get_jobs](#get_jobs) - Get jobs
* [create_application](#create_application) - Create application
* [get_users](#get_users) - Get users
+* [get_roles](#get_roles) - Get roles
* [get_offers](#get_offers) - Get offers
* [get_rejection_reasons](#get_rejection_reasons) - Get rejection reasons
* [get_interviews](#get_interviews) - Get interviews
@@ -1458,6 +1459,59 @@ end
| Models::Errors::KomboAtsError | default | application/json |
| Errors::APIError | 4XX, 5XX | \*/\* |
+## get_roles
+
+Retrieve all roles.
+
+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)`
+
+### Example Usage
+
+
+```ruby
+require 'kombo'
+
+Models = ::Kombo::Models
+s = ::Kombo::Kombo.new(
+ integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28',
+ security: Models::Shared::Security.new(
+ api_key: '',
+ ),
+ )
+
+res = s.ats.get_roles(page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
+
+unless res.get_ats_roles_positive_response.nil?
+ # handle response
+end
+
+```
+
+### Parameters
+
+| Parameter | Type | Required | Description | Example |
+| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 |
+| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | |
+| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | |
+| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). | |
+| `include_deleted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | |
+| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | |
+| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | |
+| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | |
+| `scopes` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of `SYSTEM`, `JOB`
* `SYSTEM`: System-wide roles that apply globally (e.g., an "Admin" role).
* `JOB`: Job-scoped roles that apply to specific jobs (e.g., a "Hiring Manager" role).
Leave this blank to get results matching all values. | |
+
+### Response
+
+**[T.nilable(Models::Operations::GetAtsRolesResponse)](../../models/operations/getatsrolesresponse.md)**
+
+### Errors
+
+| Error Type | Status Code | Content Type |
+| ----------------------------- | ----------------------------- | ----------------------------- |
+| Models::Errors::KomboAtsError | default | application/json |
+| Errors::APIError | 4XX, 5XX | \*/\* |
+
## get_offers
Retrieve all offers.
diff --git a/docs/sdks/general/README.md b/docs/sdks/general/README.md
index fb64161a..73633729 100644
--- a/docs/sdks/general/README.md
+++ b/docs/sdks/general/README.md
@@ -141,7 +141,7 @@ To get started, please pick the relevant API (some tools provide multiple to due
|Cornerstone OnDemand|`cornerstoneondemand/recruiting`|Cornerstone's [Recruiting API](https://csod.dev/reference/recruiting/). We automatically authenticate all requests using the client ID and secret and use `https://\{your_domain\}.csod.com/services/api` as the base URL.|
|Coveto (legacy SOAP API)|`coveto/public`|We automatically use `https://\{subdomain\}.coveto.de` as the base URL.|
|Coveto (REST API)|`covetorest/v1`|We automatically use `https://\{subdomain\}.coveto.de/public/api/v1` as the base URL. https://demo.coveto.de/swagger-ui/index.html#/|
-|Crelate|`crelate/api`|Crelate [REST API](https://help.crelate.com/en/articles/4120536-crelate-api-developer-guide). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|
+|Crelate|`crelate/api`|Crelate [REST API](https://app.crelate.com/api3/docs/index.html). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|
|d.vinci admin|`dvinciadmin/odata-api`|[DVinci ODATA API](https://dvinci.freshdesk.com/en/support/solutions/articles/75000059523-odata-reporting-api).|
|d.vinci admin|`dvinciadmin/rest-api`|[DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html).|
|d.vinci|`dvinci/apply-api`|The [DVinci Apply API](https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html). All requests are authenticated by Kombo and use `https://\{dvinci_domain\}/p/\{portal_path\}/` as the base URL.|
@@ -152,6 +152,7 @@ To get started, please pick the relevant API (some tools provide multiple to due
|DATEV|`datevhr/hr:payrollreports`|DATEV's [hr:payrollreports](https://developer.datev.de/en/product-detail/hr-payrollreports/2.0.0/overview) API. We automatically authenticate all requests and use `https://hr-payrollreports.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
|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|
|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.|
+|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.|
|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.|
|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.|
|Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests and use `https://\{subdomain\}.eploy.net/api` as the base URL.|
@@ -235,6 +236,7 @@ To get started, please pick the relevant API (some tools provide multiple to due
|Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\{subdomain\}.pinpointhq.com/api/v1` as the base URL.|
|Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.|
|Recruitee|`recruitee/default`|The [Recruitee API](https://api.recruitee.com/docs/index.html). We automatically authenticate all requests and use `https://api.recruitee.com/c/\{company_id\}` as the base URL.|
+|Recruitee|`recruitee/v1`|We use `https://api.recruitee.com/c/\{company_id\}` as the base URL. Find the official docs [here](https://docs.recruitee.com/reference).|
|RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.|
|Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials.|
|rexx systems|`rexx/default`|Rexx's HRIS export API. There is only one endpoint: `Get /`|
@@ -266,7 +268,8 @@ To get started, please pick the relevant API (some tools provide multiple to due
|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.|
|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.|
|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.|
-|Workable|`workable/v1`|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.|
+|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.|
+|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.|
|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".|
|Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).|
|workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.|
diff --git a/kombo.gemspec b/kombo.gemspec
index 929f925c..236dc584 100644
--- a/kombo.gemspec
+++ b/kombo.gemspec
@@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__)
Gem::Specification.new do |s|
s.name = 'kombo'
- s.version = '1.0.4'
+ s.version = '1.0.5'
s.platform = Gem::Platform::RUBY
s.licenses = ['Apache-2.0']
s.summary = ''
diff --git a/lib/kombo/ats.rb b/lib/kombo/ats.rb
index 2c058b07..53ea4867 100644
--- a/lib/kombo/ats.rb
+++ b/lib/kombo/ats.rb
@@ -3061,6 +3061,159 @@ def get_users(integration_id: nil, cursor: nil, page_size: nil, updated_after: n
end
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), scopes: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAtsRolesResponse) }
+ def get_roles(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, scopes: nil, timeout_ms: nil)
+ # get_roles - Get roles
+ # Retrieve all roles.
+ #
+ # 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)`
+ request = Models::Operations::GetAtsRolesRequest.new(
+ integration_id: integration_id,
+ cursor: cursor,
+ page_size: page_size,
+ updated_after: updated_after,
+ include_deleted: include_deleted,
+ ignore_unsupported_filters: ignore_unsupported_filters,
+ ids: ids,
+ remote_ids: remote_ids,
+ scopes: scopes
+ )
+ url, params = @sdk_configuration.get_server_details
+ base_url = Utils.template_url(url, params)
+ url = "#{base_url}/ats/roles"
+ headers = Utils.get_headers(request, @sdk_configuration.globals)
+ headers = T.cast(headers, T::Hash[String, String])
+ query_params = Utils.get_query_params(Models::Operations::GetAtsRolesRequest, request, nil, @sdk_configuration.globals)
+ headers['Accept'] = 'application/json'
+ headers['user-agent'] = @sdk_configuration.user_agent
+
+ security = @sdk_configuration.security_source&.call
+
+ timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil?
+ timeout ||= @sdk_configuration.timeout
+
+
+ connection = @sdk_configuration.client
+
+ hook_ctx = SDKHooks::HookContext.new(
+ config: @sdk_configuration,
+ base_url: base_url,
+ oauth2_scopes: nil,
+ operation_id: 'GetAtsRoles',
+ security_source: @sdk_configuration.security_source
+ )
+
+ error = T.let(nil, T.nilable(StandardError))
+ http_response = T.let(nil, T.nilable(Faraday::Response))
+
+
+ begin
+ http_response = T.must(connection).get(url) do |req|
+ req.headers.merge!(headers)
+ req.options.timeout = timeout unless timeout.nil?
+ req.params = query_params
+ Utils.configure_request_security(req, security)
+
+ @sdk_configuration.hooks.before_request(
+ hook_ctx: SDKHooks::BeforeRequestHookContext.new(
+ hook_ctx: hook_ctx
+ ),
+ request: req
+ )
+ end
+ rescue StandardError => e
+ error = e
+ ensure
+ if http_response.nil? || Utils.error_status?(http_response.status)
+ http_response = @sdk_configuration.hooks.after_error(
+ error: error,
+ hook_ctx: SDKHooks::AfterErrorHookContext.new(
+ hook_ctx: hook_ctx
+ ),
+ response: http_response
+ )
+ else
+ http_response = @sdk_configuration.hooks.after_success(
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
+ hook_ctx: hook_ctx
+ ),
+ response: http_response
+ )
+ end
+
+ if http_response.nil?
+ raise error if !error.nil?
+ raise 'no response'
+ end
+ end
+
+ content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream')
+ if Utils.match_status_code(http_response.status, ['200'])
+ if Utils.match_content_type(content_type, 'application/json')
+ http_response = @sdk_configuration.hooks.after_success(
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
+ hook_ctx: hook_ctx
+ ),
+ response: http_response
+ )
+ response_data = http_response.env.response_body
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetAtsRolesPositiveResponse)
+ response = Models::Operations::GetAtsRolesResponse.new(
+ status_code: http_response.status,
+ content_type: content_type,
+ raw_response: http_response,
+ get_ats_roles_positive_response: T.unsafe(obj)
+ )
+ sdk = self
+
+ response.next_page = proc do
+ next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search
+ if next_cursor.nil?
+ next nil
+ else
+ next_cursor = next_cursor[0]
+ if next_cursor.nil?
+ next nil
+ end
+ end
+
+ sdk.get_roles(
+ integration_id: integration_id,
+ cursor: next_cursor,
+ page_size: page_size,
+ updated_after: updated_after,
+ include_deleted: include_deleted,
+ ignore_unsupported_filters: ignore_unsupported_filters,
+ ids: ids,
+ remote_ids: remote_ids,
+ scopes: scopes
+ )
+ end
+
+
+ return response
+ else
+ 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'
+ end
+ else
+ if Utils.match_content_type(content_type, 'application/json')
+ http_response = @sdk_configuration.hooks.after_success(
+ hook_ctx: SDKHooks::AfterSuccessHookContext.new(
+ hook_ctx: hook_ctx
+ ),
+ response: http_response
+ )
+ response_data = http_response.env.response_body
+ obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboAtsError)
+ obj.raw_response = http_response
+ raise obj
+ else
+ 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'
+ end
+ end
+ end
+
+
sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer)).returns(Models::Operations::GetAtsOffersResponse) }
def get_offers(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, timeout_ms: nil)
# get_offers - Get offers
diff --git a/lib/kombo/general.rb b/lib/kombo/general.rb
index c838e49a..a5643d86 100644
--- a/lib/kombo/general.rb
+++ b/lib/kombo/general.rb
@@ -325,7 +325,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms
# |Cornerstone OnDemand|`cornerstoneondemand/recruiting`|Cornerstone's [Recruiting API](https://csod.dev/reference/recruiting/). We automatically authenticate all requests using the client ID and secret and use `https://\{your_domain\}.csod.com/services/api` as the base URL.|
# |Coveto (legacy SOAP API)|`coveto/public`|We automatically use `https://\{subdomain\}.coveto.de` as the base URL.|
# |Coveto (REST API)|`covetorest/v1`|We automatically use `https://\{subdomain\}.coveto.de/public/api/v1` as the base URL. https://demo.coveto.de/swagger-ui/index.html#/|
- # |Crelate|`crelate/api`|Crelate [REST API](https://help.crelate.com/en/articles/4120536-crelate-api-developer-guide). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|
+ # |Crelate|`crelate/api`|Crelate [REST API](https://app.crelate.com/api3/docs/index.html). We automatically authenticate all requests and use `https://app.crelate.com/api3` as the base URL.|
# |d.vinci admin|`dvinciadmin/odata-api`|[DVinci ODATA API](https://dvinci.freshdesk.com/en/support/solutions/articles/75000059523-odata-reporting-api).|
# |d.vinci admin|`dvinciadmin/rest-api`|[DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html).|
# |d.vinci|`dvinci/apply-api`|The [DVinci Apply API](https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html). All requests are authenticated by Kombo and use `https://\{dvinci_domain\}/p/\{portal_path\}/` as the base URL.|
@@ -336,6 +336,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms
# |DATEV|`datevhr/hr:payrollreports`|DATEV's [hr:payrollreports](https://developer.datev.de/en/product-detail/hr-payrollreports/2.0.0/overview) API. We automatically authenticate all requests and use `https://hr-payrollreports.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
# |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|
# |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.|
+ # |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.|
# |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.|
# |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.|
# |Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests and use `https://\{subdomain\}.eploy.net/api` as the base URL.|
@@ -419,6 +420,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms
# |Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\{subdomain\}.pinpointhq.com/api/v1` as the base URL.|
# |Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.|
# |Recruitee|`recruitee/default`|The [Recruitee API](https://api.recruitee.com/docs/index.html). We automatically authenticate all requests and use `https://api.recruitee.com/c/\{company_id\}` as the base URL.|
+ # |Recruitee|`recruitee/v1`|We use `https://api.recruitee.com/c/\{company_id\}` as the base URL. Find the official docs [here](https://docs.recruitee.com/reference).|
# |RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.|
# |Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials.|
# |rexx systems|`rexx/default`|Rexx's HRIS export API. There is only one endpoint: `Get /`|
@@ -450,7 +452,8 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms
# |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.|
# |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.|
# |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.|
- # |Workable|`workable/v1`|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.|
+ # |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.|
+ # |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.|
# |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".|
# |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).|
# |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.|
diff --git a/lib/kombo/models/operations.rb b/lib/kombo/models/operations.rb
index 9a04952a..831e6037 100644
--- a/lib/kombo/models/operations.rb
+++ b/lib/kombo/models/operations.rb
@@ -34,6 +34,8 @@ module Operations
autoload :GetAtsOffersResponse, 'kombo/models/operations/getatsoffers_response.rb'
autoload :GetAtsRejectionReasonsRequest, 'kombo/models/operations/getatsrejectionreasons_request.rb'
autoload :GetAtsRejectionReasonsResponse, 'kombo/models/operations/getatsrejectionreasons_response.rb'
+ autoload :GetAtsRolesRequest, 'kombo/models/operations/getatsroles_request.rb'
+ autoload :GetAtsRolesResponse, 'kombo/models/operations/getatsroles_response.rb'
autoload :GetAtsTagsRequest, 'kombo/models/operations/getatstags_request.rb'
autoload :GetAtsTagsResponse, 'kombo/models/operations/getatstags_response.rb'
autoload :GetAtsUsersRequest, 'kombo/models/operations/getatsusers_request.rb'
diff --git a/lib/kombo/models/operations/getatsroles_request.rb b/lib/kombo/models/operations/getatsroles_request.rb
new file mode 100644
index 00000000..ae1c896f
--- /dev/null
+++ b/lib/kombo/models/operations/getatsroles_request.rb
@@ -0,0 +1,73 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Operations
+
+ class GetAtsRolesRequest
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # ID of the integration you want to interact with.
+ field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } }
+ # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response.
+ field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } }
+ # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.
+ #
+ # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.
+ #
+ # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).
+ field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } }
+ # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`.
+ field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } }
+ # Filter by a comma-separated list of remote IDs.
+ field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } }
+ # Filter by a comma-separated list of `SYSTEM`, `JOB`
+ # * `SYSTEM`: System-wide roles that apply globally (e.g., an "Admin" role).
+ # * `JOB`: Job-scoped roles that apply to specific jobs (e.g., a "Hiring Manager" role).
+ #
+ #
+ # Leave this blank to get results matching all values.
+ field :scopes, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'scopes', 'style': 'form', 'explode': false } }
+ # The number of results to return per page. Maximum is 250.
+ field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } }
+ # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too.
+ field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } }
+ # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.
+ field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } }
+
+ sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), scopes: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void }
+ def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, scopes: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false)
+ @integration_id = integration_id
+ @cursor = cursor
+ @updated_after = updated_after
+ @ids = ids
+ @remote_ids = remote_ids
+ @scopes = scopes
+ @page_size = page_size
+ @include_deleted = include_deleted
+ @ignore_unsupported_filters = ignore_unsupported_filters
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @integration_id == other.integration_id
+ return false unless @cursor == other.cursor
+ return false unless @updated_after == other.updated_after
+ return false unless @ids == other.ids
+ return false unless @remote_ids == other.remote_ids
+ return false unless @scopes == other.scopes
+ return false unless @page_size == other.page_size
+ return false unless @include_deleted == other.include_deleted
+ return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/operations/getatsroles_request.rbi b/lib/kombo/models/operations/getatsroles_request.rbi
new file mode 100644
index 00000000..6a94c3fa
--- /dev/null
+++ b/lib/kombo/models/operations/getatsroles_request.rbi
@@ -0,0 +1,29 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Operations::GetAtsRolesRequest
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Operations::GetAtsRolesRequest
+ def integration_id(); end
+ def integration_id=(str_); end
+ def cursor(); end
+ def cursor=(str_); end
+ def updated_after(); end
+ def updated_after=(str_); end
+ def ids(); end
+ def ids=(str_); end
+ def remote_ids(); end
+ def remote_ids=(str_); end
+ def scopes(); end
+ def scopes=(str_); end
+ def page_size(); end
+ def page_size=(str_); end
+ def include_deleted(); end
+ def include_deleted=(str_); end
+ def ignore_unsupported_filters(); end
+ def ignore_unsupported_filters=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/operations/getatsroles_response.rb b/lib/kombo/models/operations/getatsroles_response.rb
new file mode 100644
index 00000000..af05abc3
--- /dev/null
+++ b/lib/kombo/models/operations/getatsroles_response.rb
@@ -0,0 +1,56 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Operations
+
+ class GetAtsRolesResponse
+ extend T::Sig
+ include Crystalline::MetadataFields
+ sig { returns(T.proc.returns(T.nilable(GetAtsRolesResponse))) }
+ attr_accessor :next_page
+
+ # HTTP response content type for this operation
+ field :content_type, ::String
+ # HTTP response status code for this operation
+ field :status_code, ::Integer
+ # Raw HTTP response; suitable for custom response parsing
+ field :raw_response, ::Faraday::Response
+ # GET /ats/roles Positive response
+ field :get_ats_roles_positive_response, Crystalline::Nilable.new(Models::Shared::GetAtsRolesPositiveResponse)
+
+ sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_ats_roles_positive_response: T.nilable(Models::Shared::GetAtsRolesPositiveResponse)).void }
+ def initialize(content_type:, status_code:, raw_response:, get_ats_roles_positive_response: nil)
+ @content_type = content_type
+ @status_code = status_code
+ @raw_response = raw_response
+ @get_ats_roles_positive_response = get_ats_roles_positive_response
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @content_type == other.content_type
+ return false unless @status_code == other.status_code
+ return false unless @raw_response == other.raw_response
+ return false unless @get_ats_roles_positive_response == other.get_ats_roles_positive_response
+ true
+ end
+
+ def each
+ page = self
+ loop do
+ yield page
+ next_page = page.next_page.call if page.next_page
+ break if next_page.nil?
+ page = T.must(next_page)
+ end
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/operations/getatsroles_response.rbi b/lib/kombo/models/operations/getatsroles_response.rbi
new file mode 100644
index 00000000..e19bbbf6
--- /dev/null
+++ b/lib/kombo/models/operations/getatsroles_response.rbi
@@ -0,0 +1,19 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Operations::GetAtsRolesResponse
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Operations::GetAtsRolesResponse
+ def content_type(); end
+ def content_type=(str_); end
+ def status_code(); end
+ def status_code=(str_); end
+ def raw_response(); end
+ def raw_response=(str_); end
+ def get_ats_roles_positive_response(); end
+ def get_ats_roles_positive_response=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared.rb b/lib/kombo/models/shared.rb
index df369c44..4ff5adfc 100644
--- a/lib/kombo/models/shared.rb
+++ b/lib/kombo/models/shared.rb
@@ -135,7 +135,9 @@ module Shared
autoload :GetAtsJobsPositiveResponseHiringTeamRole, 'kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb'
autoload :GetAtsJobsPositiveResponseLocation, 'kombo/models/shared/getatsjobspositiveresponse_location.rb'
autoload :GetAtsJobsPositiveResponseResult, 'kombo/models/shared/getatsjobspositiveresponse_result.rb'
+ autoload :GetAtsJobsPositiveResponseScope, 'kombo/models/shared/getatsjobspositiveresponse_scope.rb'
autoload :GetAtsJobsPositiveResponseStatus, 'kombo/models/shared/getatsjobspositiveresponse_status.rb'
+ autoload :GetAtsJobsPositiveResponseUnifiedType, 'kombo/models/shared/getatsjobspositiveresponse_unified_type.rb'
autoload :GetAtsOffersPositiveResponse, 'kombo/models/shared/getatsofferspositiveresponse.rb'
autoload :GetAtsOffersPositiveResponseApplication, 'kombo/models/shared/getatsofferspositiveresponse_application.rb'
autoload :GetAtsOffersPositiveResponseCandidate, 'kombo/models/shared/getatsofferspositiveresponse_candidate.rb'
@@ -147,13 +149,20 @@ module Shared
autoload :GetAtsRejectionReasonsPositiveResponse, 'kombo/models/shared/getatsrejectionreasonspositiveresponse.rb'
autoload :GetAtsRejectionReasonsPositiveResponseData, 'kombo/models/shared/getatsrejectionreasonspositiveresponse_data.rb'
autoload :GetAtsRejectionReasonsPositiveResponseResult, 'kombo/models/shared/getatsrejectionreasonspositiveresponse_result.rb'
+ autoload :GetAtsRolesPositiveResponse, 'kombo/models/shared/getatsrolespositiveresponse.rb'
+ autoload :GetAtsRolesPositiveResponseData, 'kombo/models/shared/getatsrolespositiveresponse_data.rb'
+ autoload :GetAtsRolesPositiveResponseResult, 'kombo/models/shared/getatsrolespositiveresponse_result.rb'
+ autoload :GetAtsRolesPositiveResponseScope, 'kombo/models/shared/getatsrolespositiveresponse_scope.rb'
+ autoload :GetAtsRolesPositiveResponseUnifiedType, 'kombo/models/shared/getatsrolespositiveresponse_unified_type.rb'
autoload :GetAtsTagsPositiveResponse, 'kombo/models/shared/getatstagspositiveresponse.rb'
autoload :GetAtsTagsPositiveResponseData, 'kombo/models/shared/getatstagspositiveresponse_data.rb'
autoload :GetAtsTagsPositiveResponseResult, 'kombo/models/shared/getatstagspositiveresponse_result.rb'
autoload :GetAtsUsersPositiveResponse, 'kombo/models/shared/getatsuserspositiveresponse.rb'
autoload :GetAtsUsersPositiveResponseData, 'kombo/models/shared/getatsuserspositiveresponse_data.rb'
autoload :GetAtsUsersPositiveResponseResult, 'kombo/models/shared/getatsuserspositiveresponse_result.rb'
+ autoload :GetAtsUsersPositiveResponseScope, 'kombo/models/shared/getatsuserspositiveresponse_scope.rb'
autoload :GetAtsUsersPositiveResponseStatus, 'kombo/models/shared/getatsuserspositiveresponse_status.rb'
+ autoload :GetAtsUsersPositiveResponseUnifiedType, 'kombo/models/shared/getatsuserspositiveresponse_unified_type.rb'
autoload :GetCheckApiKeyPositiveResponse, 'kombo/models/shared/getcheckapikeypositiveresponse.rb'
autoload :GetCheckApiKeyPositiveResponseData, 'kombo/models/shared/getcheckapikeypositiveresponse_data.rb'
autoload :GetConnectIntegrationByTokenTokenPositiveResponse, 'kombo/models/shared/getconnectintegrationbytokentokenpositiveresponse.rb'
@@ -332,6 +341,7 @@ module Shared
autoload :PostAtsApplicationsApplicationIdNotesRequestBody, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody.rb'
autoload :PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_bullhorn.rb'
autoload :PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_greenhouse.rb'
+ autoload :PostAtsApplicationsApplicationIdNotesRequestBodyLever, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb'
autoload :PostAtsApplicationsApplicationIdNotesRequestBodyPostHeaders, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_post_headers.rb'
autoload :PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_recruitee.rb'
autoload :PostAtsApplicationsApplicationIdNotesRequestBodyRemoteFields, 'kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb'
@@ -661,6 +671,7 @@ module Shared
autoload :PutAssessmentOrdersAssessmentOrderIdResultPositiveResponseWarning, 'kombo/models/shared/putassessmentordersassessmentorderidresultpositiveresponse_warning.rb'
autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBody, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody.rb'
autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBodyAttachment, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_attachment.rb'
+ autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb'
autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRemoteFields, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb'
autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_smartrecruiters.rb'
autoload :PutAssessmentOrdersAssessmentOrderIdResultRequestBodyStatus, 'kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_status.rb'
@@ -802,6 +813,7 @@ module Shared
autoload :JobPosting, 'kombo/models/shared/job_posting.rb'
autoload :JobPostingStatus, 'kombo/models/shared/job_posting_status.rb'
autoload :JobPostingVisibility, 'kombo/models/shared/job_posting_visibility.rb'
+ autoload :JobRole, 'kombo/models/shared/job_role.rb'
autoload :LegalEntity, 'kombo/models/shared/legal_entity.rb'
autoload :LegalEntityAddress, 'kombo/models/shared/legal_entity_address.rb'
autoload :Manager, 'kombo/models/shared/manager.rb'
@@ -839,6 +851,7 @@ module Shared
autoload :SummaryRating, 'kombo/models/shared/summary_rating.rb'
autoload :SummaryRatingNumeric, 'kombo/models/shared/summary_rating_numeric.rb'
autoload :SummaryRatingSingleSelect, 'kombo/models/shared/summary_rating_singleselect.rb'
+ autoload :SystemRole, 'kombo/models/shared/system_role.rb'
autoload :TimeOffBalance, 'kombo/models/shared/time_off_balance.rb'
autoload :User, 'kombo/models/shared/user.rb'
autoload :Value, 'kombo/models/shared/value.rb'
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb b/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb
index c6d49c5d..c5ea9fea 100644
--- a/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb
@@ -14,8 +14,14 @@ class GetAtsJobsPositiveResponseHiringTeam
# The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
- # Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
+ # **(⚠️ Deprecated - Use `job_roles` to access the full list of job roles.)** Array of the roles of the user for this specific job. Currently only `RECRUITER` and `HIRING_MANAGER` are mapped into our unified schema.
+ #
+ # @deprecated true: This will be removed in a future release, please migrate away from it as soon as possible.
field :hiring_team_roles, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('hiring_team_roles'), required: true } }
+ # Roles assigned to this user for this job.
+ #
+ # Note: Use `system_roles` on the `/v1/ats/users` endpoint for system-wide roles.
+ field :job_roles, Crystalline::Array.new(Models::Shared::JobRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('job_roles'), required: true } }
# The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
# First name of the user.
@@ -25,10 +31,11 @@ class GetAtsJobsPositiveResponseHiringTeam
# Email of the user. If the email address is invalid, it will be set to null.
field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email') } }
- sig { params(id: ::String, hiring_team_roles: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), email: T.nilable(::String)).void }
- def initialize(id:, hiring_team_roles:, remote_id: nil, first_name: nil, last_name: nil, email: nil)
+ sig { params(id: ::String, hiring_team_roles: T::Array[Models::Shared::GetAtsJobsPositiveResponseHiringTeamRole], job_roles: T::Array[Models::Shared::JobRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), email: T.nilable(::String)).void }
+ def initialize(id:, hiring_team_roles:, job_roles:, remote_id: nil, first_name: nil, last_name: nil, email: nil)
@id = id
@hiring_team_roles = hiring_team_roles
+ @job_roles = job_roles
@remote_id = remote_id
@first_name = first_name
@last_name = last_name
@@ -40,6 +47,7 @@ def ==(other)
return false unless other.is_a? self.class
return false unless @id == other.id
return false unless @hiring_team_roles == other.hiring_team_roles
+ return false unless @job_roles == other.job_roles
return false unless @remote_id == other.remote_id
return false unless @first_name == other.first_name
return false unless @last_name == other.last_name
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi b/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi
index 99d8983c..840277ce 100644
--- a/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_hiring_team.rbi
@@ -12,6 +12,8 @@ class Kombo::Models::Shared::GetAtsJobsPositiveResponseHiringTeam
def id=(str_); end
def hiring_team_roles(); end
def hiring_team_roles=(str_); end
+ def job_roles(); end
+ def job_roles=(str_); end
def remote_id(); end
def remote_id=(str_); end
def first_name(); end
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb b/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb
new file mode 100644
index 00000000..8a230157
--- /dev/null
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rb
@@ -0,0 +1,21 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsJobsPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
+ class GetAtsJobsPositiveResponseScope < T::Enum
+
+
+ enums do
+ SYSTEM = new('SYSTEM')
+ JOB = new('JOB')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi b/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi
new file mode 100644
index 00000000..4fe2c802
--- /dev/null
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_scope.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsJobsPositiveResponseScope
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsJobsPositiveResponseScope
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb b/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb
new file mode 100644
index 00000000..70186980
--- /dev/null
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rb
@@ -0,0 +1,22 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsJobsPositiveResponseUnifiedType - Unified role type if Kombo can map it.
+ class GetAtsJobsPositiveResponseUnifiedType < T::Enum
+
+
+ enums do
+ HIRING_MANAGER = new('HIRING_MANAGER')
+ RECRUITER = new('RECRUITER')
+ ADMIN = new('ADMIN')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi b/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi
new file mode 100644
index 00000000..ae4da4ac
--- /dev/null
+++ b/lib/kombo/models/shared/getatsjobspositiveresponse_unified_type.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsJobsPositiveResponseUnifiedType
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsJobsPositiveResponseUnifiedType
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse.rb b/lib/kombo/models/shared/getatsrolespositiveresponse.rb
new file mode 100644
index 00000000..35c79a47
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse.rb
@@ -0,0 +1,39 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class GetAtsRolesPositiveResponse
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+
+ field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } }
+
+ field :data, Models::Shared::GetAtsRolesPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } }
+
+ sig { params(status: ::String, data: Models::Shared::GetAtsRolesPositiveResponseData).void }
+ def initialize(status:, data:)
+ unless status == 'success'
+ raise ArgumentError, 'Invalid value for status'
+ end
+ @status = 'success'
+ @data = data
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @status == other.status
+ return false unless @data == other.data
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse.rbi b/lib/kombo/models/shared/getatsrolespositiveresponse.rbi
new file mode 100644
index 00000000..51b272eb
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse.rbi
@@ -0,0 +1,15 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponse
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponse
+ def status(); end
+ def status=(str_); end
+ def data(); end
+ def data=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb b/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb
new file mode 100644
index 00000000..0ea618cf
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_data.rb
@@ -0,0 +1,36 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class GetAtsRolesPositiveResponseData
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+
+ field :results, Crystalline::Array.new(Models::Shared::GetAtsRolesPositiveResponseResult), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('results'), required: true } }
+ # Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages.
+ field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('next'), required: true } }
+
+ sig { params(results: T::Array[Models::Shared::GetAtsRolesPositiveResponseResult], next_: T.nilable(::String)).void }
+ def initialize(results:, next_: nil)
+ @results = results
+ @next_ = next_
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @results == other.results
+ return false unless @next_ == other.next_
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi b/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi
new file mode 100644
index 00000000..12f05f2f
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_data.rbi
@@ -0,0 +1,15 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseData
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseData
+ def results(); end
+ def results=(str_); end
+ def next_(); end
+ def next_=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb b/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb
new file mode 100644
index 00000000..a57dbb05
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_result.rb
@@ -0,0 +1,58 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class GetAtsRolesPositiveResponseResult
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing.
+ field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } }
+ # The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
+ field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
+ # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
+ # The label of the role.
+ field :remote_label, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
+ # Whether the role applies globally or is scoped to a specific job.
+ field :scope, Crystalline::Nilable.new(Models::Shared::GetAtsRolesPositiveResponseScope), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('scope'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsRolesPositiveResponseScope, false) } }
+ # Unified role type if Kombo can map it.
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetAtsRolesPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsRolesPositiveResponseUnifiedType, false) } }
+ # 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.
+ # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
+ field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
+
+ sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), remote_label: T.nilable(::String), scope: T.nilable(Models::Shared::GetAtsRolesPositiveResponseScope), unified_type: T.nilable(Models::Shared::GetAtsRolesPositiveResponseUnifiedType), remote_deleted_at: T.nilable(::DateTime)).void }
+ def initialize(id:, changed_at:, remote_id: nil, remote_label: nil, scope: nil, unified_type: nil, remote_deleted_at: nil)
+ @id = id
+ @changed_at = changed_at
+ @remote_id = remote_id
+ @remote_label = remote_label
+ @scope = scope
+ @unified_type = unified_type
+ @remote_deleted_at = remote_deleted_at
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @id == other.id
+ return false unless @changed_at == other.changed_at
+ return false unless @remote_id == other.remote_id
+ return false unless @remote_label == other.remote_label
+ return false unless @scope == other.scope
+ return false unless @unified_type == other.unified_type
+ return false unless @remote_deleted_at == other.remote_deleted_at
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi b/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi
new file mode 100644
index 00000000..f3c429eb
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_result.rbi
@@ -0,0 +1,25 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseResult
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseResult
+ def id(); end
+ def id=(str_); end
+ def changed_at(); end
+ def changed_at=(str_); end
+ def remote_id(); end
+ def remote_id=(str_); end
+ def remote_label(); end
+ def remote_label=(str_); end
+ def scope(); end
+ def scope=(str_); end
+ def unified_type(); end
+ def unified_type=(str_); end
+ def remote_deleted_at(); end
+ def remote_deleted_at=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb b/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb
new file mode 100644
index 00000000..1e5f13e9
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rb
@@ -0,0 +1,21 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsRolesPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
+ class GetAtsRolesPositiveResponseScope < T::Enum
+
+
+ enums do
+ SYSTEM = new('SYSTEM')
+ JOB = new('JOB')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi b/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi
new file mode 100644
index 00000000..73bafb9e
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_scope.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseScope
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseScope
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb b/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb
new file mode 100644
index 00000000..a2ba6694
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rb
@@ -0,0 +1,22 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsRolesPositiveResponseUnifiedType - Unified role type if Kombo can map it.
+ class GetAtsRolesPositiveResponseUnifiedType < T::Enum
+
+
+ enums do
+ HIRING_MANAGER = new('HIRING_MANAGER')
+ RECRUITER = new('RECRUITER')
+ ADMIN = new('ADMIN')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi b/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi
new file mode 100644
index 00000000..e27bebfb
--- /dev/null
+++ b/lib/kombo/models/shared/getatsrolespositiveresponse_unified_type.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseUnifiedType
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsRolesPositiveResponseUnifiedType
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb b/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb
index 0c53b73b..a68869a0 100644
--- a/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_result.rb
@@ -17,6 +17,10 @@ class GetAtsUsersPositiveResponseResult
# The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.
# https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': Utils.datetime_from_iso_format(false) } }
+ # System-wide roles assigned to this user in the ATS.
+ #
+ # Note: Use `job_roles` on the `/v1/ats/jobs` endpoint for job-specific roles.
+ field :system_roles, Crystalline::Array.new(Models::Shared::SystemRole), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('system_roles'), required: true } }
# The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
# First name of the user.
@@ -31,10 +35,11 @@ class GetAtsUsersPositiveResponseResult
# Email of the user. If the email address is invalid, it will be set to null.
field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email') } }
- sig { params(id: ::String, changed_at: ::DateTime, remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), status: T.nilable(Models::Shared::GetAtsUsersPositiveResponseStatus), remote_deleted_at: T.nilable(::DateTime), email: T.nilable(::String)).void }
- def initialize(id:, changed_at:, remote_id: nil, first_name: nil, last_name: nil, status: nil, remote_deleted_at: nil, email: nil)
+ sig { params(id: ::String, changed_at: ::DateTime, system_roles: T::Array[Models::Shared::SystemRole], remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), status: T.nilable(Models::Shared::GetAtsUsersPositiveResponseStatus), remote_deleted_at: T.nilable(::DateTime), email: T.nilable(::String)).void }
+ def initialize(id:, changed_at:, system_roles:, remote_id: nil, first_name: nil, last_name: nil, status: nil, remote_deleted_at: nil, email: nil)
@id = id
@changed_at = changed_at
+ @system_roles = system_roles
@remote_id = remote_id
@first_name = first_name
@last_name = last_name
@@ -48,6 +53,7 @@ def ==(other)
return false unless other.is_a? self.class
return false unless @id == other.id
return false unless @changed_at == other.changed_at
+ return false unless @system_roles == other.system_roles
return false unless @remote_id == other.remote_id
return false unless @first_name == other.first_name
return false unless @last_name == other.last_name
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi b/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi
index 0e9dd88f..2182d8d1 100644
--- a/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_result.rbi
@@ -12,6 +12,8 @@ class Kombo::Models::Shared::GetAtsUsersPositiveResponseResult
def id=(str_); end
def changed_at(); end
def changed_at=(str_); end
+ def system_roles(); end
+ def system_roles=(str_); end
def remote_id(); end
def remote_id=(str_); end
def first_name(); end
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb b/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb
new file mode 100644
index 00000000..616de85f
--- /dev/null
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rb
@@ -0,0 +1,21 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsUsersPositiveResponseScope - Whether the role applies globally or is scoped to a specific job.
+ class GetAtsUsersPositiveResponseScope < T::Enum
+
+
+ enums do
+ SYSTEM = new('SYSTEM')
+ JOB = new('JOB')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi b/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi
new file mode 100644
index 00000000..42dd90ad
--- /dev/null
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_scope.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsUsersPositiveResponseScope
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsUsersPositiveResponseScope
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb b/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb
new file mode 100644
index 00000000..259f737e
--- /dev/null
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rb
@@ -0,0 +1,22 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # GetAtsUsersPositiveResponseUnifiedType - Unified role type if Kombo can map it.
+ class GetAtsUsersPositiveResponseUnifiedType < T::Enum
+
+
+ enums do
+ HIRING_MANAGER = new('HIRING_MANAGER')
+ RECRUITER = new('RECRUITER')
+ ADMIN = new('ADMIN')
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi b/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi
new file mode 100644
index 00000000..f257b606
--- /dev/null
+++ b/lib/kombo/models/shared/getatsuserspositiveresponse_unified_type.rbi
@@ -0,0 +1,11 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::GetAtsUsersPositiveResponseUnifiedType
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::GetAtsUsersPositiveResponseUnifiedType
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/integration_tool.rb b/lib/kombo/models/shared/integration_tool.rb
index 706170ed..e7a517a1 100644
--- a/lib/kombo/models/shared/integration_tool.rb
+++ b/lib/kombo/models/shared/integration_tool.rb
@@ -106,6 +106,7 @@ class IntegrationTool < T::Enum
BREEZYHR = new('breezyhr')
FLATCHR = new('flatchr')
DAYFORCE = new('dayforce')
+ DIGITALRECRUITERS = new('digitalrecruiters')
APPLICANTSTACK = new('applicantstack')
REACHMEE = new('reachmee')
TALENTADORE = new('talentadore')
diff --git a/lib/kombo/models/shared/job_role.rb b/lib/kombo/models/shared/job_role.rb
new file mode 100644
index 00000000..0ac69d32
--- /dev/null
+++ b/lib/kombo/models/shared/job_role.rb
@@ -0,0 +1,44 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class JobRole
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
+ # The label of the role.
+ field :remote_label, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
+ # Whether the role applies globally or is scoped to a specific job.
+ field :scope, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseScope), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('scope'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsJobsPositiveResponseScope, false) } }
+ # Unified role type if Kombo can map it.
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetAtsJobsPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsJobsPositiveResponseUnifiedType, false) } }
+
+ sig { params(remote_id: T.nilable(::String), remote_label: T.nilable(::String), scope: T.nilable(Models::Shared::GetAtsJobsPositiveResponseScope), unified_type: T.nilable(Models::Shared::GetAtsJobsPositiveResponseUnifiedType)).void }
+ def initialize(remote_id: nil, remote_label: nil, scope: nil, unified_type: nil)
+ @remote_id = remote_id
+ @remote_label = remote_label
+ @scope = scope
+ @unified_type = unified_type
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @remote_id == other.remote_id
+ return false unless @remote_label == other.remote_label
+ return false unless @scope == other.scope
+ return false unless @unified_type == other.unified_type
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/job_role.rbi b/lib/kombo/models/shared/job_role.rbi
new file mode 100644
index 00000000..05784943
--- /dev/null
+++ b/lib/kombo/models/shared/job_role.rbi
@@ -0,0 +1,19 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::JobRole
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::JobRole
+ def remote_id(); end
+ def remote_id=(str_); end
+ def remote_label(); end
+ def remote_label=(str_); end
+ def scope(); end
+ def scope=(str_); end
+ def unified_type(); end
+ def unified_type=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/name.rb b/lib/kombo/models/shared/name.rb
index c5d6e99b..4cbb06fb 100644
--- a/lib/kombo/models/shared/name.rb
+++ b/lib/kombo/models/shared/name.rb
@@ -35,6 +35,7 @@ class Name < T::Enum
ATS_INTERVIEWS = new('ats_interviews')
ATS_OFFERS = new('ats_offers')
ATS_REJECTION_REASONS = new('ats_rejection_reasons')
+ ATS_ROLES = new('ats_roles')
LMS_USERS = new('lms_users')
LMS_COURSE_PROVIDERS = new('lms_course_providers')
LMS_SKILLS = new('lms_skills')
@@ -45,7 +46,9 @@ class Name < T::Enum
ATS_JOIN_CANDIDATES_TAGS = new('ats_join_candidates_tags')
ATS_JOIN_JOBS_APPLICATION_STAGES = new('ats_join_jobs_application_stages')
ATS_JOIN_JOBS_SCREENING_QUESTIONS = new('ats_join_jobs_screening_questions')
+ ATS_JOIN_USER_JOB_ROLE_ASSIGNMENTS = new('ats_join_user_job_role_assignments')
ATS_JOIN_JOBS_USERS = new('ats_join_jobs_users')
+ ATS_JOIN_USERS_ROLES = new('ats_join_users_roles')
ATS_JOIN_INTERVIEWS_USERS = new('ats_join_interviews_users')
LMS_JOIN_REVISIONS_SKILLS = new('lms_join_revisions_skills')
end
diff --git a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb
new file mode 100644
index 00000000..e6c6535b
--- /dev/null
+++ b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rb
@@ -0,0 +1,32 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+ # Lever specific remote fields for the note.
+ class PostAtsApplicationsApplicationIdNotesRequestBodyLever
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token.
+ field :perform_as, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('perform_as') } }
+
+ sig { params(perform_as: T.nilable(::String)).void }
+ def initialize(perform_as: nil)
+ @perform_as = perform_as
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @perform_as == other.perform_as
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi
new file mode 100644
index 00000000..6f4b1920
--- /dev/null
+++ b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_lever.rbi
@@ -0,0 +1,13 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever
+ def perform_as(); end
+ def perform_as=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb
index 0df5f9bf..1ee47a44 100644
--- a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb
+++ b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rb
@@ -20,15 +20,18 @@ class PostAtsApplicationsApplicationIdNotesRequestBodyRemoteFields
field :recruitee, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('recruitee') } }
# Bullhorn specific remote fields for the note.
field :bullhorn, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('bullhorn') } }
+ # Lever specific remote fields for the note.
+ field :lever, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('lever') } }
# Workable specific remote fields for ATS actions.
field :workable, Crystalline::Nilable.new(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('workable') } }
- sig { params(teamtailor: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse), recruitee: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), bullhorn: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), workable: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable)).void }
- def initialize(teamtailor: nil, greenhouse: nil, recruitee: nil, bullhorn: nil, workable: nil)
+ sig { params(teamtailor: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyTeamtailor), greenhouse: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyGreenhouse), recruitee: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRecruitee), bullhorn: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyBullhorn), lever: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyLever), workable: T.nilable(Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyWorkable)).void }
+ def initialize(teamtailor: nil, greenhouse: nil, recruitee: nil, bullhorn: nil, lever: nil, workable: nil)
@teamtailor = teamtailor
@greenhouse = greenhouse
@recruitee = recruitee
@bullhorn = bullhorn
+ @lever = lever
@workable = workable
end
@@ -39,6 +42,7 @@ def ==(other)
return false unless @greenhouse == other.greenhouse
return false unless @recruitee == other.recruitee
return false unless @bullhorn == other.bullhorn
+ return false unless @lever == other.lever
return false unless @workable == other.workable
true
end
diff --git a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi
index cda2b1ba..c5df5627 100644
--- a/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi
+++ b/lib/kombo/models/shared/postatsapplicationsapplicationidnotesrequestbody_remote_fields.rbi
@@ -16,6 +16,8 @@ class Kombo::Models::Shared::PostAtsApplicationsApplicationIdNotesRequestBodyRem
def recruitee=(str_); end
def bullhorn(); end
def bullhorn=(str_); end
+ def lever(); end
+ def lever=(str_); end
def workable(); end
def workable=(str_); end
end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb
new file mode 100644
index 00000000..b106dc40
--- /dev/null
+++ b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rb
@@ -0,0 +1,32 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # Value that we will pass through to Recruitee's `subtitle` field on the assessment report.
+ field :subtitle, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('subtitle') } }
+
+ sig { params(subtitle: T.nilable(::String)).void }
+ def initialize(subtitle: nil)
+ @subtitle = subtitle
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @subtitle == other.subtitle
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi
new file mode 100644
index 00000000..66fe8702
--- /dev/null
+++ b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_recruitee.rbi
@@ -0,0 +1,13 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee
+ def subtitle(); end
+ def subtitle=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb
index 020ca87e..935388d6 100644
--- a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb
+++ b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rb
@@ -15,15 +15,19 @@ class PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRemoteFields
field :smartrecruiters, Crystalline::Nilable.new(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('smartrecruiters') } }
- sig { params(smartrecruiters: T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters)).void }
- def initialize(smartrecruiters: nil)
+ field :recruitee, Crystalline::Nilable.new(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('recruitee') } }
+
+ sig { params(smartrecruiters: T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodySmartrecruiters), recruitee: T.nilable(Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRecruitee)).void }
+ def initialize(smartrecruiters: nil, recruitee: nil)
@smartrecruiters = smartrecruiters
+ @recruitee = recruitee
end
sig { params(other: T.untyped).returns(T::Boolean) }
def ==(other)
return false unless other.is_a? self.class
return false unless @smartrecruiters == other.smartrecruiters
+ return false unless @recruitee == other.recruitee
true
end
end
diff --git a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi
index e9d7d16e..b37bb72f 100644
--- a/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi
+++ b/lib/kombo/models/shared/putassessmentordersassessmentorderidresultrequestbody_remote_fields.rbi
@@ -10,4 +10,6 @@ end
class Kombo::Models::Shared::PutAssessmentOrdersAssessmentOrderIdResultRequestBodyRemoteFields
def smartrecruiters(); end
def smartrecruiters=(str_); end
+ def recruitee(); end
+ def recruitee=(str_); end
end
\ No newline at end of file
diff --git a/lib/kombo/models/shared/system_role.rb b/lib/kombo/models/shared/system_role.rb
new file mode 100644
index 00000000..0b6c62c5
--- /dev/null
+++ b/lib/kombo/models/shared/system_role.rb
@@ -0,0 +1,44 @@
+# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
+
+# typed: true
+# frozen_string_literal: true
+
+
+module Kombo
+ module Models
+ module Shared
+
+ class SystemRole
+ extend T::Sig
+ include Crystalline::MetadataFields
+
+ # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key.
+ field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } }
+ # The label of the role.
+ field :remote_label, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_label'), required: true } }
+ # Whether the role applies globally or is scoped to a specific job.
+ field :scope, Crystalline::Nilable.new(Models::Shared::GetAtsUsersPositiveResponseScope), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('scope'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsUsersPositiveResponseScope, false) } }
+ # Unified role type if Kombo can map it.
+ field :unified_type, Crystalline::Nilable.new(Models::Shared::GetAtsUsersPositiveResponseUnifiedType), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('unified_type'), required: true, 'decoder': Utils.enum_from_string(Models::Shared::GetAtsUsersPositiveResponseUnifiedType, false) } }
+
+ sig { params(remote_id: T.nilable(::String), remote_label: T.nilable(::String), scope: T.nilable(Models::Shared::GetAtsUsersPositiveResponseScope), unified_type: T.nilable(Models::Shared::GetAtsUsersPositiveResponseUnifiedType)).void }
+ def initialize(remote_id: nil, remote_label: nil, scope: nil, unified_type: nil)
+ @remote_id = remote_id
+ @remote_label = remote_label
+ @scope = scope
+ @unified_type = unified_type
+ end
+
+ sig { params(other: T.untyped).returns(T::Boolean) }
+ def ==(other)
+ return false unless other.is_a? self.class
+ return false unless @remote_id == other.remote_id
+ return false unless @remote_label == other.remote_label
+ return false unless @scope == other.scope
+ return false unless @unified_type == other.unified_type
+ true
+ end
+ end
+ end
+ end
+end
diff --git a/lib/kombo/models/shared/system_role.rbi b/lib/kombo/models/shared/system_role.rbi
new file mode 100644
index 00000000..db69b909
--- /dev/null
+++ b/lib/kombo/models/shared/system_role.rbi
@@ -0,0 +1,19 @@
+# typed: true
+# frozen_string_literal: true
+
+
+class Kombo::Models::Shared::SystemRole
+ extend ::Crystalline::MetadataFields::ClassMethods
+end
+
+
+class Kombo::Models::Shared::SystemRole
+ def remote_id(); end
+ def remote_id=(str_); end
+ def remote_label(); end
+ def remote_label=(str_); end
+ def scope(); end
+ def scope=(str_); end
+ def unified_type(); end
+ def unified_type=(str_); end
+end
\ No newline at end of file
diff --git a/lib/kombo/sdkconfiguration.rb b/lib/kombo/sdkconfiguration.rb
index 35f7a2bb..2ebc998d 100644
--- a/lib/kombo/sdkconfiguration.rb
+++ b/lib/kombo/sdkconfiguration.rb
@@ -98,9 +98,9 @@ def initialize(client, hooks, retry_config, timeout_ms, security, security_sourc
@globals = globals.nil? ? {} : globals
@language = 'ruby'
@openapi_doc_version = '1.0.0'
- @sdk_version = '1.0.4'
+ @sdk_version = '1.0.5'
@gen_version = '2.801.2'
- @user_agent = 'speakeasy-sdk/ruby 1.0.4 2.801.2 1.0.0 kombo'
+ @user_agent = 'speakeasy-sdk/ruby 1.0.5 2.801.2 1.0.0 kombo'
end
sig { returns([String, T::Hash[Symbol, String]]) }