From ee9074ea044053c1623ac1b140bbd102e4cb8680 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 11 Aug 2026 00:08:39 +0000 Subject: [PATCH] ## Typescript SDK Changes: * `kombo.ats.getAtsNotes()`: **Added** * `kombo.ats.createCandidate()`: * `request.remoteFields` **Changed** * `kombo.ats.createApplication()`: * `request.body.remoteFields` **Changed** --- .speakeasy/gen.lock | 188 +++++++++---- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 12 +- README.md | 8 +- RELEASES.md | 12 +- docs/models/author.md | 25 ++ docs/models/changedmodel.md | 2 +- docs/models/getatsnotespositiveresponse.md | 46 ++++ .../models/getatsnotespositiveresponsedata.md | 43 +++ .../getatsnotespositiveresponseresult.md | 47 ++++ docs/models/name.md | 4 +- .../operations/getatsapplicationsrequest.md | 2 +- docs/models/operations/getatsnotesglobals.md | 17 ++ docs/models/operations/getatsnotesrequest.md | 23 ++ docs/models/operations/getatsnotesresponse.md | 47 ++++ .../postatscandidatesrequestbodybullhorn.md | 9 +- ...atscandidatesrequestbodypilogacandidate.md | 7 +- ...obsjobidapplicationsrequestbodybullhorn.md | 9 +- ...dapplicationsrequestbodypilogacandidate.md | 7 +- docs/sdks/ats/README.md | 79 ++++++ docs/sdks/general/README.md | 2 +- examples/package-lock.json | 2 +- jsr.json | 2 +- package-lock.json | 4 +- package.json | 2 +- src/funcs/atsGetAtsNotes.ts | 257 ++++++++++++++++++ src/funcs/generalSendPassthroughRequest.ts | 2 +- src/lib/config.ts | 6 +- src/models/datachangedwebhookpayload.ts | 1 + src/models/getatsnotespositiveresponse.ts | 195 +++++++++++++ src/models/index.ts | 1 + src/models/operations/getatsapplications.ts | 2 +- src/models/operations/getatsnotes.ts | 137 ++++++++++ src/models/operations/index.ts | 1 + src/models/postatscandidatesrequestbody.ts | 12 + ...postatsjobsjobidapplicationsrequestbody.ts | 12 + src/sdk/ats.ts | 20 ++ src/sdk/general.ts | 2 +- 38 files changed, 1158 insertions(+), 91 deletions(-) create mode 100644 docs/models/author.md create mode 100644 docs/models/getatsnotespositiveresponse.md create mode 100644 docs/models/getatsnotespositiveresponsedata.md create mode 100644 docs/models/getatsnotespositiveresponseresult.md create mode 100644 docs/models/operations/getatsnotesglobals.md create mode 100644 docs/models/operations/getatsnotesrequest.md create mode 100644 docs/models/operations/getatsnotesresponse.md create mode 100644 src/funcs/atsGetAtsNotes.ts create mode 100644 src/models/getatsnotespositiveresponse.ts create mode 100644 src/models/operations/getatsnotes.ts diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index bdd8192..2f87189 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: 2.0.0 id: 79567c4a-05f9-4d65-864d-dfe107aa4e9d management: - docChecksum: da87c0bff2b2c2419968fa39284dc718 + docChecksum: 045d3f9432784414152310e79ba300d4 docVersion: 1.0.0 - speakeasyVersion: 1.791.0 - generationVersion: 2.924.0 - releaseVersion: 1.3.4 - configChecksum: bd3fa9f388bd362f5df2a44decd4ea6d + speakeasyVersion: 1.793.0 + generationVersion: 2.928.0 + releaseVersion: 1.3.5 + configChecksum: 1906ffb9f6e9d55ac024b8a8fad22a3f repoURL: https://github.com/kombohq/typescript-sdk.git installationURL: https://github.com/kombohq/typescript-sdk published: true persistentEdits: - generation_id: acdf1a43-9d97-4447-8b67-1bd3d5db417a - pristine_commit_hash: d0d541e47c9e4100f3000b04140419a64e45646f - pristine_tree_hash: 2bee8ae80eccc78c6099420d61f91841cfd6b84d + generation_id: 0198d55a-4966-47ce-810a-ad66d4222392 + pristine_commit_hash: 81ac4163a564b3da015a5fc6d7a18242679c646f + pristine_tree_hash: 077c603b767168bea7d48a82736e05fa044457e2 features: typescript: additionalDependencies: 0.1.0 @@ -145,6 +145,10 @@ trackedFiles: id: 54f823199f61 last_write_checksum: sha1:7a2cfc17b20b196a7b245c13351bc2da6f71c25b pristine_git_object: 4a4c85d8487358e3a9f06be05da9f0777a9eb3bc + docs/models/author.md: + id: b4139065dbed + last_write_checksum: sha1:35f2b2ec0ee62be28571be7cbca773a3448af708 + pristine_git_object: 40ed3a13e61edfa310ce97e80acc62f7de5534ff docs/models/bankaccount.md: id: 7d5535aca59c last_write_checksum: sha1:152f5b6a9971bd7be2dabbf02d61089ec2892215 @@ -163,8 +167,8 @@ trackedFiles: pristine_git_object: c45b8857829855358be31819ef1ec6da078089b8 docs/models/changedmodel.md: id: 9670ed10ecd7 - last_write_checksum: sha1:4a30c80021144607730c68d73f806171e9fccdb6 - pristine_git_object: 5e911a29087508c71405834b1768b70ff2e46d8e + last_write_checksum: sha1:ea4ec14ddec6d1084f2395d353bd4fb5bc20cb6e + pristine_git_object: 8bd5b00a03754867fef54866b4efd008060659ca docs/models/connectionflowfailedwebhookpayload.md: id: 84bd6b5864af last_write_checksum: sha1:7091ed04531ae89b44154a6e3b8253569700ceb0 @@ -789,6 +793,18 @@ trackedFiles: id: 55b3dcb33500 last_write_checksum: sha1:14322a90adecd60158aedac11ad7be4cbb9774d1 pristine_git_object: 58ca61de689e3c8658276525822ae295f79b48a2 + docs/models/getatsnotespositiveresponse.md: + id: 37f7c83f19c7 + last_write_checksum: sha1:d55d71ea19ca08a37d11751db0e0185679efc172 + pristine_git_object: 80dc8f6cefc3dec1029b2c85fce3fd30b23c6524 + docs/models/getatsnotespositiveresponsedata.md: + id: a9bf40b75734 + last_write_checksum: sha1:c20389761a1d896cdfab30627fdeea2889aae210 + pristine_git_object: cfa8e9c17b81ed805c0bad9262ed1802f4ab0fd9 + docs/models/getatsnotespositiveresponseresult.md: + id: 16f52e16ff88 + last_write_checksum: sha1:8165664ca7eef0f8c8506ec93c4c834053b99d43 + pristine_git_object: a3bb21989aaef3597b382d9eef24ab54c9ff0595 docs/models/getatsofferspositiveresponse.md: id: e2ca6ddd38f6 last_write_checksum: sha1:5564c2666127b622b19535a920b8ef8c25b5abe7 @@ -1631,8 +1647,8 @@ trackedFiles: pristine_git_object: 3e5aeb1f5a296908dc52f5cefe18685b181751f1 docs/models/name.md: id: 6ee802922293 - last_write_checksum: sha1:df8c483e3bd5d4f8ed95e2b8555300961784c31b - pristine_git_object: 8c672bfc03c7b3c5214fe9d23c03e104a2917f48 + last_write_checksum: sha1:18652858a5599aad4419e70fae3eb1312859205b + pristine_git_object: 248028ee3c187209c4b78ecff7ef42028da5cd83 docs/models/offer.md: id: e20e1bb1fed4 last_write_checksum: sha1:3d0a260d05a894512c91954f0c8fc641644263dd @@ -1695,8 +1711,8 @@ trackedFiles: pristine_git_object: 10965d79658acb189d92257bd9a06c2efecdca6f docs/models/operations/getatsapplicationsrequest.md: id: b1609ebcb91d - last_write_checksum: sha1:e12f63ec1eebd26d290ac1f010e2e1ecfc9b3ad3 - pristine_git_object: 419beec9e7a7296ad603a832717fe468abe8eabe + last_write_checksum: sha1:359d92ec4a8a7fcf91891a2f0dc5c90192dbf4f8 + pristine_git_object: c420844ac5a595112da4f66221c2014c027829bb docs/models/operations/getatsapplicationsresponse.md: id: 9ec04a7afe66 last_write_checksum: sha1:445d0cea4b62c18dce8abfd7f6579a11878b143e @@ -1757,6 +1773,18 @@ trackedFiles: id: 6f621740851c last_write_checksum: sha1:2b469c9d7071a7814edd9d8f966243e66a83f40a pristine_git_object: aa159b0c7b43fe6d97e83f267ea831013b788647 + docs/models/operations/getatsnotesglobals.md: + id: eef3122636a7 + last_write_checksum: sha1:42f41cb932f575c43c514042296ad52c0980b16a + pristine_git_object: dcf6da17d541ca61056645f20e138c6c5a50ade5 + docs/models/operations/getatsnotesrequest.md: + id: 3426196532aa + last_write_checksum: sha1:c60948eb909c99383ad0ce736f8928eecc896ee9 + pristine_git_object: 78210c709264db3856314c89c3012d6654fce668 + docs/models/operations/getatsnotesresponse.md: + id: c54c04062921 + last_write_checksum: sha1:3383172e83a31dcc1a8f4fcb4b6ed195dcdf17d5 + pristine_git_object: badf3c4abc3349f927a4592de9a3c89574c45a48 docs/models/operations/getatsoffersglobals.md: id: 2fa69e2622bf last_write_checksum: sha1:2c1a87ad3a790fc465eec19bd496a5daeca7d19d @@ -2599,8 +2627,8 @@ trackedFiles: pristine_git_object: 9086dc29c889ddb71759063caffdf46b86bfacad docs/models/postatscandidatesrequestbodybullhorn.md: id: 2b42f9ee03b7 - last_write_checksum: sha1:7dabb2d9006e97440d4e728db3f7bee5d6bcfe18 - pristine_git_object: 7f1929a7960e39bc7f52ccb9248be91519afd0d4 + last_write_checksum: sha1:97733701af3a680556db721affe07d22c365093c + pristine_git_object: 5166b6ffbd4cddab7bb3990358b6d1c671695b36 docs/models/postatscandidatesrequestbodycandidate.md: id: f0d9a0895464 last_write_checksum: sha1:e731e8c30bc80038772dacb00e6ca10ae550fa86 @@ -2759,8 +2787,8 @@ trackedFiles: pristine_git_object: 0e0cc0e85c09c6011c4a0a21b0a530d9fbed6943 docs/models/postatscandidatesrequestbodypilogacandidate.md: id: b527586dff0a - last_write_checksum: sha1:37e680379ddc101931ff8722bcc4dcba1c099ec4 - pristine_git_object: fa607bd2698451da350aff9e40ab384acae056fb + last_write_checksum: sha1:fa66385fa0a8745ff12a5a5b32e668175e5fbdb2 + pristine_git_object: 295805370f9a078ee68c766f8cdb5145ccbf48bd docs/models/postatscandidatesrequestbodypinpoint.md: id: f46f3315fbe6 last_write_checksum: sha1:bff3e765ae0c2a6c9012ca3077cf15bdcd1c5f0c @@ -3187,8 +3215,8 @@ trackedFiles: pristine_git_object: d30047e0724488829e5bc902f19fb4dee4de8245 docs/models/postatsjobsjobidapplicationsrequestbodybullhorn.md: id: b88bc4c944a6 - last_write_checksum: sha1:727e3cd2433393000a8f85f1e8d78411f4023ac0 - pristine_git_object: 06389596bc737f914e61d32ccfefc847b197359f + last_write_checksum: sha1:87ba9af62aab8c7c5e38f16907d4a568a0804aac + pristine_git_object: b0db9e6879bec41e7ae798f6b77035574fa2edc9 docs/models/postatsjobsjobidapplicationsrequestbodycandidate.md: id: ff657d216c80 last_write_checksum: sha1:d83fe9ec06e5231ad6feaf57fc52e0565af1d21f @@ -3347,8 +3375,8 @@ trackedFiles: pristine_git_object: bf46ac6fa8b4f580fed2666b04811e1dd0ed2fa3 docs/models/postatsjobsjobidapplicationsrequestbodypilogacandidate.md: id: 84699e79a2df - last_write_checksum: sha1:88790d8f76c22ff7770968179255fa9f00f5be27 - pristine_git_object: 33083f4a7b11ace46d6df03352310e08a3c5d581 + last_write_checksum: sha1:560582b5b38744dfc736dc1c86ecbc311aac8fae + pristine_git_object: 43e8099992246866483dcb0e141bbdd4a7ab8420 docs/models/postatsjobsjobidapplicationsrequestbodypinpoint.md: id: 5fc169b6ccd5 last_write_checksum: sha1:147cccfa569a3517ad62481449f5ce77cbcddc2b @@ -4231,16 +4259,16 @@ trackedFiles: pristine_git_object: 7cf24f85b25bd2b67be2320b7899c888dcdf3209 docs/sdks/ats/README.md: id: 24fafa267f6c - last_write_checksum: sha1:fb3a5c204daa7487b665236b36b5d2c9883b77eb - pristine_git_object: 51904097cf29caf90a43ddaf2d5e59ee33df8a89 + last_write_checksum: sha1:c7affe245e9464ffc5de1d8b0050c04574397903 + pristine_git_object: 69d37ee7aa6219e0c18fe77727949815e71c68b7 docs/sdks/connect/README.md: id: 074a4658c86b last_write_checksum: sha1:1f2902c113fa3af88e371590ca88d5b784889a9b pristine_git_object: eb7679884ceed291d47e5ca0ea5691f1a9221845 docs/sdks/general/README.md: id: ce0ada6fa2e1 - last_write_checksum: sha1:dce868564d59e88f85c44ddbf95299658939bbd9 - pristine_git_object: 46fd778c5b71cca3498a2847dcd3887b18fa1448 + last_write_checksum: sha1:06e0efbb994b1a038f3651471005f844bffbd3c9 + pristine_git_object: 7e39f35bb0b8e9537f1ecd52c624821da71aefc2 docs/sdks/hris/README.md: id: 0baa868a038c last_write_checksum: sha1:e413fa80af8ef9aec777279c6bb5af1f6cce5b17 @@ -4267,12 +4295,12 @@ trackedFiles: pristine_git_object: 29289cf79efbc687c7daf5b66266980eb719cdc8 jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:f9bc49eaa8150b524ac5b6b6fba38bae4a76e689 - pristine_git_object: 3c8f69728f1bdd7ab5faec35c0795954a785c0ca + last_write_checksum: sha1:82ae0a9fcb78236aded66a26582200740fb96002 + pristine_git_object: f7e76f692109487c0ebc4abb00d5909cd215686a package.json: id: 7030d0b2f71b - last_write_checksum: sha1:334c33b2c1d4ad99d511c5d97c53a4071cfaae6e - pristine_git_object: 527afaf6b174e9ca10ac0076ec4aa50827ba8f5b + last_write_checksum: sha1:979896fbef6654bf4f03ebc82baf8c9eb1ae43b5 + pristine_git_object: 754e68ac15236f9623db821ae64b88b4b4d7c98a src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:b9f55b890c4f9f22b9bd199cce5fcc6fb3d15661 @@ -4337,6 +4365,10 @@ trackedFiles: id: a2f10d944aaf last_write_checksum: sha1:50c1fd4293d9ccbd69b0cdbdbd40a25cae151797 pristine_git_object: a034026d5747cfcb2465509ddcb65c25064c72e8 + src/funcs/atsGetAtsNotes.ts: + id: d7161475f6a2 + last_write_checksum: sha1:d9593bb4a179e39f6a7f6c35247405f537df3850 + pristine_git_object: 87f62ba20c549bfa3b45a9936ccf43f9c2c0b56c src/funcs/atsGetCandidateAttachments.ts: id: 0cf888f19a5a last_write_checksum: sha1:681f82f4142f230cb65362b67d800dba50112f03 @@ -4431,8 +4463,8 @@ trackedFiles: pristine_git_object: 479b3f83e06fd9bb3f40c5bcb18d83e7b81c2a0d src/funcs/generalSendPassthroughRequest.ts: id: 1e5308bfaf76 - last_write_checksum: sha1:03615c6b7b6fe8b1aca3ee91055d1cf538d06710 - pristine_git_object: 1574b1a39638598bbd5a3b61f938c95e749d452f + last_write_checksum: sha1:d7a728ccb4ee2036bc2ee290f91fde4475f5ca8f + pristine_git_object: eafdc86c3f2fcb3289ac15e9d77841851d2ad4e8 src/funcs/generalSetIntegrationEnabled.ts: id: 29542a1eb689 last_write_checksum: sha1:fc629b4fac6dc7f8777554d8d2ecd94fb928c8c8 @@ -4547,8 +4579,8 @@ trackedFiles: pristine_git_object: 0aebd8b0a4867e35cb3348fc52921c3c0b4725b7 src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:cd4f8d3e57a3589f3f3dd6c8fdfa7b09e345f60d - pristine_git_object: 8bdc4c7f30091a79b8a68305cfc2f4ef6f1d4f20 + last_write_checksum: sha1:a7d918732e98b4e7d113c25d9097e602d35bae8d + pristine_git_object: 235e9d145a9fa296f758c02456a9692d0ed81c5c src/lib/encodings.ts: id: 3bd8ead98afd last_write_checksum: sha1:50d9b187dcfc3cca8d3bbd9fe074f865d715d2b0 @@ -4603,8 +4635,8 @@ trackedFiles: pristine_git_object: fcc8edcc5ee88cfe68e08cac9e3fe7886be4643b src/models/datachangedwebhookpayload.ts: id: 70900d955369 - last_write_checksum: sha1:0983cb03b2ed979c7960a6507c4630290b2f0670 - pristine_git_object: 6081f5153f706d48b46a1b6adbfcb8c12b719dd4 + last_write_checksum: sha1:0edf3431e760048f2ed9a4998f4ce3fb6293f590 + pristine_git_object: 3124b0493307abdc2d92e295773e08d31f7c7c12 src/models/deleteatscandidatescandidateidtagspositiveresponse.ts: id: da74d6a46c04 last_write_checksum: sha1:c44cd341ff013de45a89fb5da7258b17f81c9413 @@ -4701,6 +4733,10 @@ trackedFiles: id: 6531669d5745 last_write_checksum: sha1:ba18d76e313b0bdf2bb8f0703fb15f5d91da8ae5 pristine_git_object: 79afa4c8b528edabd1481741978d7f0ec1ddbab7 + src/models/getatsnotespositiveresponse.ts: + id: 96ecd8a615a6 + last_write_checksum: sha1:af9e90ba22b5fe8642f39fb1977258d137db9448 + pristine_git_object: e814e957636a11ae2b9be05fcfc38a1fef190020 src/models/getatsofferspositiveresponse.ts: id: 00f9c93fd2ad last_write_checksum: sha1:46c32d8f9826fc6bd77ca0f8dd3310a5ec122fe8 @@ -4807,8 +4843,8 @@ trackedFiles: pristine_git_object: 8e65b7e70c77e8bd5180e5fcea207066eb453d61 src/models/index.ts: id: f93644b0f37e - last_write_checksum: sha1:95857f57d9c1a589054ecadc8cde705d4327eb11 - pristine_git_object: 92d5d3f7c01f862976279922315a8cbdbe5396f8 + last_write_checksum: sha1:19ad2414c79744da26b272464aad49d951641170 + pristine_git_object: 15b3675dd5d86231dcaedb2e103de62ff7ebe028 src/models/inlineassessmentorderreceivedwebhookpayload.ts: id: 4b8e11c5c7d9 last_write_checksum: sha1:15a592f4e5eebc6ab1a64a299b485a85db8f53b4 @@ -4859,8 +4895,8 @@ trackedFiles: pristine_git_object: 1cfcb51ef27acc3237bb579018cfccd60ec60c1e src/models/operations/getatsapplications.ts: id: bd4c80fcafad - last_write_checksum: sha1:e466755e8b0b2db090538590d5e344eb5dc8637c - pristine_git_object: 21c3837a7629eb81719c9eb3af09a0acb3109957 + last_write_checksum: sha1:bcb055e46790564ee3bebf9bc31b272bd44d8168 + pristine_git_object: 89d6244be819ce410bdc987aad8b290fb03bba0b src/models/operations/getatsapplicationsapplicationidattachments.ts: id: 93fc3e81e137 last_write_checksum: sha1:47485da496ebfcb402f0639b7128507cd42fc6f9 @@ -4885,6 +4921,10 @@ trackedFiles: id: cf86eeb34169 last_write_checksum: sha1:c1a1a9d309ee7a3f927b25d1dcbfb55f6185975b pristine_git_object: 762a806e52592639c991d3c3e6d702a88ec42987 + src/models/operations/getatsnotes.ts: + id: bf0c57c71c5e + last_write_checksum: sha1:91e7bc7348f4ae4806728a8bc140fd90c34141cd + pristine_git_object: b87e68b04a1a26b7eabfdee6b5384440ce7b0b9e src/models/operations/getatsoffers.ts: id: 0dffd2107376 last_write_checksum: sha1:e12ec7c09a2cc69fc8683d40164ddf014ee8553c @@ -4983,8 +5023,8 @@ trackedFiles: pristine_git_object: 853bedfafcb45a5b870b2fcb21a6825a64c004ab src/models/operations/index.ts: id: 0d9ffaf774d2 - last_write_checksum: sha1:288ae4ee64d33e1c333db9b4f44942dcb27e3821 - pristine_git_object: a4ac13d4526916f72792d974084ac5e962830a17 + last_write_checksum: sha1:70ba3def2903b5914eaac9e03e5ae5b8245b20a5 + pristine_git_object: 655c321e10761a4eead4e8f2340a882b65fce658 src/models/operations/patchintegrationsintegrationidintegrationfieldsintegrationfieldid.ts: id: 5e257ff6467f last_write_checksum: sha1:a0d8a20f6b44adea27d8cd3dca1ececc9e6ab70e @@ -5147,8 +5187,8 @@ trackedFiles: pristine_git_object: fbf556e6115d78acb2164243192d5353bd4c1539 src/models/postatscandidatesrequestbody.ts: id: 2b82c67ccf5e - last_write_checksum: sha1:d3794570494e69415b69ccdaa10fa4a1b86e6097 - pristine_git_object: b6d9833b00dcf4f7786106060761414eeb715b4b + last_write_checksum: sha1:752765a578872d54daee46f805fbf8a5f56e6812 + pristine_git_object: 9684a741a169908bb8f5c186dfd678e393fce2f7 src/models/postatsimporttrackedapplicationpositiveresponse.ts: id: e778ef73b502 last_write_checksum: sha1:91ad6cb9594afb885df1be870c55ad4c9250334c @@ -5163,8 +5203,8 @@ trackedFiles: pristine_git_object: a87ef0a494a375a25512558435e0f19a147df47f src/models/postatsjobsjobidapplicationsrequestbody.ts: id: eb7b459ffe2b - last_write_checksum: sha1:aebde6ca10eae243b56109fe3480b1bf698eac1c - pristine_git_object: bfca76ea3d645e564ebc83908a70fe3a0c355d1b + last_write_checksum: sha1:330e5171a39ab0a1e24eb59a02924d1074ba3aab + pristine_git_object: 73fd47b1fbab56874bedf864efc2b27039af5f82 src/models/postconnectcreatelinkpositiveresponse.ts: id: bcb0fac86fe5 last_write_checksum: sha1:aae26b87cd3b9805188c5e16cd0b796da04a2a98 @@ -5331,16 +5371,16 @@ trackedFiles: pristine_git_object: b52630240b3c840b23a70defb5b1fc89ad454aa6 src/sdk/ats.ts: id: 8a9d8a31359a - last_write_checksum: sha1:3244c4dad077880c3cdd3e5c63c3c3666c0a4b99 - pristine_git_object: 7c64327cffc32546f724bf31ec51ffb083c2b7c8 + last_write_checksum: sha1:e1632ecb5b2ab7e78e2b65715b51615ddb2a2a52 + pristine_git_object: 2e5646c1f680e80767a8cc404b99346bf9729584 src/sdk/connect.ts: id: edb1d7d01416 last_write_checksum: sha1:ceba66dde524f427e0ea4f5acd1808491ba28ded pristine_git_object: 30ddcd1e5e8fd53a3cc600c52dd3a6003ca48015 src/sdk/general.ts: id: 48cc986e19c8 - last_write_checksum: sha1:70de979a02c58ba581422e89ad9167918a9e473c - pristine_git_object: 910a09e04a884dbb25c3895328a9d2d1c88b9e08 + last_write_checksum: sha1:8f837a3e6b15507ac2c33de23a5be50a4bfd4147 + pristine_git_object: d42ce3a457832bef3f9473b1853a725fa7ffd5fb src/sdk/hris.ts: id: b7831a6209ac last_write_checksum: sha1:5580cb978a541da8dce889c24649a9e96a6f46e4 @@ -11810,6 +11850,53 @@ examples: application/json: {"status": "success", "data": {"link": "https://hopeful-toothbrush.net"}} default: application/json: {"status": "error", "error": {"code": "PLATFORM.RATE_LIMIT_EXCEEDED", "title": null, "message": "", "log_url": "https://married-yin.org/"}} + GetAtsNotes: + speakeasy-default-get-ats-notes: + 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": "H77fDF8uvEzGNPRubiz5DvQ7", "remote_id": "32", "candidate_id": "26vafvWSRmbhNcxJYqjCzuJg", "application_id": "H5daSm8e85Dmvmne3wLeCPhX", "author_id": "5J7L4b48wBfffYwek9Az9pkM", "title": "Screening call", "content_html": "Available from March, looking for a hybrid role in Berlin.", "is_private": true, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "author": {"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev"}}]}} + default: + application/json: {"status": "error", "error": {"code": "ATS.JOB_CLOSED", "title": "", "message": "", "log_url": "https://outlandish-brief.biz/"}} + 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": "H77fDF8uvEzGNPRubiz5DvQ7", "remote_id": "32", "candidate_id": "26vafvWSRmbhNcxJYqjCzuJg", "application_id": "H5daSm8e85Dmvmne3wLeCPhX", "author_id": "5J7L4b48wBfffYwek9Az9pkM", "title": "Screening call", "content_html": "Available from March, looking for a hybrid role in Berlin.", "is_private": true, "remote_created_at": "2022-08-07T14:01:29.196Z", "remote_updated_at": "2022-08-07T14:01:29.196Z", "changed_at": "2022-08-07T14:01:29.196Z", "remote_deleted_at": null, "author": {"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "email": "john.doe@kombo.dev"}}]}} + 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 generatedTests: readAccessGroup: "2025-04-29T14:51:46-05:00" @@ -12016,6 +12103,7 @@ generatedTests: unlinkSharedEnvVariable: "2025-10-24T00:07:28Z" updateStaticIps: "2025-10-24T00:07:28Z" getProjectClientCerts: "2025-10-27T19:04:15Z" +releaseNotes: "## Typescript SDK Changes:\n* `kombo.ats.getAtsNotes()`: **Added**\n* `kombo.ats.createCandidate()`: \n * `request.remoteFields` **Changed**\n* `kombo.ats.createApplication()`: \n * `request.body.remoteFields` **Changed**\n" generatedFiles: - .gitattributes - .npmignore diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 0eee8ec..6386b22 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -31,7 +31,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false typescript: - version: 1.3.4 + version: 1.3.5 acceptHeaderEnum: true additionalDependencies: dependencies: {} diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 1ca5ee4..8c73567 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.791.0 +speakeasyVersion: 1.793.0 sources: kombo-prepared-spec: sourceNamespace: kombo-api - sourceRevisionDigest: sha256:eb1dc10690894387b28e95abdbb6fdabbf0487732d768fe517c531e939067667 - sourceBlobDigest: sha256:2a0870c417dba29d8989de5f0d60dc06dbd6418cd4f0da47c0a4491177d6aa3e + sourceRevisionDigest: sha256:854a327f8aec7e3c1aeab9f10147af163706b08cbf4a7d83371d69890d66e765 + sourceBlobDigest: sha256:a19ef6296c8b75862f7d553e501cbdac2c0bd98f3002ed81962384dbafd0cd25 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: kombo-typescript: source: kombo-prepared-spec sourceNamespace: kombo-api - sourceRevisionDigest: sha256:eb1dc10690894387b28e95abdbb6fdabbf0487732d768fe517c531e939067667 - sourceBlobDigest: sha256:2a0870c417dba29d8989de5f0d60dc06dbd6418cd4f0da47c0a4491177d6aa3e + sourceRevisionDigest: sha256:854a327f8aec7e3c1aeab9f10147af163706b08cbf4a7d83371d69890d66e765 + sourceBlobDigest: sha256:a19ef6296c8b75862f7d553e501cbdac2c0bd98f3002ed81962384dbafd0cd25 codeSamplesNamespace: kombo-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:357ec3c4001f18c22390c624fc9b086d1a483b3fc69e93f01256782bfd98f9f0 + codeSamplesRevisionDigest: sha256:ebfcbd6b9cff04c72494095b6d9d2ef1b29666fd3cdce28e97fb1c860466f5cd workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index d3e67a7..3a36784 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,7 @@ const kombo = new Kombo({ * [getOffers](docs/sdks/ats/README.md#getoffers) - Get offers * [getRejectionReasons](docs/sdks/ats/README.md#getrejectionreasons) - Get rejection reasons * [getInterviews](docs/sdks/ats/README.md#getinterviews) - Get interviews +* [getAtsNotes](docs/sdks/ats/README.md#getatsnotes) - Get notes * [importTrackedApplication](docs/sdks/ats/README.md#importtrackedapplication) - Import tracked application ### [Connect](docs/sdks/connect/README.md) @@ -314,9 +315,9 @@ run(); **Inherit from [`KomboError`](./src/models/errors/komboerror.ts)**: -* [`KomboAtsError`](./src/models/errors/komboatserror.ts): The standard error response with the error codes for the ATS use case. Applicable to 28 of 61 methods.* -* [`KomboHrisError`](./src/models/errors/kombohriserror.ts): The standard error response with the error codes for the HRIS use case. Applicable to 18 of 61 methods.* -* [`KomboGeneralError`](./src/models/errors/kombogeneralerror.ts): The standard error response with just the platform error codes. Applicable to 15 of 61 methods.* +* [`KomboAtsError`](./src/models/errors/komboatserror.ts): The standard error response with the error codes for the ATS use case. Applicable to 29 of 62 methods.* +* [`KomboHrisError`](./src/models/errors/kombohriserror.ts): The standard error response with the error codes for the HRIS use case. Applicable to 18 of 62 methods.* +* [`KomboGeneralError`](./src/models/errors/kombogeneralerror.ts): The standard error response with just the platform error codes. Applicable to 15 of 62 methods.* * [`ResponseValidationError`](./src/models/errors/responsevalidationerror.ts): Type mismatch between the data returned from the server and the structure expected by the SDK. See `error.rawValue` for the raw value and `error.pretty()` for a nicely formatted multi-line string. @@ -417,6 +418,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`atsGetApplicationAttachments`](docs/sdks/ats/README.md#getapplicationattachments) - Get application attachments - [`atsGetApplications`](docs/sdks/ats/README.md#getapplications) - Get applications - [`atsGetApplicationStages`](docs/sdks/ats/README.md#getapplicationstages) - Get application stages +- [`atsGetAtsNotes`](docs/sdks/ats/README.md#getatsnotes) - Get notes - [`atsGetCandidateAttachments`](docs/sdks/ats/README.md#getcandidateattachments) - Get candidate attachments - [`atsGetCandidates`](docs/sdks/ats/README.md#getcandidates) - Get candidates - [`atsGetInterviews`](docs/sdks/ats/README.md#getinterviews) - Get interviews diff --git a/RELEASES.md b/RELEASES.md index cb0a839..1e46d63 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -288,4 +288,14 @@ Based on: ### Generated - [typescript v1.3.4] . ### Releases -- [NPM v1.3.4] https://www.npmjs.com/package/@kombo-api/sdk/v/1.3.4 - . \ No newline at end of file +- [NPM v1.3.4] https://www.npmjs.com/package/@kombo-api/sdk/v/1.3.4 - . + +## 2026-08-11 00:07:10 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.793.0 (2.928.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v1.3.5] . +### Releases +- [NPM v1.3.5] https://www.npmjs.com/package/@kombo-api/sdk/v/1.3.5 - . \ No newline at end of file diff --git a/docs/models/author.md b/docs/models/author.md new file mode 100644 index 0000000..40ed3a1 --- /dev/null +++ b/docs/models/author.md @@ -0,0 +1,25 @@ +# Author + +## Example Usage + +```typescript +import { Author } from "@kombo-api/sdk/models"; + +let value: Author = { + id: "26vafvWSRmbhNcxJYqjCzuJg", + remote_id: "32", + first_name: "John", + last_name: "Doe", + email: "john.doe@kombo.dev", +}; +``` + +## 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` | *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` | *string* | :heavy_check_mark: | First name of the user. | +| `last_name` | *string* | :heavy_check_mark: | Last name of the user. | +| `email` | *string* | :heavy_minus_sign: | Email of the user. If the email address is invalid, it will be set to null. | \ No newline at end of file diff --git a/docs/models/changedmodel.md b/docs/models/changedmodel.md index 5e911a2..8bd5b00 100644 --- a/docs/models/changedmodel.md +++ b/docs/models/changedmodel.md @@ -8,7 +8,7 @@ A model or connection that has changed in the integration. import { ChangedModel } from "@kombo-api/sdk/models"; let value: ChangedModel = { - name: "hris_skill_proficiency_scales", + name: "hris_skills", }; ``` diff --git a/docs/models/getatsnotespositiveresponse.md b/docs/models/getatsnotespositiveresponse.md new file mode 100644 index 0000000..80dc8f6 --- /dev/null +++ b/docs/models/getatsnotespositiveresponse.md @@ -0,0 +1,46 @@ +# GetAtsNotesPositiveResponse + +## Example Usage + +```typescript +import { GetAtsNotesPositiveResponse } from "@kombo-api/sdk/models"; + +let value: GetAtsNotesPositiveResponse = { + status: "success", + data: { + next: + "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", + results: [ + { + id: "H77fDF8uvEzGNPRubiz5DvQ7", + remote_id: "32", + candidate_id: "26vafvWSRmbhNcxJYqjCzuJg", + application_id: "H5daSm8e85Dmvmne3wLeCPhX", + author_id: "5J7L4b48wBfffYwek9Az9pkM", + title: "Screening call", + content_html: + "Available from March, looking for a hybrid role in Berlin.", + is_private: true, + remote_created_at: new Date("2022-08-07T14:01:29.196Z"), + remote_updated_at: new Date("2022-08-07T14:01:29.196Z"), + changed_at: new Date("2022-08-07T14:01:29.196Z"), + remote_deleted_at: null, + author: { + id: "26vafvWSRmbhNcxJYqjCzuJg", + remote_id: "32", + first_name: "John", + last_name: "Doe", + email: "john.doe@kombo.dev", + }, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `status` | *"success"* | :heavy_check_mark: | N/A | | +| `data` | [models.GetAtsNotesPositiveResponseData](../models/getatsnotespositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "H77fDF8uvEzGNPRubiz5DvQ7",
"remote_id": "32",
"candidate_id": "26vafvWSRmbhNcxJYqjCzuJg",
"application_id": "H5daSm8e85Dmvmne3wLeCPhX",
"author_id": "5J7L4b48wBfffYwek9Az9pkM",
"title": "Screening call",
"content_html": "Available from March, looking for a hybrid role in Berlin.",
"is_private": true,
"remote_created_at": "2022-08-07T14:01:29.196Z",
"remote_updated_at": "2022-08-07T14:01:29.196Z",
"remote_data": null,
"changed_at": "2022-08-07T14:01:29.196Z",
"remote_deleted_at": null,
"author": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev"
}
}
]
} | \ No newline at end of file diff --git a/docs/models/getatsnotespositiveresponsedata.md b/docs/models/getatsnotespositiveresponsedata.md new file mode 100644 index 0000000..cfa8e9c --- /dev/null +++ b/docs/models/getatsnotespositiveresponsedata.md @@ -0,0 +1,43 @@ +# GetAtsNotesPositiveResponseData + +## Example Usage + +```typescript +import { GetAtsNotesPositiveResponseData } from "@kombo-api/sdk/models"; + +let value: GetAtsNotesPositiveResponseData = { + next: + "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", + results: [ + { + id: "H77fDF8uvEzGNPRubiz5DvQ7", + remote_id: "32", + candidate_id: "26vafvWSRmbhNcxJYqjCzuJg", + application_id: "H5daSm8e85Dmvmne3wLeCPhX", + author_id: "5J7L4b48wBfffYwek9Az9pkM", + title: "Screening call", + content_html: + "Available from March, looking for a hybrid role in Berlin.", + is_private: true, + remote_created_at: new Date("2022-08-07T14:01:29.196Z"), + remote_updated_at: new Date("2022-08-07T14:01:29.196Z"), + changed_at: new Date("2022-08-07T14:01:29.196Z"), + remote_deleted_at: null, + author: { + id: "26vafvWSRmbhNcxJYqjCzuJg", + remote_id: "32", + first_name: "John", + last_name: "Doe", + email: "john.doe@kombo.dev", + }, + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `next` | *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` | [models.GetAtsNotesPositiveResponseResult](../models/getatsnotespositiveresponseresult.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/getatsnotespositiveresponseresult.md b/docs/models/getatsnotespositiveresponseresult.md new file mode 100644 index 0000000..a3bb219 --- /dev/null +++ b/docs/models/getatsnotespositiveresponseresult.md @@ -0,0 +1,47 @@ +# GetAtsNotesPositiveResponseResult + +## Example Usage + +```typescript +import { GetAtsNotesPositiveResponseResult } from "@kombo-api/sdk/models"; + +let value: GetAtsNotesPositiveResponseResult = { + id: "", + remote_id: "", + candidate_id: "", + application_id: "", + author_id: "", + title: "", + content_html: "", + is_private: false, + remote_created_at: new Date("2026-12-28T03:15:01.640Z"), + remote_updated_at: null, + changed_at: new Date("2025-08-12T13:07:34.155Z"), + remote_deleted_at: new Date("2025-05-14T22:03:15.300Z"), + author: { + id: "26vafvWSRmbhNcxJYqjCzuJg", + remote_id: "32", + first_name: "John", + last_name: "Doe", + email: "john.doe@kombo.dev", + }, +}; +``` + +## 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` | *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. | | +| `candidate_id` | *string* | :heavy_check_mark: | The Kombo ID of the candidate this note is about. The ID can be used to retrieve the candidate from the `get candidates` endpoint. | | +| `application_id` | *string* | :heavy_check_mark: | The Kombo ID of the application this note is about, when the note is tied to a specific application. Some systems attach notes to the candidate only, in which case this is `null`. | | +| `author_id` | *string* | :heavy_check_mark: | The Kombo ID of the user who authored the note. `null` for notes generated by the system rather than a specific user. The ID can be used to retrieve the user from the `get users` endpoint. | | +| `title` | *string* | :heavy_check_mark: | The note title from the ATS. | | +| `content_html` | *string* | :heavy_check_mark: | The note content from the ATS, passed through as-is. This may contain HTML markup when the source ATS stores it that way. | | +| `is_private` | *boolean* | :heavy_check_mark: | Whether the note requires elevated permissions to access in the source ATS (e.g. a `private`, `secret`, or `admin only` flag), meaning it is not visible to everyone with standard access to the candidate/application. `null` when the source ATS does not expose such a signal. | | +| `remote_created_at` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | The date and time the object was created in the remote system.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `remote_updated_at` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | A timestamp retrieved from the remote system, describing when the resource was last updated.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `changed_at` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :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://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :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) | | +| `author` | [models.Author](../models/author.md) | :heavy_check_mark: | N/A | {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@kombo.dev"
} | \ No newline at end of file diff --git a/docs/models/name.md b/docs/models/name.md index 8c672bf..248028e 100644 --- a/docs/models/name.md +++ b/docs/models/name.md @@ -7,11 +7,11 @@ The name of the Kombo model or connection that changed. ```typescript import { Name } from "@kombo-api/sdk/models"; -let value: Name = "ats_offers"; +let value: Name = "ats_rejection_reasons"; ``` ## Values ```typescript -"hris_legal_entities" | "hris_locations" | "hris_employees" | "hris_absence_types" | "hris_absences" | "hris_employments" | "hris_teams" | "hris_time_off_balances" | "hris_timesheets" | "hris_employee_document_categories" | "hris_performance_review_cycles" | "hris_performance_reviews" | "hris_staffing_entities" | "hris_skill_proficiency_scales" | "hris_skills" | "hris_skill_rating_providers" | "hris_employee_skill_proficiency_ratings" | "ats_users" | "ats_jobs" | "ats_job_postings" | "ats_candidates" | "ats_application_stages" | "ats_applications" | "ats_screening_questions" | "ats_tags" | "ats_interviews" | "ats_offers" | "ats_rejection_reasons" | "ats_roles" | "lms_users" | "lms_course_providers" | "lms_skills" | "lms_courses" | "lms_course_revisions" | "lms_course_progressions" | "hris_join_employees_teams" | "hris_join_staffing_entities_locations" | "hris_join_staffing_entities_legal_entities" | "hris_join_staffing_entities_groups" | "hris_join_staffing_entities_skills" | "ats_join_candidates_tags" | "ats_join_jobs_application_stages" | "ats_join_jobs_screening_questions" | "ats_join_user_job_role_assignments" | "ats_join_jobs_users" | "ats_join_users_roles" | "ats_join_interviews_users" | "lms_join_revisions_skills" +"hris_legal_entities" | "hris_locations" | "hris_employees" | "hris_absence_types" | "hris_absences" | "hris_employments" | "hris_teams" | "hris_time_off_balances" | "hris_timesheets" | "hris_employee_document_categories" | "hris_performance_review_cycles" | "hris_performance_reviews" | "hris_staffing_entities" | "hris_skill_proficiency_scales" | "hris_skills" | "hris_skill_rating_providers" | "hris_employee_skill_proficiency_ratings" | "ats_users" | "ats_jobs" | "ats_job_postings" | "ats_candidates" | "ats_application_stages" | "ats_applications" | "ats_screening_questions" | "ats_tags" | "ats_interviews" | "ats_offers" | "ats_rejection_reasons" | "ats_roles" | "ats_notes" | "lms_users" | "lms_course_providers" | "lms_skills" | "lms_courses" | "lms_course_revisions" | "lms_course_progressions" | "hris_join_employees_teams" | "hris_join_staffing_entities_locations" | "hris_join_staffing_entities_legal_entities" | "hris_join_staffing_entities_groups" | "hris_join_staffing_entities_skills" | "ats_join_candidates_tags" | "ats_join_jobs_application_stages" | "ats_join_jobs_screening_questions" | "ats_join_user_job_role_assignments" | "ats_join_jobs_users" | "ats_join_users_roles" | "ats_join_interviews_users" | "lms_join_revisions_skills" ``` \ No newline at end of file diff --git a/docs/models/operations/getatsapplicationsrequest.md b/docs/models/operations/getatsapplicationsrequest.md index 419beec..c420844 100644 --- a/docs/models/operations/getatsapplicationsrequest.md +++ b/docs/models/operations/getatsapplicationsrequest.md @@ -14,7 +14,7 @@ let value: GetAtsApplicationsRequest = {}; | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `cursor` | *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` | *number* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | -| `updated_after` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :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).

For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.

\| Path \| Added/Removed \| Linked Record \|
\| --- \| --- \| --- \|
\| `candidate` \| n/a \| ✓ Yes \|
\| `candidate` → `tags` \| ✗ No \| ✗ No \|
\| `current_stage` \| n/a \| ✓ Yes \|
\| `job` \| ✗ No \| ✗ No \|
\| `interviews` \| ✓ Yes \| ✓ Yes \|
\| `offers` \| ✓ Yes \| ✓ Yes \|

_**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._ | +| `updated_after` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :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).

For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.

\| Path \| Added/Removed \| Linked Record \|
\| --- \| --- \| --- \|
\| `candidate` \| n/a \| ✓ Yes \|
\| `candidate` → `tags` \| ✗ No \| ✗ No \|
\| `current_stage` \| ✗ No \| ✗ No \|
\| `job` \| ✗ No \| ✗ No \|
\| `interviews` \| ✓ Yes \| ✓ Yes \|
\| `offers` \| ✓ Yes \| ✓ Yes \|

_**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._ | | `include_deleted` | *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` | *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` | *string*[] | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | diff --git a/docs/models/operations/getatsnotesglobals.md b/docs/models/operations/getatsnotesglobals.md new file mode 100644 index 0000000..dcf6da1 --- /dev/null +++ b/docs/models/operations/getatsnotesglobals.md @@ -0,0 +1,17 @@ +# GetAtsNotesGlobals + +## Example Usage + +```typescript +import { GetAtsNotesGlobals } from "@kombo-api/sdk/models/operations"; + +let value: GetAtsNotesGlobals = { + integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | +| `integration_id` | *string* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | \ No newline at end of file diff --git a/docs/models/operations/getatsnotesrequest.md b/docs/models/operations/getatsnotesrequest.md new file mode 100644 index 0000000..78210c7 --- /dev/null +++ b/docs/models/operations/getatsnotesrequest.md @@ -0,0 +1,23 @@ +# GetAtsNotesRequest + +## Example Usage + +```typescript +import { GetAtsNotesRequest } from "@kombo-api/sdk/models/operations"; + +let value: GetAtsNotesRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `cursor` | *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` | *number* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | +| `updated_after` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :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).

For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below.

\| Path \| Added/Removed \| Linked Record \|
\| --- \| --- \| --- \|
\| `author` \| ✗ No \| ✗ No \|
\| `application` \| ✗ No \| ✗ No \|
\| `candidate` \| ✗ No \| ✗ No \|

_**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._ | +| `include_deleted` | *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` | *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` | *string*[] | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | +| `remote_ids` | *string*[] | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | +| `candidate_ids` | *string*[] | :heavy_minus_sign: | Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want to download the full context available for a candidate, across all their applications. | +| `application_ids` | *string*[] | :heavy_minus_sign: | Filter by a comma-separated list of application IDs. Use filtering by `application_ids` only if you want the context available for specific applications. Results do not include notes that only link to the candidate, but not the application. | \ No newline at end of file diff --git a/docs/models/operations/getatsnotesresponse.md b/docs/models/operations/getatsnotesresponse.md new file mode 100644 index 0000000..badf3c4 --- /dev/null +++ b/docs/models/operations/getatsnotesresponse.md @@ -0,0 +1,47 @@ +# GetAtsNotesResponse + +## Example Usage + +```typescript +import { GetAtsNotesResponse } from "@kombo-api/sdk/models/operations"; + +let value: GetAtsNotesResponse = { + result: { + status: "success", + data: { + next: + "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", + results: [ + { + id: "H77fDF8uvEzGNPRubiz5DvQ7", + remote_id: "32", + candidate_id: "26vafvWSRmbhNcxJYqjCzuJg", + application_id: "H5daSm8e85Dmvmne3wLeCPhX", + author_id: "5J7L4b48wBfffYwek9Az9pkM", + title: "Screening call", + content_html: + "Available from March, looking for a hybrid role in Berlin.", + is_private: true, + remote_created_at: new Date("2022-08-07T14:01:29.196Z"), + remote_updated_at: new Date("2022-08-07T14:01:29.196Z"), + changed_at: new Date("2022-08-07T14:01:29.196Z"), + remote_deleted_at: null, + author: { + id: "26vafvWSRmbhNcxJYqjCzuJg", + remote_id: "32", + first_name: "John", + last_name: "Doe", + email: "john.doe@kombo.dev", + }, + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `result` | [models.GetAtsNotesPositiveResponse](../../models/getatsnotespositiveresponse.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/postatscandidatesrequestbodybullhorn.md b/docs/models/postatscandidatesrequestbodybullhorn.md index 7f1929a..5166b6f 100644 --- a/docs/models/postatscandidatesrequestbodybullhorn.md +++ b/docs/models/postatscandidatesrequestbodybullhorn.md @@ -12,7 +12,8 @@ let value: PostAtsCandidatesRequestBodyBullhorn = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `candidate` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `Candidate` object. | -| `job_submission` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `JobSubmission` object. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `candidate` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `Candidate` object. | +| `job_submission` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `JobSubmission` object. | +| `existing_candidate_remote_id` | *string* | :heavy_minus_sign: | The remote ID of the Bullhorn `Candidate` the application should be filed on. When set, we skip Bullhorn's duplicate detection and use exactly this candidate, which lets you pick the right record when several candidates share an email address or phone number. The request fails if the candidate does not exist (or was deleted) in Bullhorn. | \ No newline at end of file diff --git a/docs/models/postatscandidatesrequestbodypilogacandidate.md b/docs/models/postatscandidatesrequestbodypilogacandidate.md index fa607bd..2958053 100644 --- a/docs/models/postatscandidatesrequestbodypilogacandidate.md +++ b/docs/models/postatscandidatesrequestbodypilogacandidate.md @@ -12,6 +12,7 @@ let value: PostAtsCandidatesRequestBodyPilogaCandidate = {}; ## Fields -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `street` | *string* | :heavy_minus_sign: | The street address of the candidate. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `street` | *string* | :heavy_minus_sign: | The street address of the candidate. | +| `geburtsdatum` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | The birth date of the candidate, written into the "Geburtsdatum" field of the application form. Format: `YYYY-MM-DD`

[](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/postatsjobsjobidapplicationsrequestbodybullhorn.md b/docs/models/postatsjobsjobidapplicationsrequestbodybullhorn.md index 0638959..b0db9e6 100644 --- a/docs/models/postatsjobsjobidapplicationsrequestbodybullhorn.md +++ b/docs/models/postatsjobsjobidapplicationsrequestbodybullhorn.md @@ -12,7 +12,8 @@ let value: PostAtsJobsJobIdApplicationsRequestBodyBullhorn = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `candidate` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `Candidate` object. | -| `job_submission` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `JobSubmission` object. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `candidate` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `Candidate` object. | +| `job_submission` | Record | :heavy_minus_sign: | Fields that we will pass through to Bullhorn's `JobSubmission` object. | +| `existing_candidate_remote_id` | *string* | :heavy_minus_sign: | The remote ID of the Bullhorn `Candidate` the application should be filed on. When set, we skip Bullhorn's duplicate detection and use exactly this candidate, which lets you pick the right record when several candidates share an email address or phone number. The request fails if the candidate does not exist (or was deleted) in Bullhorn. | \ No newline at end of file diff --git a/docs/models/postatsjobsjobidapplicationsrequestbodypilogacandidate.md b/docs/models/postatsjobsjobidapplicationsrequestbodypilogacandidate.md index 33083f4..43e8099 100644 --- a/docs/models/postatsjobsjobidapplicationsrequestbodypilogacandidate.md +++ b/docs/models/postatsjobsjobidapplicationsrequestbodypilogacandidate.md @@ -12,6 +12,7 @@ let value: PostAtsJobsJobIdApplicationsRequestBodyPilogaCandidate = {}; ## Fields -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `street` | *string* | :heavy_minus_sign: | The street address of the candidate. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `street` | *string* | :heavy_minus_sign: | The street address of the candidate. | +| `geburtsdatum` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | The birth date of the candidate, written into the "Geburtsdatum" field of the application form. Format: `YYYY-MM-DD`

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | \ No newline at end of file diff --git a/docs/sdks/ats/README.md b/docs/sdks/ats/README.md index 5190409..69d37ee 100644 --- a/docs/sdks/ats/README.md +++ b/docs/sdks/ats/README.md @@ -27,6 +27,7 @@ * [getOffers](#getoffers) - Get offers * [getRejectionReasons](#getrejectionreasons) - Get rejection reasons * [getInterviews](#getinterviews) - Get interviews +* [getAtsNotes](#getatsnotes) - Get notes * [importTrackedApplication](#importtrackedapplication) - Import tracked application ## getApplications @@ -3883,6 +3884,84 @@ run(); | errors.KomboAtsError | default | application/json | | errors.KomboDefaultError | 4XX, 5XX | \*/\* | +## getAtsNotes + +Retrieve all notes. + +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 + + +```typescript +import { Kombo } from "@kombo-api/sdk"; + +const kombo = new Kombo({ + integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28", + api_key: "", +}); + +async function run() { + const result = await kombo.ats.getAtsNotes({}); + + for await (const page of result) { + console.log(page); + } +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { KomboCore } from "@kombo-api/sdk/core.js"; +import { atsGetAtsNotes } from "@kombo-api/sdk/funcs/atsGetAtsNotes.js"; + +// Use `KomboCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const kombo = new KomboCore({ + integration_id: "workday:HWUTwvyx2wLoSUHphiWVrp28", + api_key: "", +}); + +async function run() { + const res = await atsGetAtsNotes(kombo, {}); + if (res.ok) { + const { value: result } = res; + for await (const page of result) { + console.log(page); + } + } else { + console.log("atsGetAtsNotes failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetAtsNotesRequest](../../models/operations/getatsnotesrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.GetAtsNotesResponse](../../models/operations/getatsnotesresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.KomboAtsError | default | application/json | +| errors.KomboDefaultError | 4XX, 5XX | \*/\* | + ## importTrackedApplication Import tracked application diff --git a/docs/sdks/general/README.md b/docs/sdks/general/README.md index 46fd778..7e39f35 100644 --- a/docs/sdks/general/README.md +++ b/docs/sdks/general/README.md @@ -354,7 +354,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |HoorayHR|`hoorayhr/api`|[HoorayHR API](https://api.hoorayhr.io/documentation/). We automatically authenticate all requests and use `https://api.hoorayhr.io` as the base URL.| |HR Office|`hroffice/soap`|[HROffice SOAP API](https://api.hroffice.nl/HROfficeCoreService.asmx). We automatically authenticate all requests and wrap them in a SOAP envelope. Build the request `Body` with the raw XML parameters for your operation (e.g., `\1\`). Use `/` as your `path`. Set your `method` to `POST`. You need to specify the `api_options` object and set `operation_name` to the SOAP operation you want to call (e.g., `GetAllJobByLanguage`).| |HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.| -|HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g., https://`\{base_url\}`/ or https://`\{subdomain\}.hr4you.org`/).| +|HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g. `https://your-company.hr4you.org/` or a custom domain).| |Humaans|`humaans/api`|Humaans' [API](https://docs.humaans.io/api/). We automatically authenticate all requests using the API key and use `https://app.humaans.io/api` as the base URL.| |iCIMS|`icims/default`|[iCIMS Default API](https://developer-community.icims.com/). We automatically authenticate all requests and use `https://api.icims.com/customers/\{customer_id\}` as the base url.| |InRecruiting by Zucchetti|`inrecruiting/default`|[inRecruiting's v3 API](https://inrecruiting.intervieweb.it/api-docs/). We automatically authenticate all requests and use the customers domain as base URL| diff --git a/examples/package-lock.json b/examples/package-lock.json index 33fded6..b0489a2 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -18,7 +18,7 @@ }, "..": { "name": "@kombo-api/sdk", - "version": "1.3.4", + "version": "1.3.5", "license": "MIT", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/jsr.json b/jsr.json index 3c8f697..f7e76f6 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@kombo-api/sdk", - "version": "1.3.4", + "version": "1.3.5", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 80946c6..ce358ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@kombo-api/sdk", - "version": "1.3.4", + "version": "1.3.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@kombo-api/sdk", - "version": "1.3.4", + "version": "1.3.5", "license": "MIT", "dependencies": { "zod": "^3.25.0 || ^4.0.0" diff --git a/package.json b/package.json index 527afaf..754e68a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@kombo-api/sdk", - "version": "1.3.4", + "version": "1.3.5", "author": "Kombo Technologies GmbH (https://www.kombo.dev)", "description": "The official TypeScript/JavaScript SDK for the Kombo Unified API", "homepage": "https://github.com/kombohq/typescript-sdk#readme", diff --git a/src/funcs/atsGetAtsNotes.ts b/src/funcs/atsGetAtsNotes.ts new file mode 100644 index 0000000..87f62ba --- /dev/null +++ b/src/funcs/atsGetAtsNotes.ts @@ -0,0 +1,257 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { KomboCore } from "../core.js"; +import { encodeFormQuery, encodeSimple, queryJoin } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { KomboError } from "../models/errors/komboerror.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; +import { + createPageIterator, + haltIterator, + PageIterator, + Paginator, +} from "../types/operations.js"; + +/** + * Get notes + * + * @remarks + * Retrieve all notes. + * + * 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)` + */ +export function atsGetAtsNotes( + client: KomboCore, + request?: operations.GetAtsNotesRequest | undefined, + options?: RequestOptions, +): APIPromise< + PageIterator< + Result< + operations.GetAtsNotesResponse, + | errors.KomboAtsError + | KomboError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + { cursor: string } + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: KomboCore, + request?: operations.GetAtsNotesRequest | undefined, + options?: RequestOptions, +): Promise< + [ + PageIterator< + Result< + operations.GetAtsNotesResponse, + | errors.KomboAtsError + | KomboError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + { cursor: string } + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GetAtsNotesRequest$outboundSchema.optional().parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [haltIterator(parsed), { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/ats/notes")(); + + const query = queryJoin( + encodeFormQuery({ + "application_ids": payload?.application_ids, + "candidate_ids": payload?.candidate_ids, + "ids": payload?.ids, + "remote_ids": payload?.remote_ids, + }, { explode: false }), + encodeFormQuery({ + "cursor": payload?.cursor, + "ignore_unsupported_filters": payload?.ignore_unsupported_filters, + "include_deleted": payload?.include_deleted, + "page_size": payload?.page_size, + "updated_after": payload?.updated_after, + }), + ); + + const headers = new Headers(compactMap({ + Accept: "application/json", + "X-Integration-Id": encodeSimple( + "X-Integration-Id", + client._options.integration_id, + { explode: false, charEncoding: "none" }, + ), + })); + + const secConfig = await extractSecurity(client._options.api_key); + const securityInput = secConfig == null ? {} : { api_key: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + base_url: options?.server_url ?? client._baseURL ?? "", + operation_id: "GetAtsNotes", + o_auth2_scopes: null, + + resolved_security: requestSecurity, + + security_source: client._options.api_key, + retry_config: options?.retries + || client._options.retry_config + || { strategy: "none" }, + retry_codes: options?.retry_codes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.server_url, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.user_agent, + timeout_ms: options?.timeout_ms || client._options.timeout_ms || -1, + }, options); + if (!requestRes.ok) { + return [haltIterator(requestRes), { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + !matchStatusCode({ status: statusCode } as Response, ["200"]), + retryConfig: context.retry_config, + retryCodes: context.retry_codes, + }); + if (!doResult.ok) { + return [haltIterator(doResult), { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result, raw] = await M.match< + operations.GetAtsNotesResponse, + | errors.KomboAtsError + | KomboError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, operations.GetAtsNotesResponse$inboundSchema, { + key: "Result", + }), + M.jsonErr("default", errors.KomboAtsError$inboundSchema), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [haltIterator(result), { + status: "complete", + request: req, + response, + }]; + } + + const nextFunc = ( + responseData: unknown, + ): { + next: Paginator< + Result< + operations.GetAtsNotesResponse, + | errors.KomboAtsError + | KomboError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > + >; + "~next"?: { cursor: string }; + } => { + const nextCursor = + (responseData as { data: { next: unknown | null } }).data.next; + if (typeof nextCursor !== "string") { + return { next: () => null }; + } + if (nextCursor.trim() === "") { + return { next: () => null }; + } + + const nextVal = () => + atsGetAtsNotes( + client, + { + ...request!, + cursor: nextCursor, + }, + options, + ); + + return { next: nextVal, "~next": { cursor: nextCursor } }; + }; + + const page = { ...result, ...nextFunc(raw) }; + return [{ ...page, ...createPageIterator(page, (v) => !v.ok) }, { + status: "complete", + request: req, + response, + }]; +} diff --git a/src/funcs/generalSendPassthroughRequest.ts b/src/funcs/generalSendPassthroughRequest.ts index 1574b1a..eafdc86 100644 --- a/src/funcs/generalSendPassthroughRequest.ts +++ b/src/funcs/generalSendPassthroughRequest.ts @@ -128,7 +128,7 @@ import { Result } from "../types/fp.js"; * |HoorayHR|`hoorayhr/api`|[HoorayHR API](https://api.hoorayhr.io/documentation/). We automatically authenticate all requests and use `https://api.hoorayhr.io` as the base URL.| * |HR Office|`hroffice/soap`|[HROffice SOAP API](https://api.hroffice.nl/HROfficeCoreService.asmx). We automatically authenticate all requests and wrap them in a SOAP envelope. Build the request `Body` with the raw XML parameters for your operation (e.g., `\1\`). Use `/` as your `path`. Set your `method` to `POST`. You need to specify the `api_options` object and set `operation_name` to the SOAP operation you want to call (e.g., `GetAllJobByLanguage`).| * |HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.| - * |HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g., https://`\{base_url\}`/ or https://`\{subdomain\}.hr4you.org`/).| + * |HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g. `https://your-company.hr4you.org/` or a custom domain).| * |Humaans|`humaans/api`|Humaans' [API](https://docs.humaans.io/api/). We automatically authenticate all requests using the API key and use `https://app.humaans.io/api` as the base URL.| * |iCIMS|`icims/default`|[iCIMS Default API](https://developer-community.icims.com/). We automatically authenticate all requests and use `https://api.icims.com/customers/\{customer_id\}` as the base url.| * |InRecruiting by Zucchetti|`inrecruiting/default`|[inRecruiting's v3 API](https://inrecruiting.intervieweb.it/api-docs/). We automatically authenticate all requests and use the customers domain as base URL| diff --git a/src/lib/config.ts b/src/lib/config.ts index 8bdc4c7..235e9d1 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -69,7 +69,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "1.3.4", - genVersion: "2.924.0", - userAgent: "speakeasy-sdk/typescript 1.3.4 2.924.0 1.0.0 @kombo-api/sdk", + sdkVersion: "1.3.5", + genVersion: "2.928.0", + userAgent: "speakeasy-sdk/typescript 1.3.5 2.928.0 1.0.0 @kombo-api/sdk", } as const; diff --git a/src/models/datachangedwebhookpayload.ts b/src/models/datachangedwebhookpayload.ts index 6081f51..3124b04 100644 --- a/src/models/datachangedwebhookpayload.ts +++ b/src/models/datachangedwebhookpayload.ts @@ -71,6 +71,7 @@ export const Name = { AtsOffers: "ats_offers", AtsRejectionReasons: "ats_rejection_reasons", AtsRoles: "ats_roles", + AtsNotes: "ats_notes", LmsUsers: "lms_users", LmsCourseProviders: "lms_course_providers", LmsSkills: "lms_skills", diff --git a/src/models/getatsnotespositiveresponse.ts b/src/models/getatsnotespositiveresponse.ts new file mode 100644 index 0000000..e814e95 --- /dev/null +++ b/src/models/getatsnotespositiveresponse.ts @@ -0,0 +1,195 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v3"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type Author = { + /** + * The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + */ + id: string; + /** + * 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_id: string | null; + /** + * First name of the user. + */ + first_name: string | null; + /** + * Last name of the user. + */ + last_name: string | null; + /** + * Email of the user. If the email address is invalid, it will be set to null. + */ + email?: string | null | undefined; +}; + +export type GetAtsNotesPositiveResponseResult = { + /** + * The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + */ + id: string; + /** + * 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_id: string; + /** + * The Kombo ID of the candidate this note is about. The ID can be used to retrieve the candidate from the `get candidates` endpoint. + */ + candidate_id: string; + /** + * The Kombo ID of the application this note is about, when the note is tied to a specific application. Some systems attach notes to the candidate only, in which case this is `null`. + */ + application_id: string | null; + /** + * The Kombo ID of the user who authored the note. `null` for notes generated by the system rather than a specific user. The ID can be used to retrieve the user from the `get users` endpoint. + */ + author_id: string | null; + /** + * The note title from the ATS. + */ + title: string | null; + /** + * The note content from the ATS, passed through as-is. This may contain HTML markup when the source ATS stores it that way. + */ + content_html: string | null; + /** + * Whether the note requires elevated permissions to access in the source ATS (e.g. a `private`, `secret`, or `admin only` flag), meaning it is not visible to everyone with standard access to the candidate/application. `null` when the source ATS does not expose such a signal. + */ + is_private: boolean | null; + /** + * The date and time the object was created in the remote system. + */ + remote_created_at: Date | null; + /** + * A timestamp retrieved from the remote system, describing when the resource was last updated. + */ + remote_updated_at: Date | null; + /** + * 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. + */ + changed_at: Date; + /** + * 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. + */ + remote_deleted_at: Date | null; + author: Author | null; +}; + +export type GetAtsNotesPositiveResponseData = { + /** + * 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. + */ + next: string | null; + results: Array; +}; + +export type GetAtsNotesPositiveResponse = { + status: "success"; + data: GetAtsNotesPositiveResponseData; +}; + +/** @internal */ +export const Author$inboundSchema: z.ZodType = z + .object({ + id: z.string(), + remote_id: z.nullable(z.string()), + first_name: z.nullable(z.string()), + last_name: z.nullable(z.string()), + email: z.nullable(z.string()).optional(), + }); + +export function authorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Author$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Author' from JSON`, + ); +} + +/** @internal */ +export const GetAtsNotesPositiveResponseResult$inboundSchema: z.ZodType< + GetAtsNotesPositiveResponseResult, + z.ZodTypeDef, + unknown +> = z.object({ + id: z.string(), + remote_id: z.string(), + candidate_id: z.string(), + application_id: z.nullable(z.string()), + author_id: z.nullable(z.string()), + title: z.nullable(z.string()), + content_html: z.nullable(z.string()), + is_private: z.nullable(z.boolean()), + remote_created_at: z.nullable( + z.string().datetime({ offset: true }).transform(v => new Date(v)), + ), + remote_updated_at: z.nullable( + z.string().datetime({ offset: true }).transform(v => new Date(v)), + ), + changed_at: z.string().datetime({ offset: true }).transform(v => new Date(v)), + remote_deleted_at: z.nullable( + z.string().datetime({ offset: true }).transform(v => new Date(v)), + ), + author: z.nullable(z.lazy(() => Author$inboundSchema)), +}); + +export function getAtsNotesPositiveResponseResultFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetAtsNotesPositiveResponseResult$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetAtsNotesPositiveResponseResult' from JSON`, + ); +} + +/** @internal */ +export const GetAtsNotesPositiveResponseData$inboundSchema: z.ZodType< + GetAtsNotesPositiveResponseData, + z.ZodTypeDef, + unknown +> = z.object({ + next: z.nullable(z.string()), + results: z.array( + z.lazy(() => GetAtsNotesPositiveResponseResult$inboundSchema), + ), +}); + +export function getAtsNotesPositiveResponseDataFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetAtsNotesPositiveResponseData$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetAtsNotesPositiveResponseData' from JSON`, + ); +} + +/** @internal */ +export const GetAtsNotesPositiveResponse$inboundSchema: z.ZodType< + GetAtsNotesPositiveResponse, + z.ZodTypeDef, + unknown +> = z.object({ + status: z.literal("success"), + data: z.lazy(() => GetAtsNotesPositiveResponseData$inboundSchema), +}); + +export function getAtsNotesPositiveResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetAtsNotesPositiveResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetAtsNotesPositiveResponse' from JSON`, + ); +} diff --git a/src/models/index.ts b/src/models/index.ts index 92d5d3f..15b3675 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -20,6 +20,7 @@ export * from "./getatscandidatescandidateidattachmentspositiveresponse.js"; export * from "./getatscandidatespositiveresponse.js"; export * from "./getatsinterviewspositiveresponse.js"; export * from "./getatsjobspositiveresponse.js"; +export * from "./getatsnotespositiveresponse.js"; export * from "./getatsofferspositiveresponse.js"; export * from "./getatsrejectionreasonspositiveresponse.js"; export * from "./getatsrolespositiveresponse.js"; diff --git a/src/models/operations/getatsapplications.ts b/src/models/operations/getatsapplications.ts index 21c3837..89d6244 100644 --- a/src/models/operations/getatsapplications.ts +++ b/src/models/operations/getatsapplications.ts @@ -40,7 +40,7 @@ export type GetAtsApplicationsRequest = { * | --- | --- | --- | * | `candidate` | n/a | ✓ Yes | * | `candidate` → `tags` | ✗ No | ✗ No | - * | `current_stage` | n/a | ✓ Yes | + * | `current_stage` | ✗ No | ✗ No | * | `job` | ✗ No | ✗ No | * | `interviews` | ✓ Yes | ✓ Yes | * | `offers` | ✓ Yes | ✓ Yes | diff --git a/src/models/operations/getatsnotes.ts b/src/models/operations/getatsnotes.ts new file mode 100644 index 0000000..b87e68b --- /dev/null +++ b/src/models/operations/getatsnotes.ts @@ -0,0 +1,137 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v3"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; + +export type GetAtsNotesGlobals = { + /** + * ID of the integration you want to interact with. + */ + integration_id?: string | undefined; +}; + +export type GetAtsNotesRequest = { + /** + * An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. + */ + cursor?: string | undefined; + /** + * The number of results to return per page. Maximum is 250. + */ + page_size?: number | undefined; + /** + * 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. + * + * @remarks + * + * 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). + * + * For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. + * + * | Path | Added/Removed | Linked Record | + * | --- | --- | --- | + * | `author` | ✗ No | ✗ No | + * | `application` | ✗ No | ✗ No | + * | `candidate` | ✗ No | ✗ No | + * + * _**Added/Removed**: Whether adding or removing entries from this list triggers an update (n/a for single records). **Linked Record**: Whether changes to the linked record itself trigger an update._ + */ + updated_after?: Date | undefined; + /** + * By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. + */ + include_deleted?: boolean | undefined; + /** + * When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. + */ + ignore_unsupported_filters?: boolean | undefined; + /** + * Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. + */ + ids?: Array | undefined; + /** + * Filter by a comma-separated list of remote IDs. + */ + remote_ids?: Array | undefined; + /** + * Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want to download the full context available for a candidate, across all their applications. + */ + candidate_ids?: Array | undefined; + /** + * Filter by a comma-separated list of application IDs. Use filtering by `application_ids` only if you want the context available for specific applications. Results do not include notes that only link to the candidate, but not the application. + */ + application_ids?: Array | undefined; +}; + +export type GetAtsNotesResponse = { + result: models.GetAtsNotesPositiveResponse; +}; + +/** @internal */ +export type GetAtsNotesRequest$Outbound = { + cursor?: string | undefined; + page_size: number; + updated_after?: string | undefined; + include_deleted: boolean; + ignore_unsupported_filters: boolean; + ids?: Array | undefined; + remote_ids?: Array | undefined; + candidate_ids?: Array | undefined; + application_ids?: Array | undefined; +}; + +/** @internal */ +export const GetAtsNotesRequest$outboundSchema: z.ZodType< + GetAtsNotesRequest$Outbound, + z.ZodTypeDef, + GetAtsNotesRequest +> = z.object({ + cursor: z.string().optional(), + page_size: z.number().int().default(100), + updated_after: z.date().transform(v => v.toISOString()).optional(), + include_deleted: z.boolean().default(false), + ignore_unsupported_filters: z.boolean().default(false), + ids: z.array(z.string()).optional(), + remote_ids: z.array(z.string()).optional(), + candidate_ids: z.array(z.string()).optional(), + application_ids: z.array(z.string()).optional(), +}); + +export function getAtsNotesRequestToJSON( + getAtsNotesRequest: GetAtsNotesRequest, +): string { + return JSON.stringify( + GetAtsNotesRequest$outboundSchema.parse(getAtsNotesRequest), + ); +} + +/** @internal */ +export const GetAtsNotesResponse$inboundSchema: z.ZodType< + GetAtsNotesResponse, + z.ZodTypeDef, + unknown +> = z.object({ + Result: models.GetAtsNotesPositiveResponse$inboundSchema, +}).transform((v) => { + return remap$(v, { + "Result": "result", + }); +}); + +export function getAtsNotesResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => GetAtsNotesResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetAtsNotesResponse' from JSON`, + ); +} diff --git a/src/models/operations/index.ts b/src/models/operations/index.ts index a4ac13d..655c321 100644 --- a/src/models/operations/index.ts +++ b/src/models/operations/index.ts @@ -14,6 +14,7 @@ export * from "./getatscandidates.js"; export * from "./getatscandidatescandidateidattachments.js"; export * from "./getatsinterviews.js"; export * from "./getatsjobs.js"; +export * from "./getatsnotes.js"; export * from "./getatsoffers.js"; export * from "./getatsrejectionreasons.js"; export * from "./getatsroles.js"; diff --git a/src/models/postatscandidatesrequestbody.ts b/src/models/postatscandidatesrequestbody.ts index b6d9833..9684a74 100644 --- a/src/models/postatscandidatesrequestbody.ts +++ b/src/models/postatscandidatesrequestbody.ts @@ -696,6 +696,10 @@ export type PostAtsCandidatesRequestBodyBullhorn = { * Fields that we will pass through to Bullhorn's `JobSubmission` object. */ job_submission?: { [k: string]: any } | undefined; + /** + * The remote ID of the Bullhorn `Candidate` the application should be filed on. When set, we skip Bullhorn's duplicate detection and use exactly this candidate, which lets you pick the right record when several candidates share an email address or phone number. The request fails if the candidate does not exist (or was deleted) in Bullhorn. + */ + existing_candidate_remote_id?: string | undefined; }; /** @@ -859,6 +863,10 @@ export type PostAtsCandidatesRequestBodyPilogaCandidate = { * The street address of the candidate. */ street?: string | undefined; + /** + * The birth date of the candidate, written into the "Geburtsdatum" field of the application form. Format: `YYYY-MM-DD` + */ + geburtsdatum?: Date | undefined; }; /** @@ -2810,6 +2818,7 @@ export function postAtsCandidatesRequestBodyZohorecruitToJSON( export type PostAtsCandidatesRequestBodyBullhorn$Outbound = { candidate?: { [k: string]: any } | undefined; job_submission?: { [k: string]: any } | undefined; + existing_candidate_remote_id?: string | undefined; }; /** @internal */ @@ -2820,6 +2829,7 @@ export const PostAtsCandidatesRequestBodyBullhorn$outboundSchema: z.ZodType< > = z.object({ candidate: z.record(z.any()).optional(), job_submission: z.record(z.any()).optional(), + existing_candidate_remote_id: z.string().optional(), }); export function postAtsCandidatesRequestBodyBullhornToJSON( @@ -3246,6 +3256,7 @@ export function postAtsCandidatesRequestBodyUmantisToJSON( /** @internal */ export type PostAtsCandidatesRequestBodyPilogaCandidate$Outbound = { street?: string | undefined; + geburtsdatum?: string | undefined; }; /** @internal */ @@ -3256,6 +3267,7 @@ export const PostAtsCandidatesRequestBodyPilogaCandidate$outboundSchema: PostAtsCandidatesRequestBodyPilogaCandidate > = z.object({ street: z.string().optional(), + geburtsdatum: z.date().transform(v => v.toISOString()).optional(), }); export function postAtsCandidatesRequestBodyPilogaCandidateToJSON( diff --git a/src/models/postatsjobsjobidapplicationsrequestbody.ts b/src/models/postatsjobsjobidapplicationsrequestbody.ts index bfca76e..73fd47b 100644 --- a/src/models/postatsjobsjobidapplicationsrequestbody.ts +++ b/src/models/postatsjobsjobidapplicationsrequestbody.ts @@ -612,6 +612,10 @@ export type PostAtsJobsJobIdApplicationsRequestBodyBullhorn = { * Fields that we will pass through to Bullhorn's `JobSubmission` object. */ job_submission?: { [k: string]: any } | undefined; + /** + * The remote ID of the Bullhorn `Candidate` the application should be filed on. When set, we skip Bullhorn's duplicate detection and use exactly this candidate, which lets you pick the right record when several candidates share an email address or phone number. The request fails if the candidate does not exist (or was deleted) in Bullhorn. + */ + existing_candidate_remote_id?: string | undefined; }; /** @@ -781,6 +785,10 @@ export type PostAtsJobsJobIdApplicationsRequestBodyPilogaCandidate = { * The street address of the candidate. */ street?: string | undefined; + /** + * The birth date of the candidate, written into the "Geburtsdatum" field of the application form. Format: `YYYY-MM-DD` + */ + geburtsdatum?: Date | undefined; }; /** @@ -2790,6 +2798,7 @@ export function postAtsJobsJobIdApplicationsRequestBodyZohorecruitToJSON( export type PostAtsJobsJobIdApplicationsRequestBodyBullhorn$Outbound = { candidate?: { [k: string]: any } | undefined; job_submission?: { [k: string]: any } | undefined; + existing_candidate_remote_id?: string | undefined; }; /** @internal */ @@ -2801,6 +2810,7 @@ export const PostAtsJobsJobIdApplicationsRequestBodyBullhorn$outboundSchema: > = z.object({ candidate: z.record(z.any()).optional(), job_submission: z.record(z.any()).optional(), + existing_candidate_remote_id: z.string().optional(), }); export function postAtsJobsJobIdApplicationsRequestBodyBullhornToJSON( @@ -3252,6 +3262,7 @@ export function postAtsJobsJobIdApplicationsRequestBodyUmantisToJSON( /** @internal */ export type PostAtsJobsJobIdApplicationsRequestBodyPilogaCandidate$Outbound = { street?: string | undefined; + geburtsdatum?: string | undefined; }; /** @internal */ @@ -3262,6 +3273,7 @@ export const PostAtsJobsJobIdApplicationsRequestBodyPilogaCandidate$outboundSche PostAtsJobsJobIdApplicationsRequestBodyPilogaCandidate > = z.object({ street: z.string().optional(), + geburtsdatum: z.date().transform(v => v.toISOString()).optional(), }); export function postAtsJobsJobIdApplicationsRequestBodyPilogaCandidateToJSON( diff --git a/src/sdk/ats.ts b/src/sdk/ats.ts index 7c64327..2e5646c 100644 --- a/src/sdk/ats.ts +++ b/src/sdk/ats.ts @@ -13,6 +13,7 @@ import { atsCreateCandidate } from "../funcs/atsCreateCandidate.js"; import { atsGetApplicationAttachments } from "../funcs/atsGetApplicationAttachments.js"; import { atsGetApplications } from "../funcs/atsGetApplications.js"; import { atsGetApplicationStages } from "../funcs/atsGetApplicationStages.js"; +import { atsGetAtsNotes } from "../funcs/atsGetAtsNotes.js"; import { atsGetCandidateAttachments } from "../funcs/atsGetCandidateAttachments.js"; import { atsGetCandidates } from "../funcs/atsGetCandidates.js"; import { atsGetInterviews } from "../funcs/atsGetInterviews.js"; @@ -825,6 +826,25 @@ export class Ats extends ClientSDK { )); } + /** + * Get notes + * + * @remarks + * Retrieve all notes. + * + * 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)` + */ + async getAtsNotes( + request?: operations.GetAtsNotesRequest | undefined, + options?: RequestOptions, + ): Promise> { + return unwrapResultIterator(atsGetAtsNotes( + this, + request, + options, + )); + } + /** * Import tracked application * diff --git a/src/sdk/general.ts b/src/sdk/general.ts index 910a09e..d42ce3a 100644 --- a/src/sdk/general.ts +++ b/src/sdk/general.ts @@ -157,7 +157,7 @@ export class General extends ClientSDK { * |HoorayHR|`hoorayhr/api`|[HoorayHR API](https://api.hoorayhr.io/documentation/). We automatically authenticate all requests and use `https://api.hoorayhr.io` as the base URL.| * |HR Office|`hroffice/soap`|[HROffice SOAP API](https://api.hroffice.nl/HROfficeCoreService.asmx). We automatically authenticate all requests and wrap them in a SOAP envelope. Build the request `Body` with the raw XML parameters for your operation (e.g., `\1\`). Use `/` as your `path`. Set your `method` to `POST`. You need to specify the `api_options` object and set `operation_name` to the SOAP operation you want to call (e.g., `GetAllJobByLanguage`).| * |HR WORKS|`hrworks/v2`|HRWorks's v2 [API](https://developers.hrworks.de/2.0/endpoints). We automatically authenticate all requests using the customer credentials.| - * |HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g., https://`\{base_url\}`/ or https://`\{subdomain\}.hr4you.org`/).| + * |HR4YOU|`hr4you/v2`|[HR4YOU's v2 API](https://apiprodemo.hr4you.org/api2/docs). We automatically authenticate all requests and use the customers provided base URL (e.g. `https://your-company.hr4you.org/` or a custom domain).| * |Humaans|`humaans/api`|Humaans' [API](https://docs.humaans.io/api/). We automatically authenticate all requests using the API key and use `https://app.humaans.io/api` as the base URL.| * |iCIMS|`icims/default`|[iCIMS Default API](https://developer-community.icims.com/). We automatically authenticate all requests and use `https://api.icims.com/customers/\{customer_id\}` as the base url.| * |InRecruiting by Zucchetti|`inrecruiting/default`|[inRecruiting's v3 API](https://inrecruiting.intervieweb.it/api-docs/). We automatically authenticate all requests and use the customers domain as base URL|