diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index acc324f6..47e3ab4c 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,23 +1,23 @@ lockVersion: 2.0.0 id: a945ea15-b620-47b9-9868-c165c173bf88 management: - docChecksum: a92c8129cc9dc835368c0511c699c112 + docChecksum: 5efa8ce0366654a1c5fadec75c166134 docVersion: 1.0.0 - speakeasyVersion: 1.793.1 - generationVersion: 2.928.0 - releaseVersion: 1.2.8 - configChecksum: caa2324eb57fcde6287ad44e556248d0 + speakeasyVersion: 1.796.4 + generationVersion: 2.935.1 + releaseVersion: 1.2.9 + configChecksum: 146cde135ed5a5c60783d1947736e902 repoURL: https://github.com/kombohq/ruby-sdk.git installationURL: https://github.com/kombohq/ruby-sdk published: true persistentEdits: - generation_id: 7b884c68-1176-4bc0-a297-471fc501efa4 - pristine_commit_hash: 0d98ed49ba89391e3347312c2f8d01b70c1c0706 - pristine_tree_hash: cc16f5d9982b786715313fc091ca9b9fbec2a87a + generation_id: a927934e-2339-4aee-8468-202fb0e4a702 + pristine_commit_hash: 3f241bdbbaa9306e6f0ac0139cb1e1ea492d85f9 + pristine_tree_hash: da6d45987049e1774fa7bcd76892bcab76568dca features: ruby: constsAndDefaults: 0.1.4 - core: 3.11.33 + core: 3.11.35 deprecations: 2.81.2 errors: 0.1.2 flattening: 2.81.1 @@ -33,7 +33,7 @@ features: pagination: 0.1.1 responseFormat: 0.1.0 serverIDs: 2.81.1 - unions: 0.1.4 + unions: 0.1.5 webhooks: 1.0.0 trackedFiles: .gitattributes: @@ -54,8 +54,8 @@ trackedFiles: pristine_git_object: b0ea40558f3ca80dcf7d30b159d34a1e5ab33440 Gemfile.lock: id: 21fb5836b499 - last_write_checksum: sha1:08d4301d37e7c7d99c1bee9962e9fdba60f8b59d - pristine_git_object: 8869152a850986370cf8c9d083769c871a55fa7a + last_write_checksum: sha1:a95729f0981289605f122173f8948d284df14e7b + pristine_git_object: 08b5065386c83feb4e100cdeb32c9ca60e435f0e Rakefile: id: 44b7fa1ba503 last_write_checksum: sha1:c572639efdae8c7b24141ee5c02d8f009e101ed8 @@ -204,6 +204,14 @@ trackedFiles: id: 6e975a192d41 last_write_checksum: sha1:4b319187dfb577ab3a239ce6f52ad0f7192e437e pristine_git_object: 141d0ae56d770962f51f1cf784e51ab70f0cbc61 + docs/models/operations/getatsscorecardsrequest.md: + id: a6ebd9561855 + last_write_checksum: sha1:3cac681183a2f360f411c455f56d56ecbe5e5043 + pristine_git_object: 3e14c5fd34a64d52bbd1b67f3acf8e9cda6b1680 + docs/models/operations/getatsscorecardsresponse.md: + id: f1eb15c305d3 + last_write_checksum: sha1:e601d22aab30f87d25996f7be552b37ddd2e11e3 + pristine_git_object: 50e441076b36d4484f05a50ba36ce35cf2c971e6 docs/models/operations/getatstagsrequest.md: id: e4f0fac4a2d3 last_write_checksum: sha1:83dc4b5514be6d5fbad420576bd39c6a5f0a3956 @@ -304,6 +312,22 @@ trackedFiles: id: 57e2a3261a81 last_write_checksum: sha1:161b0c52c2ffe20b74bc05c00116c9d4b6339c5b pristine_git_object: 4b0b2cb5434db255a021616a68a5effa9f1b1272 + docs/models/operations/gethrispayrunsrequest.md: + id: 4cc337641318 + last_write_checksum: sha1:e021c38941eaed5c9b6a5847a0123a8cf7e488d3 + pristine_git_object: 3a4ae320f841bf6f18d87913d354dda85c83fe0a + docs/models/operations/gethrispayrunsresponse.md: + id: a6a976979a8d + last_write_checksum: sha1:e06adaedee84ac4948307bbf51f3e15e25d2f847 + pristine_git_object: 9951e592583e33419caf539cdf39d0fe35a8d088 + docs/models/operations/gethrispayslipsrequest.md: + id: abbb981b8b30 + last_write_checksum: sha1:7fab8aa4c23b75badb5348d2a431f13b8965a21b + pristine_git_object: df97eddc03b28ac2192651319ea0493fa6620891 + docs/models/operations/gethrispayslipsresponse.md: + id: be1c843c3a41 + last_write_checksum: sha1:0e6cd9d4a2582042cccfff29f8ab2e25d49662b5 + pristine_git_object: 8302655fe18cfc84492571cbaa7024f3e64a3a00 docs/models/operations/gethrisperformancereviewcyclesrequest.md: id: 245aea5c4294 last_write_checksum: sha1:7f50462e160fbbfc1d2cfca52222144c03d27651 @@ -572,6 +596,10 @@ trackedFiles: id: f2993c08a35e last_write_checksum: sha1:b32817480fb266b4ad794ce5884a77e5ef3b4a18 pristine_git_object: 5efa1778d744d5f7769041b133af053bc8024454 + docs/models/shared/amount.md: + id: b1e28b6da121 + last_write_checksum: sha1:3145255ea6f1b75330979ec2e4d871cfacd9f5ae + pristine_git_object: 8f1e7e1da6b48d16e10f4923396cb1b603ad18e2 docs/models/shared/assesscandidatedata.md: id: 681887ef93cb last_write_checksum: sha1:5e725b842519a983789b6a7d8ddc0151ee369796 @@ -644,10 +672,6 @@ trackedFiles: id: 10a715bdf38c last_write_checksum: sha1:ffee8a5df152525f5f154a502f3af07f2b62be97 pristine_git_object: bf7d59de18e2dbb5cfdc672080434322f8c9673b - docs/models/shared/author.md: - id: 710084ad12bb - last_write_checksum: sha1:08fa8fc09f454399ed3da5ae40b8ae7fea3c2fc9 - pristine_git_object: 35fd48902eb5cc45d7c20b21bb3b766a573b7129 docs/models/shared/bankaccount.md: id: 33bf0def5f28 last_write_checksum: sha1:099843a096dd8552506a58f0cd96c5d8d7b24419 @@ -664,6 +688,10 @@ trackedFiles: id: c1138e6dd745 last_write_checksum: sha1:db32679f178587e16385fae5532a3ec4d77825bf pristine_git_object: a97b585dc282cd6752e5d225dfe01db49c1323cd + docs/models/shared/change.md: + id: 87ff0d769f1b + last_write_checksum: sha1:a52149b8369cb295bae37da9d0e7adaf5b602f51 + pristine_git_object: 10ba8b449aa1983ae3b0f201eddf4a69707dae43 docs/models/shared/changedmodel.md: id: b1825a2aff36 last_write_checksum: sha1:3d83e89ed41656b80a882aa5cc96077d0c4c2c44 @@ -820,6 +848,10 @@ trackedFiles: id: 4ca9d377b92e last_write_checksum: sha1:3fba4a619378ecb07071120828046ec0f9f4c18b pristine_git_object: 62e57e0088fc7ac842734eddb3d766b45a3bf909 + docs/models/shared/employee.md: + id: 033259ec05d9 + last_write_checksum: sha1:9d031040184ffa06442e488c0102eaaf05f4921f + pristine_git_object: afecac4d28f3b90b10b05fe106e1f0d657e724f9 docs/models/shared/employment.md: id: d71c2767b329 last_write_checksum: sha1:997a0e8ba20688226ecee036a63eeafc5b2bd2b3 @@ -882,16 +914,16 @@ trackedFiles: pristine_git_object: fac34a36c658ec23f4d096dc9b86e2d54bd6cace docs/models/shared/formatmultiselect.md: id: b8dd61b56d6b - last_write_checksum: sha1:e67031903691d0b9c20b72ed51edd0120dc01c29 - pristine_git_object: 29c5049c1baa48315c08e561a99a284baf57ef55 + last_write_checksum: sha1:10e18d4f9aa28d090773df99e05864cf6e9e0dc8 + pristine_git_object: ae577c39ffacce120d97f027a548267832683e99 docs/models/shared/formatnumber.md: id: d6911011bff3 last_write_checksum: sha1:2982b5fb41aa4c45d97ae19b3f751aac0bacc2cb pristine_git_object: 3264fa432eda001140668c7acb3a035f28bbbdfc docs/models/shared/formatsingleselect.md: id: c4a59d2526e0 - last_write_checksum: sha1:e6915050351a974e669ef3d7f3ff597d35faed5a - pristine_git_object: 7909fddbfc666ee57e16e59b2776e7fc9cd8e7ba + last_write_checksum: sha1:a5255e041877d9c1ce6685072f8b5801ebda5acc + pristine_git_object: e5118ecab0054b475c5e22b7d58b1a422324bb19 docs/models/shared/formattext.md: id: 6c68271efe78 last_write_checksum: sha1:28b2a333030baec7acd9b1a3826e72808f5bb64d @@ -1260,6 +1292,14 @@ trackedFiles: id: 2962d47e12c8 last_write_checksum: sha1:44e975c6055a118c68fa1563bd04a15fe079cf1f pristine_git_object: ebb9f7e7017732171cdc8a86b6ad10023538160b + docs/models/shared/getatsjobspositiveresponseoption1.md: + id: 4f01f360c7f3 + last_write_checksum: sha1:dd9907122a6c498bea03452003e9a3dd34e0e0fd + pristine_git_object: c55c687fe9ada0940e35fea9175c8664eaa1c9e8 + docs/models/shared/getatsjobspositiveresponseoption2.md: + id: dc6f4c7a0805 + last_write_checksum: sha1:7514282d601f376d5849d189230a5c775dcf2ab6 + pristine_git_object: 837455c190cecf456e01c74a827cf07f66ce4277 docs/models/shared/getatsjobspositiveresponseresult.md: id: 68ba27f1798a last_write_checksum: sha1:443d87f88cd5d638adb6f425206a47f4a5b352da @@ -1284,14 +1324,18 @@ trackedFiles: id: f0123268f4ea last_write_checksum: sha1:57e0d97756ad970244dd7427c8469aabe73c970c pristine_git_object: 251f42b5d0fb5e0aa2e04ec5ab0a12db528257ca + docs/models/shared/getatsnotespositiveresponseauthor.md: + id: d4b1e8d557d2 + last_write_checksum: sha1:a5833317eb0bc86122785eeaf55cd613b6e84c67 + pristine_git_object: 7800cd705280e5cf064bdfde0e693c745b1478d8 docs/models/shared/getatsnotespositiveresponsedata.md: id: 85b1363399c7 last_write_checksum: sha1:47743ee2f203dab96b4a6772dfbb053a7c83ef70 pristine_git_object: bf8903d3bfc22653e7a360dea4e7826302a1744a docs/models/shared/getatsnotespositiveresponseresult.md: id: de91e2021b27 - last_write_checksum: sha1:0ce7846e8998e37767544980ee24507b87e66971 - pristine_git_object: 4382f59743331c5783507dddfcc80fa08a061a6d + last_write_checksum: sha1:5d24733048e3988b02e63800beeb5a056ab2b9b3 + pristine_git_object: 428dbae1632b49bb4df57bbaff751b61b1da59bc docs/models/shared/getatsofferspositiveresponse.md: id: 6406956aacb3 last_write_checksum: sha1:414f2dc2ec44f051054a92f18f0902f22a170e22 @@ -1356,6 +1400,38 @@ trackedFiles: id: b17d5fcf19b6 last_write_checksum: sha1:743867fb21363fe8c800a7773fb002544b81a281 pristine_git_object: 2a101d2ef907dbeb9ad2920d652549877832f750 + docs/models/shared/getatsscorecardspositiveresponse.md: + id: 469958e5619c + last_write_checksum: sha1:d78c54d84287ae4872931118ac0815bd4110f857 + pristine_git_object: 213719f626139fd93c4e73509d0fc21fef86de48 + docs/models/shared/getatsscorecardspositiveresponseanswer1.md: + id: 24d96e46c0e5 + last_write_checksum: sha1:5ce50452bbb007cd76a53384f9d30a93dc7e9107 + pristine_git_object: a276765643aad829744c9567d3b42bc220f25f6d + docs/models/shared/getatsscorecardspositiveresponseanswer2.md: + id: f2f635d7bb7c + last_write_checksum: sha1:12d4f483b226472db6cad5dce1c278a0c20dd78f + pristine_git_object: 1bc17e3fc38c2c95b15aa46172759ac922eabad9 + docs/models/shared/getatsscorecardspositiveresponseauthor.md: + id: aed4c0c88337 + last_write_checksum: sha1:21387918d72fd3079b575c4767d03728011669e2 + pristine_git_object: 312c2131f7919408f88ed237943b6abf29a673ca + docs/models/shared/getatsscorecardspositiveresponsedata.md: + id: 4732dbffa5e8 + last_write_checksum: sha1:22eb4607f83f445800c91f56044813275d560a00 + pristine_git_object: e195ac78373a56ca4e55c57082cec87bc81cc743 + docs/models/shared/getatsscorecardspositiveresponseoption1.md: + id: 793c32c6d5eb + last_write_checksum: sha1:827adca65d3e7e0c4feba1fc3dfafb655a86cef7 + pristine_git_object: 282582c67cd25292744542a0a92b98cb70fc786c + docs/models/shared/getatsscorecardspositiveresponseoption2.md: + id: b9558a8f8aa4 + last_write_checksum: sha1:e764972b8113f06466cc8cf6d8272342a69303a3 + pristine_git_object: 939f577b469c81bcdbe0fd22e71e2f5584ec9db5 + docs/models/shared/getatsscorecardspositiveresponseresult.md: + id: 15b52f60b0e4 + last_write_checksum: sha1:a154faaffec3ca971b36f23ed56f395500ae4126 + pristine_git_object: a3f9440604477edff8f281a02ba778d4a96e6082 docs/models/shared/getatstagspositiveresponse.md: id: 26bfef32cc25 last_write_checksum: sha1:6f029e6cd7ec1c1ae3231cef71b89f3f58bc504a @@ -1676,6 +1752,62 @@ trackedFiles: id: 0bb6bad508c9 last_write_checksum: sha1:9a0ce5f6088aea3d614ee603e99e927ac96b90cc pristine_git_object: 83350b892ac67e38a9169a3b84b251cbf765c789 + docs/models/shared/gethrispayrunspositiveresponse.md: + id: 60581a9b6e68 + last_write_checksum: sha1:2b6dce0640415ca891ee5ad0efafc172bb38cb2b + pristine_git_object: 1f4386edb7c5460490a894592238485a66c1a7c7 + docs/models/shared/gethrispayrunspositiveresponsedata.md: + id: f447c726db8d + last_write_checksum: sha1:8900337cf3c2e8952f07bf4c14db86ca6ab5fd01 + pristine_git_object: 53e59a3396b69fb10d8eef1b9f2dbf93b11b9c1f + docs/models/shared/gethrispayrunspositiveresponsegrosspay.md: + id: 9ceaffa67e82 + last_write_checksum: sha1:118efe2e31ef39229d805cd6066da644ee6e9a1e + pristine_git_object: de53484fc0411a8151f43a7238a5db6b2f1fc811 + docs/models/shared/gethrispayrunspositiveresponsenetpay.md: + id: 87479c7fa1f6 + last_write_checksum: sha1:6cfe6900346db1dd4dd953901ec4031038c4c501 + pristine_git_object: 7ef5a8225b1cd05edc7725fb7c85f7a9138e02e0 + docs/models/shared/gethrispayrunspositiveresponsepaidamount.md: + id: ed90ee461a04 + last_write_checksum: sha1:645c3d68e4f52087ba57eea661dddfeb8f7eaef8 + pristine_git_object: 271ae80134defd10c8e77d7980c6640214de6977 + docs/models/shared/gethrispayrunspositiveresponseresult.md: + id: 33397dc087f0 + last_write_checksum: sha1:a4df3814788f7978852c82382f1977e576de1239 + pristine_git_object: 41340dc6b01be175c5ed97a68a659c4933701af6 + docs/models/shared/gethrispayrunspositiveresponsetotals.md: + id: a8784770e512 + last_write_checksum: sha1:4c2b4016f4471739bc2859a2b9954f61cb327304 + pristine_git_object: 689a12f0ef787af4c2477a06de7d1bb23ed48ef1 + docs/models/shared/gethrispayslipspositiveresponse.md: + id: f12d0e83a513 + last_write_checksum: sha1:b307b57b9699d0e281c6ae889f72189c0ede667f + pristine_git_object: 811201b12edc25ff44bc94c6269c49ed11828cab + docs/models/shared/gethrispayslipspositiveresponsedata.md: + id: c6920fa5b2f4 + last_write_checksum: sha1:29c9985147cbd9a1c7f3937a57169367b911d027 + pristine_git_object: 387dfe3bfe8766168217bc0a5487198f88708aa2 + docs/models/shared/gethrispayslipspositiveresponsegrosspay.md: + id: b3d3f6b83f63 + last_write_checksum: sha1:6665dc3893d4827fb30796ae4c8557bb6eff9b12 + pristine_git_object: 630b2d5e2cbd503b9cdd8c6cc418431878eb3299 + docs/models/shared/gethrispayslipspositiveresponsenetpay.md: + id: 8fb169a061c1 + last_write_checksum: sha1:795b50678beffa2911c7e86f3f17f43d014e8d84 + pristine_git_object: bf11422f0ca556cdf794d39b2e7a325861d01be2 + docs/models/shared/gethrispayslipspositiveresponsepaidamount.md: + id: ce2bac8fbde2 + last_write_checksum: sha1:aaf4ec5cebeaf8461cc5bf7a1467f7d9209e13ec + pristine_git_object: da0ec9916fac5e5624745739a5a0e3daf625cefb + docs/models/shared/gethrispayslipspositiveresponseresult.md: + id: cb23d3e40212 + last_write_checksum: sha1:f172513bff1eac4d072debec466a7a53e54032a1 + pristine_git_object: 17b2f006d430bad466f13d2c6b2ff5c52540d3ce + docs/models/shared/gethrispayslipspositiveresponsetotals.md: + id: 56acf507b023 + last_write_checksum: sha1:f08e4197bb26e3c2daf2e289b426b86e255b42b4 + pristine_git_object: 8fb65161454017abb4115d65791bd70fe8ec78b5 docs/models/shared/gethrisperformancereviewcyclespositiveresponse.md: id: 81677465cbc3 last_write_checksum: sha1:4bfa9352fcfbeb1fcaac486452b6fa86d4820b9d @@ -1980,6 +2112,10 @@ trackedFiles: id: e61ae2149486 last_write_checksum: sha1:eae3c4b4f0def78fde429fde5dbbe89ba6dc5382 pristine_git_object: 481e087da33c312f52ba5f2674a3f3ababa7fc59 + docs/models/shared/integration.md: + id: 604ba07dab9c + last_write_checksum: sha1:410836846f54cf7f6e9c6d723f0a7a0db4dcea48 + pristine_git_object: b32862e9ee954a7c2a2a165f3f0fe715ae8b32cc docs/models/shared/integrationcreatedwebhookpayload.md: id: 93d267d07e46 last_write_checksum: sha1:d80a45290250b3ed462a69f34f8fcf0399a088ad @@ -2046,12 +2182,40 @@ trackedFiles: pristine_git_object: 8c4cd0f5a74e78fff37648b8c20dde4f9d2f68b1 docs/models/shared/integrationtool.md: id: ccbce9847167 - last_write_checksum: sha1:a052db85815ef7036f211ad50e80479955762822 - pristine_git_object: 44860ee81ed9db6b5641a4170b92ad3ecb1bdea2 + last_write_checksum: sha1:917081c5299b06bf08b2d88f164adcd889a05a99 + pristine_git_object: 85889a4309659920294d5749d0fefae456b92c57 docs/models/shared/interview.md: id: d8d282f154af last_write_checksum: sha1:8a02e7bc37075650da6db4da83362416f77a08ac pristine_git_object: 097d63b32dc24018954d67cdc298ce87aad04cb5 + docs/models/shared/issue.md: + id: 36cef9055349 + last_write_checksum: sha1:ef3145474c74fe1162c3b1e4c007e4b0c9816724 + pristine_git_object: a9711916a1d01590c717867b895951fef2c094ca + docs/models/shared/issuestatuschangedwebhookpayload.md: + id: 3231adba52da + last_write_checksum: sha1:13a35d73c6c6a31300be241a3c4054a82620a790 + pristine_git_object: ec3dfd6fdc721e340cd03625d88e7b3f5d65bf67 + docs/models/shared/issuestatuschangedwebhookpayloadcategory.md: + id: c9179102d5ed + last_write_checksum: sha1:6a4c2626fa73d735032217d7b9c707aac899454f + pristine_git_object: b500a495097f42cf1ac8da42ff4ba7c80ecbdab5 + docs/models/shared/issuestatuschangedwebhookpayloaddata.md: + id: 62d83b81ac6e + last_write_checksum: sha1:83696e0e03c88dc2316008bdde902400c5cad44a + pristine_git_object: 1dc0368acfe780290c3b69eb592446fc96d31bd2 + docs/models/shared/issuestatuschangedwebhookpayloadenduser.md: + id: 49205d0f72a3 + last_write_checksum: sha1:2d5be703b9b554762100bd3c2d6b004db101a6fb + pristine_git_object: 90035157b66981fb2786a397423820ee14d7b233 + docs/models/shared/issuestatuschangedwebhookpayloadstatus.md: + id: f29061d06bce + last_write_checksum: sha1:33a4dffddaa23589685bc66c9876ec2413d9487d + pristine_git_object: c86ad195a4550f93abb4867e8341436b4cf8c154 + docs/models/shared/issuestatuschangedwebhookpayloadtype.md: + id: b7cc698a690a + last_write_checksum: sha1:41ae17bcb757201b199ad94f03866d50970652af + pristine_git_object: ed4c3c674b0f3dc1337c9d5a93b4e59d7061617b docs/models/shared/jobposting.md: id: 6511abd9c916 last_write_checksum: sha1:e926c3245145668a5bcdb490d31d623140224896 @@ -2108,6 +2272,10 @@ trackedFiles: id: 9a2fcf27f59b last_write_checksum: sha1:86d395bbbaa9db89c0630f728e5f4bcecb6ffd81 pristine_git_object: 8e5b01e5a206facd8ede1fe12043f133fd5a7aed + docs/models/shared/lineitem.md: + id: efe7f39b44ce + last_write_checksum: sha1:e4d49a81365508ad1bfc4c50156e7aa3f046c81d + pristine_git_object: eb37405fe2ee0723fb9be70ee467d773d52b6f1d docs/models/shared/manager.md: id: 7deca926138a last_write_checksum: sha1:13d68c29bf76656f57a79dedbd26cbd730f08517 @@ -2134,8 +2302,8 @@ trackedFiles: pristine_git_object: 58d1e21a9c1429370493b8f4bb3c25d87fe9b26c docs/models/shared/name.md: id: bfbb7874446d - last_write_checksum: sha1:128614951cb4a9dd41a82c784bfde1a8578a5755 - pristine_git_object: fc6ececaaf7094eb7799202ca54406c78a785de1 + last_write_checksum: sha1:4d499da70e21e0616ddd07f9644f1e7c09933035 + pristine_git_object: 8e720f6f027c6ec355635fa3c53238d92906929e docs/models/shared/offer.md: id: 87c20251f010 last_write_checksum: sha1:cea54f0f3578e3dd864fed7c05b49a432baefcc7 @@ -2144,14 +2312,6 @@ trackedFiles: id: 7a1e6a5f7efc last_write_checksum: sha1:c46329a5b8afe48a406a5f3426538377b4feb00c pristine_git_object: 4918d01c864583de4975286986cb97ccb4d7be49 - docs/models/shared/option1.md: - id: b1c0d4fafcaa - last_write_checksum: sha1:1cfaa39e6d115a624063a4a5f6933e80571a5cbb - pristine_git_object: fd1de1686962f950bc8cbfa4a7d9afc4a5811af3 - docs/models/shared/option2.md: - id: 89ea627b76f5 - last_write_checksum: sha1:4ac59eec58517e729157b3f59f9c16b04b7d02a1 - pristine_git_object: 4bbba1cb4639fb8f41f4db54b3af057d324f16a0 docs/models/shared/orderedoption.md: id: 029084c68e26 last_write_checksum: sha1:bf67d54e61e4bad31a6926faf45b3a3e616da749 @@ -2172,6 +2332,10 @@ trackedFiles: id: 2be18c1f3e37 last_write_checksum: sha1:5716724986f8bd138e5f47760eb8ab34edaf2006 pristine_git_object: 8507b9a205538ec8d1385ab7b940266ec60c0fde + docs/models/shared/payrun.md: + id: 714da35fd6f4 + last_write_checksum: sha1:d903c0cf6de8f2bc9b610142ebdc6c72cb8bf8c5 + pristine_git_object: e03f594197fedfcdcb5db8c89e3ed032de93f3cb docs/models/shared/postatsapplicationsapplicationidattachmentspositiveresponse.md: id: 8ee88dc3d558 last_write_checksum: sha1:0b3f5e96f7babff0a9a9f725ecdead459cde5688 @@ -3844,6 +4008,34 @@ trackedFiles: id: 09f492032e73 last_write_checksum: sha1:40e3339f0cbaef9eaa94e07c988d171f6a7f83c4 pristine_git_object: 93bcaa5b06a708bd015b44813ef27f919e638877 + docs/models/shared/response.md: + id: f676a26c8d09 + last_write_checksum: sha1:3f8a8d2acafe8a5c7929e796b595059ba1cd0e55 + pristine_git_object: 0941e532647189adc77a77f7e285f79eb679f2d9 + docs/models/shared/resultboolean.md: + id: 8cafc867f34e + last_write_checksum: sha1:48e5cb2355db8f66f078f13ee9b181e33132d1ff + pristine_git_object: e7f985a58da5e61a5ef2dedb33a84458dffed6b2 + docs/models/shared/resultdate.md: + id: 9d48bee75924 + last_write_checksum: sha1:288b1e89dd6f7e35c6dcab7ea5ce42ba9c3357ac + pristine_git_object: 70d1b2a910c05b119960257c92705812503aff28 + docs/models/shared/resultmultiselect.md: + id: 80d6403b93e1 + last_write_checksum: sha1:69a20005279dc33e4588c7fb794e20a219fc28ff + pristine_git_object: 70665231a0b72837ab9a7d6967d38c29fcb5a5d6 + docs/models/shared/resultnumber.md: + id: d86debdf1140 + last_write_checksum: sha1:353d6ecfd1b53d08bbbfb7904ce1d60679dc9d35 + pristine_git_object: fb7579ed7ef6de2230e5ac5553abd5c1d2aced81 + docs/models/shared/resultsingleselect.md: + id: 3fb800969865 + last_write_checksum: sha1:5bad631d6a794227c3747890c22b2c3835e1e54e + pristine_git_object: faa8de798f30deae055579d069d9a9a1fd734364 + docs/models/shared/resulttext.md: + id: 2243db5b042b + last_write_checksum: sha1:729d795b69e66775b4209c778082ca7b98f58385 + pristine_git_object: edcbd4ebf7e4db5c90cf1e68e1fb329abade9a8d docs/models/shared/reviewcycle.md: id: 84a3e9b3151c last_write_checksum: sha1:5868b9d5aed82840fd6d38f07e8fb805febcf173 @@ -4256,6 +4448,14 @@ trackedFiles: id: baa7a226b0d8 last_write_checksum: sha1:150f2c629851335006fd1fb7fb6fb7d113698565 pristine_git_object: 7a6bbf2effd894dc3665358f1cf91d824c5bb6c5 + docs/models/webhooks/webhookissuestatuschangedwebhookpayloadrequest.md: + id: 851bfde74af0 + last_write_checksum: sha1:c0b3cc27b87d7bf32e12ebda239322c76f421db2 + pristine_git_object: 1966554479908b40fd1145c3662fb15ed3c47fbb + docs/models/webhooks/webhookissuestatuschangedwebhookpayloadresponse.md: + id: b7554727009f + last_write_checksum: sha1:2bb0f21113ab4a1e79b00d27a7aa8abe7de75da6 + pristine_git_object: 288fac964ff9ce2f8d84142016b4bde1590a7931 docs/models/webhooks/webhooksyncfinishedwebhookpayloadrequest.md: id: e530974fbfeb last_write_checksum: sha1:193c3a7844a4b81ae2c96d83e8dacefbf7945565 @@ -4270,24 +4470,24 @@ trackedFiles: pristine_git_object: 4ec47c439ee6c708a9e50cf19dbd45f2bed38bb3 docs/sdks/ats/README.md: id: 24fafa267f6c - last_write_checksum: sha1:70d2d8042d86a00b69dffe74338c0c821e1d025d - pristine_git_object: f5f813acca485ce3881d5123d0453b351490f311 + last_write_checksum: sha1:039294bbf29e1e7a4ad74b0ecee3434b956daeca + pristine_git_object: 26443d702b7b750a95ffe7194497bb2f96aea213 docs/sdks/connect/README.md: id: 074a4658c86b last_write_checksum: sha1:5a99a354767ff47f77d4e16ae7669346bc3f5851 pristine_git_object: ea63e68d96e99d9fc55cc53805523eb487b62dd7 docs/sdks/general/README.md: id: ce0ada6fa2e1 - last_write_checksum: sha1:f24e71831105dd1e23de3946734976c7ca86f939 - pristine_git_object: 9f5db68ddae27aba81605fd3071647750826f377 + last_write_checksum: sha1:2825f231e1494b476f37089d13672ec97cffc4a7 + pristine_git_object: 90f972cb923b9dccdc2d8868d8038874a6849a43 docs/sdks/hris/README.md: id: 0baa868a038c - last_write_checksum: sha1:87d1167bd44b7353b9ebdedced15be45a85734dc - pristine_git_object: 5083d2ba5fe09066617b232c52d785f38e20c30f + last_write_checksum: sha1:d7726696554d6206d244f855469776314086fe73 + pristine_git_object: 4c94b69d15d1b47b23f346a986b5e178a7e937a1 kombo.gemspec: id: 476dd5dc2d31 - last_write_checksum: sha1:3e0212248e45ac0c29f487bfdc1efe0a60ce36c6 - pristine_git_object: c274d108bf26f15642dda2a69e18a6a6a0963528 + last_write_checksum: sha1:99f3908cd6dc461ebc6ea8d7e431975e6cc475cf + pristine_git_object: bf7689c7182c0808a1a57937f6a60fd0d201cf54 lib/crystalline.rb: id: eca767cf937a last_write_checksum: sha1:b6ec0a2833f58ba9a6f07c9637fdca05e59006d3 @@ -4322,20 +4522,20 @@ trackedFiles: pristine_git_object: 9912b85ec8978cf1e3c6c237464cdc78577448b3 lib/kombo/ats.rb: id: de47f540d26c - last_write_checksum: sha1:ac11f18e3238a9e85a766cbfa5e08e8b426781f3 - pristine_git_object: 1b0666eed5070d696339cbc3f93cf7b4ecbb9698 + last_write_checksum: sha1:7bd7860c8a4e8ca4bb68951350a226ff321ddff0 + pristine_git_object: 4f392e2cc28995f5ee300fac4d28c02dc05b1a27 lib/kombo/connect.rb: id: 915f4913d259 last_write_checksum: sha1:f79d6910c8375497c52ac5bd0c2599833456a253 pristine_git_object: 8f6448cc95e312ec494cf40001850f3214d3b395 lib/kombo/general.rb: id: b25b5d515a10 - last_write_checksum: sha1:a32bfbf47f958b6f919cfe063c116d55175ae44e - pristine_git_object: 37c0c92ef3b3e774c340e17a6e6c388eac2f8868 + last_write_checksum: sha1:4184b6ed927671650fa4e83af88516ab73872e75 + pristine_git_object: 3bb73f501777345c8d58f68adb634777387c6ce7 lib/kombo/hris.rb: id: 13c3ecc1e9af - last_write_checksum: sha1:09e7bc0edc4c456f95923469378d13ba8050a5e1 - pristine_git_object: 4b4003ff33bacc17b8a80f6d33aa9c97b1e33946 + last_write_checksum: sha1:9b9ad19428c1a2d911261f546aa6220b2c5246fe + pristine_git_object: 082b49d4f02f32b36e37d3985e456c66439477f7 lib/kombo/kombo.rb: id: 96579e61b366 last_write_checksum: sha1:0d11030ac13e88ac6121ea3187be42d6b741690f @@ -4382,8 +4582,8 @@ trackedFiles: pristine_git_object: eca362fdd927309a031439a897aab5d45c03d509 lib/kombo/models/operations.rb: id: 0dabe81114b0 - last_write_checksum: sha1:d684a1365a39244a5ea19ce2fea407146a4a6902 - pristine_git_object: d6fb2ca5d5c56b547ed783f54a6f6b2916e7b280 + last_write_checksum: sha1:7c0ceb58d2a660f98de4d840d90120b20aa3c56e + pristine_git_object: c20d4ac3ac974599c6a70dcc215aa569b475163f lib/kombo/models/operations/deleteatscandidatescandidateidtags_request.rb: id: ae79d39fb2e8 last_write_checksum: sha1:ea4eef09846b81f0b867e27126e2a58309fdcf30 @@ -4640,6 +4840,22 @@ trackedFiles: id: 5345626244b1 last_write_checksum: sha1:9103cd404dc37d43ef0603fb80d00082410cc775 pristine_git_object: a2c08189264067b2fcb1775322f1b1b1cb9018c8 + lib/kombo/models/operations/getatsscorecards_request.rb: + id: 7d521147f7d0 + last_write_checksum: sha1:d2fcea7cedbec43cc32f4ca517eb86539d2d226e + pristine_git_object: d3c0d2072b3225a8a52d62a04975e67c68f1e4d4 + lib/kombo/models/operations/getatsscorecards_request.rbi: + id: e228fff4f293 + last_write_checksum: sha1:1f402134ed4fed9d51d199978b012177fa90ae7c + pristine_git_object: 8ed02b5c42933199d9c5c6ae214c9c1a712164d5 + lib/kombo/models/operations/getatsscorecards_response.rb: + id: ccabc7fab8cf + last_write_checksum: sha1:53e023927f15aa817febc467f7d1d3f13e50592f + pristine_git_object: 716893d613622aee7f5702c1e38a1b59ec6242c5 + lib/kombo/models/operations/getatsscorecards_response.rbi: + id: 310b27b9cdf5 + last_write_checksum: sha1:c71c70dcfcbb485fa8f13116b208a0c91da9d930 + pristine_git_object: 4adf8d51ab6fa3d0740c4670e638e2e2369d0b08 lib/kombo/models/operations/getatstags_request.rb: id: c83cda69169a last_write_checksum: sha1:036f6e75fd8148a729307ef38dd9cedbde7cb16f @@ -4840,6 +5056,38 @@ trackedFiles: id: 89f977821dcf last_write_checksum: sha1:fd285b2791de2a14207d4fa98b97e63218264cda pristine_git_object: fb2edd4e16536c7a6095f92b286434c5e20d71bf + lib/kombo/models/operations/gethrispayruns_request.rb: + id: bc32c45248db + last_write_checksum: sha1:bcb3589d63d9c4a062215147c66f99022fbcc535 + pristine_git_object: 1f54aa9d2a46b25c998f99efdee989a2c5e0d0d9 + lib/kombo/models/operations/gethrispayruns_request.rbi: + id: c3abbf720c8c + last_write_checksum: sha1:44f9dcd3583dd1f8cc20f7214e15177cd6343dc3 + pristine_git_object: d9a644b9087035cf4f743805d342035d1495a20d + lib/kombo/models/operations/gethrispayruns_response.rb: + id: ce13a70522d3 + last_write_checksum: sha1:8166222e2eb098ed62905b1d78a7bf1a5adda79e + pristine_git_object: 0de0a206d68dfad15b4af1dd45d401219741dea8 + lib/kombo/models/operations/gethrispayruns_response.rbi: + id: 757cbd315a56 + last_write_checksum: sha1:307f3b2bfe997d761f9feb1a3d92953fc7556dac + pristine_git_object: c28fe0faef395f97535cef79330adc670761c682 + lib/kombo/models/operations/gethrispayslips_request.rb: + id: 36186e5b4cca + last_write_checksum: sha1:28a1a094192379e6d69298ee514150c51b478988 + pristine_git_object: 70caba561bc074093e27b3a5bda8ccf60c7009f4 + lib/kombo/models/operations/gethrispayslips_request.rbi: + id: 67c6b29c9e9a + last_write_checksum: sha1:dd9386cd71cef50559cb5dcee5a03c52c384861f + pristine_git_object: 66f13dcf121073973d052b462bb1630f576d1319 + lib/kombo/models/operations/gethrispayslips_response.rb: + id: 6124ff57ad56 + last_write_checksum: sha1:2da14a9228b64e0a109b42989c9f6cd1da6c83ce + pristine_git_object: 42f190d671de0ea9ec9f85e40606b62d3355eb0b + lib/kombo/models/operations/gethrispayslips_response.rbi: + id: 55ac9da2c850 + last_write_checksum: sha1:08a6e5be46dac12d7681230b07c1c65dd712641e + pristine_git_object: f54638937157cfb7d14c9fee87f2329d8aa66cb6 lib/kombo/models/operations/gethrisperformancereviewcycles_request.rb: id: 400897ebd57d last_write_checksum: sha1:8ec48fa99034e39e48b23d6df94b81d6ded123f4 @@ -5362,8 +5610,8 @@ trackedFiles: pristine_git_object: 5db5c38680c5bd96726d6594f41b5646f4053832 lib/kombo/models/shared.rb: id: 243803bd4275 - last_write_checksum: sha1:8176b76bbd9f98e95703db2adcd8566fe6546ab7 - pristine_git_object: 2491d54ce3e2a515ec79361ebe64be6efc21f151 + last_write_checksum: sha1:e9934cd2f5add6214fe71fee1765d3ff7b1771a8 + pristine_git_object: 1d0d9cf5bdd3db8ac1c1ea67676ccfea4b5478d5 lib/kombo/models/shared/a3innuvanomina.rb: id: 9fd5b4269e9a last_write_checksum: sha1:aa902ab1d9ad08d60bab27183578daae819e2614 @@ -5380,6 +5628,14 @@ trackedFiles: id: b8d5c855a270 last_write_checksum: sha1:74f0f2449e85d438c80b5435bc7755cb003eeb51 pristine_git_object: 8c76e6e838252a4ac3915582894950509d8594e3 + lib/kombo/models/shared/amount.rb: + id: f0727e4cf8a4 + last_write_checksum: sha1:5629630899a0622b5855b500f3c2bd3d09484bc8 + pristine_git_object: 99a72395fcadfa9b89e404f17be89f6c4471feac + lib/kombo/models/shared/amount.rbi: + id: 6a93f14d361c + last_write_checksum: sha1:8124597a0647a586d1bce7ebd435668dc80ea82d + pristine_git_object: 840cf72ef47aa325c657c1bc7136ca5ed9cf3a43 lib/kombo/models/shared/assess_candidate_data.rb: id: e5b6c46f6ff8 last_write_checksum: sha1:027781ef75bf6a71cda045fc325dba730cc8d40e @@ -5524,14 +5780,6 @@ trackedFiles: id: 8969275a3109 last_write_checksum: sha1:2e602c57b4f5e6e79199b3061e5d0691b5389b0e pristine_git_object: a775781771c274b23aa76d4aa211bddd25b7705d - lib/kombo/models/shared/author.rb: - id: b06c0c5d69a1 - last_write_checksum: sha1:4c9642606051b8524b94ca57ba74337860fd289d - pristine_git_object: 5a8c21ae2ea065edf1994d3d011fa50c2676fad5 - lib/kombo/models/shared/author.rbi: - id: c8a172deac2c - last_write_checksum: sha1:721e32bb9b5af40e4f3aabff3875b4006224b86b - pristine_git_object: 86c7a905912cd4f85805d8dc89d1a0dfd5040a27 lib/kombo/models/shared/bank_account.rb: id: cbddc021dd0c last_write_checksum: sha1:fdafc6cff915468b38def6c84443a478c515a1a7 @@ -5564,6 +5812,14 @@ trackedFiles: id: 2c3419edc259 last_write_checksum: sha1:0f2a2c151cf46d9d26da2f99a77ed682881ad229 pristine_git_object: b4983d65cad546eadcaca3c07b1ed563f5c60ee4 + lib/kombo/models/shared/change.rb: + id: 3a5fed03ab0c + last_write_checksum: sha1:54460c69536e66367510bbdd30826cea1fe737f2 + pristine_git_object: 81ef1cbb6a78e407e7d29a3cbf8bac885ddccb8a + lib/kombo/models/shared/change.rbi: + id: da4c06888ddf + last_write_checksum: sha1:be955f523a0105af6fc87336f4d753550d0ffefe + pristine_git_object: cba0b5dd9377b08f305d3812f2d117cd21e20de2 lib/kombo/models/shared/changed_model.rb: id: 7a4adc054e9d last_write_checksum: sha1:a4c8a782486032251bc78844dc8df0b01fee7bc8 @@ -5876,6 +6132,14 @@ trackedFiles: id: 2711172ac212 last_write_checksum: sha1:537fe0146c23cee6d48d6797bee4f4b23db30084 pristine_git_object: 2d46061ae99eee947a9ab66e18094e87c8613e41 + lib/kombo/models/shared/employee.rb: + id: f10cef3d8e91 + last_write_checksum: sha1:fa518fe1ef6db8a101af9c88556b3bc18555df50 + pristine_git_object: e25bbd3348ea0a2ede3ce23d97b4d845022a196f + lib/kombo/models/shared/employee.rbi: + id: 6f4f27747a0c + last_write_checksum: sha1:5f25d440a2af352e00c124b7c76c6982bac2786f + pristine_git_object: 39cdb39dcb0c54b7327be0237b4c0e3d4a59a292 lib/kombo/models/shared/employment.rb: id: ef5d0bd38616 last_write_checksum: sha1:d64635babc48b43092aa7dba733331f980d92b43 @@ -5998,8 +6262,8 @@ trackedFiles: pristine_git_object: 83f35ab41112f2d4d85b7e3645fba6355507cea8 lib/kombo/models/shared/format_multiselect.rb: id: 510fffb59732 - last_write_checksum: sha1:06319fe8d106c04083edefa3c48f1fa9f42f57c6 - pristine_git_object: e1c2a07f067b041705c466a00603ebd53c6079e4 + last_write_checksum: sha1:7bdcf3b6becab98f1981b20c98cd06fd20411423 + pristine_git_object: af0811e835eb1c8a9483a561a8f57583ea5d72cb lib/kombo/models/shared/format_multiselect.rbi: id: 1a6cf3bfe00b last_write_checksum: sha1:c61ef645a1ad8c1926072bb3440b027a36d7e7ef @@ -6014,8 +6278,8 @@ trackedFiles: pristine_git_object: b038c77092ed715242d65f9339dbca761a9ef309 lib/kombo/models/shared/format_singleselect.rb: id: 618bf8a8a186 - last_write_checksum: sha1:8ec1e167ba67980ba3b479267aca3cf3ea9b9602 - pristine_git_object: e6cb7f4b0151342a63b420e5880ec96c924d10c2 + last_write_checksum: sha1:fef7cdb67c7329fd7631b921fde0fb0622cf7153 + pristine_git_object: 823fa35c881a7740d440ac376bd6b4202a88770c lib/kombo/models/shared/format_singleselect.rbi: id: 461c24b1cfb3 last_write_checksum: sha1:99fb8be9ef1ddb33818ebd667eeedc548c166414 @@ -6756,6 +7020,22 @@ trackedFiles: id: 526f04077d6f last_write_checksum: sha1:4a2861f0639c1ad8b76cad8d30446f8ebd8e20a1 pristine_git_object: 516f2424e33b91776755f545891c87078e82cdc2 + lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rb: + id: 9782a3b36ee7 + last_write_checksum: sha1:da8b7993c28f03cb19b67479d31e8ab375d5dd2e + pristine_git_object: 34616ead0fc9f49cbb0e10a48dc4bf28c4d73c32 + lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rbi: + id: aa1f830ae444 + last_write_checksum: sha1:dd59a8224723e134bd4a6b59e8472368a3351212 + pristine_git_object: 04341cc89bb473bc334e938a939ef5c27740949a + lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rb: + id: 125138c89fda + last_write_checksum: sha1:9176e8712b1facc1742ad1450c9bbf25015968fe + pristine_git_object: f8d1a59e2e9e02e18c91c627b44b96dab1e9354b + lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi: + id: 36939104a4f9 + last_write_checksum: sha1:b28ab1a9e61b92bf2225ffcd681b0922e88b4695 + pristine_git_object: 797f56c91c16d7f9470846d84f28d63a6d603cde lib/kombo/models/shared/getatsjobspositiveresponse_result.rb: id: 2ff748632863 last_write_checksum: sha1:dbe49235c165c179815d60d093ff60051c6b095f @@ -6804,6 +7084,14 @@ trackedFiles: id: 41f7e3a31856 last_write_checksum: sha1:8f36df85cc4244f6813cba6b32f48afa65c9fce7 pristine_git_object: 05bedaf9c8be49962661d218fa78f021c59de764 + lib/kombo/models/shared/getatsnotespositiveresponse_author.rb: + id: f1db0452eb0f + last_write_checksum: sha1:f5216bbde374147f97ec0aed2ff999468a160836 + pristine_git_object: 1c5955f3378597338e16d25014f8178e421102a9 + lib/kombo/models/shared/getatsnotespositiveresponse_author.rbi: + id: 43503d2e6c02 + last_write_checksum: sha1:e802fb7770bc7f0d476104edd6bb0f13f90420f6 + pristine_git_object: 6c9bfdbda92e974b81ac6dc5b2e9067dd7a76314 lib/kombo/models/shared/getatsnotespositiveresponse_data.rb: id: d79815dfa5a2 last_write_checksum: sha1:697bd26a6a92dbf59cc3e8e033e2f95f06579ca2 @@ -6814,8 +7102,8 @@ trackedFiles: pristine_git_object: 592a8ddb0c00945f29f21e5ea398f530812288c9 lib/kombo/models/shared/getatsnotespositiveresponse_result.rb: id: 97ae5e2ba975 - last_write_checksum: sha1:bf3a75a71ee1a3ac32ae3935e91b1b331faa9a87 - pristine_git_object: dd0d1299beb639204ee8d0b92fc78fb261b7364d + last_write_checksum: sha1:926555f6a0922efc69731a1617ef9461bf0ecdf5 + pristine_git_object: 51cc74d68f3b4d3beebd5a68922e7e730c8b4e20 lib/kombo/models/shared/getatsnotespositiveresponse_result.rbi: id: 074e0548da43 last_write_checksum: sha1:56e86efcc15bbbb8c850d6870d4bc2d89d49a611 @@ -6948,6 +7236,70 @@ trackedFiles: id: 911237f7ade3 last_write_checksum: sha1:3440a0f15e54b997c7f06773ff3878199a25219a pristine_git_object: cec5e2964c8db8d18e1654bce9a89de6a42b0f3f + lib/kombo/models/shared/getatsscorecardspositiveresponse.rb: + id: 85972045eee2 + last_write_checksum: sha1:f52384451e8aa0c6e5677c24e093fb4d933cb320 + pristine_git_object: 139f863e397820464d61edd16407bfdbe3f6402c + lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi: + id: eeb79f036573 + last_write_checksum: sha1:ee9bcd46fc84aa3ae86a2bef36db79d731143259 + pristine_git_object: 247c15256b1874d3ba8d5039c49b352ce18cf69d + lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb: + id: 29696ae6d8cc + last_write_checksum: sha1:ae35c76e863a8d37c390424cf7157b9af2a84138 + pristine_git_object: 0f2b3c0a62229fa0c86944f96105409fc5c88efb + lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi: + id: c9fa0b3a2506 + last_write_checksum: sha1:90d9cc07376de411c826ae3931a2d731ad3889dc + pristine_git_object: ea3df3540453769d545d63418502eb454cca59f1 + lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb: + id: ad63d00f7fa0 + last_write_checksum: sha1:d6213d081f574f285e83917fe82f2aeae5ec4bc0 + pristine_git_object: e143b22f796d3a3fb9a34873bf64ed57afc7c5ae + lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi: + id: 80477d75b721 + last_write_checksum: sha1:e9044622f09f2d4081c959b401b6b65f534bd7c7 + pristine_git_object: da2fcd5582612e6bc047b162f381d73bab749c25 + lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb: + id: 07cc89c75c92 + last_write_checksum: sha1:896332abcb9b8feaa70e576c597c0a7c1d77b08f + pristine_git_object: f78c5515cbaca3a5a2d5b20e8a6e044c71adf372 + lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi: + id: bb534cc1995f + last_write_checksum: sha1:3cd2d365bd144d238dd8bd500d86d8d3b9f0a2dc + pristine_git_object: bc119b549f0ff0e24da9d7ac2a8f4e622aef359b + lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb: + id: 66f3d348bb14 + last_write_checksum: sha1:0e7004e1b00916145b3694fc3963210e4ab244e1 + pristine_git_object: 3d153f25352091a0aca653c9d2ee90823cdce929 + lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi: + id: 2db928adb152 + last_write_checksum: sha1:ad47c7999b97bd87471a574deac4d53e42ad11ac + pristine_git_object: 9c7c347692f2968f8356f3b2d5616895c3e7ac15 + lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb: + id: dec5130064b0 + last_write_checksum: sha1:b5055fc65398283f820ae72f55927c8195e6b4c2 + pristine_git_object: d9fea1195da70f45a0154a29dc80cd832830cb5c + lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi: + id: 5c22a5cddeee + last_write_checksum: sha1:b51741caaac486eb11c9c6468084695998ec4277 + pristine_git_object: 0c1d1b3677f8808e2853d428235737a2f15ae1b1 + lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb: + id: 0e3a1f4e8a17 + last_write_checksum: sha1:60c349dc8ee9cee6862f6d9c5a468c61b197d650 + pristine_git_object: 699b7853e4913d3494469b6a478b0566f0ab1597 + lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi: + id: 5abf15cff53e + last_write_checksum: sha1:422a6019dd6c0696bd48d9e26faca052119d778a + pristine_git_object: 5aa136f43a186eba23dde9534e94f26318f07016 + lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb: + id: 3aae323cfe36 + last_write_checksum: sha1:3b90c60e925b34428dd4b8c5772ad887637b20fd + pristine_git_object: 7a93e85b8d6b33eed345b2350b339491843bd637 + lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi: + id: 31f08cd1eded + last_write_checksum: sha1:a530a589031fcfdb419704830f6232c6da581ae7 + pristine_git_object: 0cba34d7ce388fb03f8bfe5f0d6d2bfcd1c1394e lib/kombo/models/shared/getatstagspositiveresponse.rb: id: 6ca4077b1bb4 last_write_checksum: sha1:c83218636aa8d6887e36d68f4de46e75cf252a0f @@ -7588,6 +7940,118 @@ trackedFiles: id: 2589044d742a last_write_checksum: sha1:f1c1f5a56ca832bed8a2ed193f1f4d9b03b8d54b pristine_git_object: dcf4902b642052f1b5bf6327cf0d00a360f15414 + lib/kombo/models/shared/gethrispayrunspositiveresponse.rb: + id: f546f2138289 + last_write_checksum: sha1:0cfff769bceb2405bdc90235e851850c30a4b35a + pristine_git_object: e9c184be73f775ad25440d0fae1c42e12e749353 + lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi: + id: 2ad9fa887010 + last_write_checksum: sha1:d37b0fa4a3a4e39b99019b35e812956aa44bfcea + pristine_git_object: 85a1cec31392da65b8c9a15d34c292a745f498fa + lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb: + id: dc8414399316 + last_write_checksum: sha1:a5f0cdad80388e7c85d66a1dd62043621b78cd5b + pristine_git_object: a94bdede08f7b4c3597d6324aea8c0b4f3e5693d + lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi: + id: 8c034fbe7653 + last_write_checksum: sha1:34e73530fef52c1e62c81423d7aa81adeab7d4e5 + pristine_git_object: 7ac24e7ce449fd3c775458967e70485593b20250 + lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb: + id: b150c0cf10ad + last_write_checksum: sha1:c225922b0ad42c51d38557a9d90db747d280886a + pristine_git_object: 0f37bdc7dd37d301845504308cde4220b9fdb551 + lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi: + id: 974311e7baaa + last_write_checksum: sha1:ba06af938d87a8298cb716115cad84eb03ac07c7 + pristine_git_object: f184bed1592ceac6a23d9141323739cb69250680 + lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb: + id: c5896fd9d73b + last_write_checksum: sha1:581524d60ca2e2f78b03f5f90c46925c3e5e04b3 + pristine_git_object: b31ac3dd680e8fa12bd951c70682b593c0790b2e + lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi: + id: d8715f43b03d + last_write_checksum: sha1:8f3cfb9bdf4d3cd8108604b1bbf8a05e2fafb28d + pristine_git_object: 6bbab816ff459e68831b17e2b6c7a933966edc4f + lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb: + id: 4f783e610f4b + last_write_checksum: sha1:9ddc76c2ca7dfb005424cdc120cba0db01cad291 + pristine_git_object: 1256fd7dd81b837fd2ebd2c19b9fee6726381d14 + lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi: + id: af7554ba3b9d + last_write_checksum: sha1:8cbb14d707a046fe1362c3ace2e99b24fd074fe4 + pristine_git_object: 7d403d9304dd4aaef8927725e2e19174eed9aab6 + lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb: + id: 8943ef037c10 + last_write_checksum: sha1:77aaab511ec98df059a4522869044a386a1b46ec + pristine_git_object: 9c9f470615a9aa1100dfc6c18756358e1941563a + lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi: + id: f61ccfe9d97a + last_write_checksum: sha1:d99a277c88b8ca335a1170f9984839d21c53d5ad + pristine_git_object: 0d000994d5e47e59f509ac92e7094244d5b97f1e + lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb: + id: d6812f8c622c + last_write_checksum: sha1:83b7d47c24c7a2d79d17c7b7ff53291d86236dcd + pristine_git_object: 2207f7531172de76fe3d85e8eac9bc8a76ddc702 + lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi: + id: 5889204dc0ee + last_write_checksum: sha1:a3c328b3de4f701a538179fe67e7340033fdb73c + pristine_git_object: 67ffb0b5819c74bb53b0ff2c6989f57911016f83 + lib/kombo/models/shared/gethrispayslipspositiveresponse.rb: + id: cbda330ed2eb + last_write_checksum: sha1:f252f24698869676e945bb26cf639992fb0fa2e3 + pristine_git_object: 72e53ba7719ba13c837bc27b4dbb79b124e75acd + lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi: + id: 69bedc101d6f + last_write_checksum: sha1:ad193a35cfb382f72e964ab4cf159c4331f4b02c + pristine_git_object: a34c2e9fc91a12bab8bdb77c0f9aa0677f03dacd + lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb: + id: 42a18fb3839e + last_write_checksum: sha1:10aca9e7cdfb307d1ac6eb47954c5ed51d12d22a + pristine_git_object: d1647d30a4f342c7360ad7664d86e1ac7602f60b + lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi: + id: 77e6d45221b2 + last_write_checksum: sha1:d1549be2d3a46a9c502ffe13d681900b1a246523 + pristine_git_object: f8a8b58fe253b682f7a1a365ac9e8723211c588b + lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb: + id: 5693d3b4b05d + last_write_checksum: sha1:fb8604bb92bbab57557725cce7c531a0f35ceab7 + pristine_git_object: fa43668a2e2f7ffb89055d67ddbf134a0124ef0e + lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi: + id: 577fe9d26931 + last_write_checksum: sha1:62f0eb2dec0b17c3c694bbb333d165c3fa51b4b5 + pristine_git_object: 3f8bea683dda221fe7044570c0e10490647a6352 + lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb: + id: 445002e22327 + last_write_checksum: sha1:158f2ad449cd4066d8bdc6858b8927dcba6b1b8e + pristine_git_object: d4ddf1f8230286df78273b18e51832e502a279fb + lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi: + id: e8a6e10c8b83 + last_write_checksum: sha1:c6996b1b907bb784d9dc6f2b7c45695dc311b180 + pristine_git_object: 02f43a6ec44e8b9578473d128a74085c51d07b78 + lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb: + id: a8b6de257171 + last_write_checksum: sha1:16797d02faf2523d1bbf961393ce596fcf8b8cbb + pristine_git_object: e08bfeb119d1076a6385edc5d18a7e7d33a0a06a + lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi: + id: b0959bb564f7 + last_write_checksum: sha1:37d3efa5069f1920ee1da996ee5bf52823c4f005 + pristine_git_object: 9888befc26cdf52d178211e7972c4ae4502d6bf1 + lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb: + id: 10d82eb9b3c2 + last_write_checksum: sha1:22c569662b29addd50e0b91f9affb5f5d505ffd5 + pristine_git_object: 71eb28eb61e448197f16bcc7b32dd117e71613c9 + lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi: + id: 85d87ba69945 + last_write_checksum: sha1:5b4852427b445bd191bd7c151e8268f06079d0d1 + pristine_git_object: 3372b5b27f2e5a9ea033c906abe3cf3eb356e83a + lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb: + id: 9cc477cf19a6 + last_write_checksum: sha1:ccd714e9f482f8eb4736917c64869181c6c68869 + pristine_git_object: 79d7e5616c2d890515b5de453fb274dfae40eccf + lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi: + id: 028d42d79692 + last_write_checksum: sha1:f05f09e9e5e8d62fd5cd161f5dadb35eeaaf87ba + pristine_git_object: d28587b38dfe0d1316cdc674ce76236f948de391 lib/kombo/models/shared/gethrisperformancereviewcyclespositiveresponse.rb: id: 2c6b90cfa07c last_write_checksum: sha1:249a66d23f029a1257b02a0582852d6b7f516551 @@ -8196,10 +8660,18 @@ trackedFiles: id: b710eb7b00e3 last_write_checksum: sha1:6a91f5236d6aa41ad4b1692c23975db081eb9cde pristine_git_object: 09fbe2242df9ce143c5ddd53845afba6ae054e6f + lib/kombo/models/shared/integration.rb: + id: aa454edd457b + last_write_checksum: sha1:181d31cad269139a9cc66163555640382a77a3e5 + pristine_git_object: 4440b49a4841a082b60ee027f763aa40226af8e7 + lib/kombo/models/shared/integration.rbi: + id: da2e1ac8672b + last_write_checksum: sha1:61df06e45051e698c77ad3d9b3270caaccc2fd2e + pristine_git_object: 7c6eadde2ce1af02c0bababbdc1ee5e3b20966c1 lib/kombo/models/shared/integration_tool.rb: id: ec252bdaa1fd - last_write_checksum: sha1:7c59ab880d07bdda1d02d94a9253af3952b40614 - pristine_git_object: e6a87d46822bc81c5cb6269f261c4c6181888e9f + last_write_checksum: sha1:63fbcb987d082091e0cbe2e1d7b30d36c475b3bf + pristine_git_object: 664d67e3cc131c06653a4b4011928038bd15c948 lib/kombo/models/shared/integration_tool.rbi: id: fecc74b6f738 last_write_checksum: sha1:c0987391d8322f5bca901ba6cc47a8c2bac6b195 @@ -8340,6 +8812,62 @@ trackedFiles: id: a9c533ec28d1 last_write_checksum: sha1:ec7cde4be7559a90d8e87ad1033e0010ee584304 pristine_git_object: fd49aa05deccde3e020a0371b7d4171e4204dde0 + lib/kombo/models/shared/issue.rb: + id: 75adbd6c1f13 + last_write_checksum: sha1:003641e7c94b463cc35899235e2dbe7b094c5a09 + pristine_git_object: 64d25d3678d4fe1c66e30908af7806b1d302a538 + lib/kombo/models/shared/issue.rbi: + id: 70415e027a24 + last_write_checksum: sha1:b2d2bceb892bee4ac606b1d0561e05cc25dfd129 + pristine_git_object: 04b1e24dcbbee3aedb5bb8dd515052357ea70552 + lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb: + id: 4bcf19fe8676 + last_write_checksum: sha1:b1d5c09949055e234ec4178a93a374ed7e235f77 + pristine_git_object: eb83d9a20b9d32dbef9f797cbb7d5226513dc0a2 + lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi: + id: d893302b2181 + last_write_checksum: sha1:851c6b499045594c89319d63a572c84ca454e8d6 + pristine_git_object: bc34ab0748d82043236371683014c181690c1116 + lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb: + id: 4b139ce2cd41 + last_write_checksum: sha1:d2a0b4f6655748712e66f7d34aa3884812868ac7 + pristine_git_object: 25f013ab86df74269ea13b9607f5e8bce2c7c8eb + lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi: + id: c33a638eed55 + last_write_checksum: sha1:5bd64df0f14cb6f14fb9f4cccb444dcddade12d5 + pristine_git_object: 23415b036cb3880c78f2a3223f6ddc95da8b9c88 + lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb: + id: 2b65b5e72c56 + last_write_checksum: sha1:21cdbd7dc94a7a6c1d26dbb6653b41e967a5164b + pristine_git_object: 0ccbbca60d44610ad4305b96214e878c78543643 + lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi: + id: aeea86e0097b + last_write_checksum: sha1:38158159f1945e1be0592625de5d772629ff2a3d + pristine_git_object: eb47a836b86c63924879432d21daa767406470f8 + lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb: + id: ad614bf86936 + last_write_checksum: sha1:c98f9134846908863e0b35eeb46459277c630311 + pristine_git_object: 11e507471c13b6f92588622842a8e1fb131e35bf + lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi: + id: 96f0d4d3e396 + last_write_checksum: sha1:dedc19ae8543c626e972ff33fa87e7241bc16a99 + pristine_git_object: 70cdc4de0aba6d03ce65995c20d3ca883375ea2f + lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb: + id: ad8a9fe66c6f + last_write_checksum: sha1:cf6b3b0d858f720438e9c5dae8a2cb459c1bd9be + pristine_git_object: 4e54f49b033622a436ef7188b812d0266f8b7cbe + lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi: + id: 06708224287c + last_write_checksum: sha1:19cb43c3baeff415b9d710f8d375961d11299eff + pristine_git_object: 33ecab020fdb056195ab2d12fcf2b6fbc4b71697 + lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb: + id: 1894ff9c8dbb + last_write_checksum: sha1:2a541eaf78524a9fde769669477a9fa2a7d13525 + pristine_git_object: fc7adc7a341cf8b2ee39383b5825570b3a20738f + lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi: + id: 403dc37083c3 + last_write_checksum: sha1:0ac6e31f22463876e8c66184112a28c28d1557b3 + pristine_git_object: c400270c87b565924eb78ecd1cac55419e0883c3 lib/kombo/models/shared/job_posting.rb: id: 460939264c8a last_write_checksum: sha1:a75ca65e90ef726ddb74893ac36044cd07221bb0 @@ -8452,6 +8980,14 @@ trackedFiles: id: 4643ed9bf502 last_write_checksum: sha1:44a083a97eb38861182af1021fa331980a840383 pristine_git_object: 02f2c4a665214704af13d2d8b9c689a4aa720760 + lib/kombo/models/shared/line_item.rb: + id: dd2f2b247b12 + last_write_checksum: sha1:d4a920dc3d80e2c3c6e6b5ce0b0cb71d0494c3ff + pristine_git_object: 306106a24b6d1a3e078caf570f6da85d4ff89a2c + lib/kombo/models/shared/line_item.rbi: + id: 60122ca93bd6 + last_write_checksum: sha1:1659185c41b67f22cf4fadb0c5974cb1876cfc4a + pristine_git_object: a541ce7c15df28c00ef2c3b7c4752378c25c2de2 lib/kombo/models/shared/manager.rb: id: 92cfbed23c6c last_write_checksum: sha1:7336126d931d9e1cd6d9f5a3d463b124cf1767ac @@ -8502,8 +9038,8 @@ trackedFiles: pristine_git_object: a5023fa2db093e48596a7e2decb2f966f07909e7 lib/kombo/models/shared/name.rb: id: 70047deb719d - last_write_checksum: sha1:5f31d63ec314b05d9218ab400e5db13810402e1e - pristine_git_object: 868a98d550ac43636ed41fb8c9edc6330854c039 + last_write_checksum: sha1:b2ad716ec783b54ecb442f70ef724768ffcfb67f + pristine_git_object: 93e5606aa1c4ffd484f4a9dd3d3e7f4a04ea439f lib/kombo/models/shared/name.rbi: id: 42b088602335 last_write_checksum: sha1:269e15d7d41493ba578d91bbf5cc64adc55f775c @@ -8524,22 +9060,6 @@ trackedFiles: id: e5efbbe170b8 last_write_checksum: sha1:04a8d930d4c163909dbd65894d35db043219f25e pristine_git_object: dbbe261f534fd89533fb5da1e96f5fc0d5c2dba2 - lib/kombo/models/shared/option_1.rb: - id: 971e7694b656 - last_write_checksum: sha1:5c62c9318fde7b550b299d48f7839ab7f6959483 - pristine_git_object: 07d31a9d5325dc51373e55873adefd6ba27ec2d6 - lib/kombo/models/shared/option_1.rbi: - id: 08283edda6af - last_write_checksum: sha1:895c8bb96202f74dd17ae6eb83cf8af3781d7a6e - pristine_git_object: eb27c981d733c5235456795362450f3dfacc44c2 - lib/kombo/models/shared/option_2.rb: - id: 79753b6f6020 - last_write_checksum: sha1:daf7abac9e5f44dfbf449aaec172b260e9eca6cf - pristine_git_object: ebdc9b2e325584f4f0394fd7fd9e9683aefe8d82 - lib/kombo/models/shared/option_2.rbi: - id: 8066f813dd80 - last_write_checksum: sha1:86dd977ad45fd2eb612b335d91c25d01b106ec63 - pristine_git_object: 887fbc4cebea662b412a0a0fb46eeb1512a281be lib/kombo/models/shared/ordered_option.rb: id: c7439badcc03 last_write_checksum: sha1:c5d4e581ae676d6a8e4f6c61e4f9820259c37b17 @@ -8580,6 +9100,14 @@ trackedFiles: id: 6fad26863846 last_write_checksum: sha1:3bbc60066dd34fe11b60f9880890e64b19ac7ece pristine_git_object: 84da9a6748ff293e1f33e290e1b9d309bd5f0956 + lib/kombo/models/shared/pay_run.rb: + id: de590901a17f + last_write_checksum: sha1:ac6ee79a13a4444fe3760e8971835bd5bae7b142 + pristine_git_object: d47cd3c09c77c573ee679ef69c8e50c4ae22c7d5 + lib/kombo/models/shared/pay_run.rbi: + id: 495b1aa5ffed + last_write_checksum: sha1:d5be27fffc2fc028f48ffdb77f4ff8b2e4b65bdb + pristine_git_object: 9c30f7cbd21a332750146110f073b0346cd9b804 lib/kombo/models/shared/postatsapplicationsapplicationidattachmentspositiveresponse.rb: id: 531375d5ce01 last_write_checksum: sha1:90c6213fd653e86e14cffe2a014f9159d375ad0d @@ -11924,6 +12452,62 @@ trackedFiles: id: f696ae07d8b6 last_write_checksum: sha1:ea1493786e7c243fdc0f1655c423165645dbc860 pristine_git_object: 92429acc831791c7f3a633527169f795819fe056 + lib/kombo/models/shared/response.rb: + id: 54ea37d8c74a + last_write_checksum: sha1:ffedb11ad6a4bc1353f2fa61cf0679d233bae01e + pristine_git_object: db2866f236daacb7f7c150029ebd3fb57284d174 + lib/kombo/models/shared/response.rbi: + id: 62922e88945e + last_write_checksum: sha1:765310b4ef40034034f5c8ba2fc36cc2c68b2d96 + pristine_git_object: ab168fdece2a7eb07ed05003e430d6b46f3b3154 + lib/kombo/models/shared/result_boolean.rb: + id: e740da154726 + last_write_checksum: sha1:0635a2fb6f0244446cd37f4cd626c1d8f0d994eb + pristine_git_object: 5da2e8b4ae48e9fa05f6bec5db25fb5b9ddeb5b6 + lib/kombo/models/shared/result_boolean.rbi: + id: 48820288d861 + last_write_checksum: sha1:129f231a120a1d232a6f884cbc7288fd6fc3ad8a + pristine_git_object: 8aa3985e04366f22e84532e47d5c57997dc1affe + lib/kombo/models/shared/result_date.rb: + id: cde640aebc0a + last_write_checksum: sha1:aa0ec920e0a4d32d65f29457dd95f99e1af6aa33 + pristine_git_object: 472a26b96d1a1c5522073033b5b068399d19b878 + lib/kombo/models/shared/result_date.rbi: + id: 0c53ecb9e619 + last_write_checksum: sha1:3e847cebfb54a607f89d8de6861453b5b8c7f295 + pristine_git_object: 6471f3965ce5e80a98876b72f3cc706ebe4668d0 + lib/kombo/models/shared/result_multiselect.rb: + id: 83c8424f2617 + last_write_checksum: sha1:6670489ef024433d62d40f09b4a899909dd8a185 + pristine_git_object: 2e1779a8e98424512b890c2f115a2de2542da446 + lib/kombo/models/shared/result_multiselect.rbi: + id: a29ae43873c3 + last_write_checksum: sha1:1fe25a0ff98428ca4532de079aaa229937f9a561 + pristine_git_object: 0cd056a714ef36752df4e4b86fd1776317c5e205 + lib/kombo/models/shared/result_number.rb: + id: 5c5abed59c09 + last_write_checksum: sha1:f42e6d794e8375ae8ed7647f32f5ab5a0cfec4a0 + pristine_git_object: 9b843a2ad69376917e3053b0526e593aa083d383 + lib/kombo/models/shared/result_number.rbi: + id: ac2c4ee5284a + last_write_checksum: sha1:71bf4c0251ae51fe69a0c8f014e49d38b8a0e568 + pristine_git_object: df1a578e999603f6ded1ce6e8edde59b7e60d336 + lib/kombo/models/shared/result_singleselect.rb: + id: 5cddd28ef432 + last_write_checksum: sha1:38a36087c0058bd4ae1c4c47f0db60cbcfd375ff + pristine_git_object: c9354fa8ea315a3948d547b9427b5ec0bc26a5ad + lib/kombo/models/shared/result_singleselect.rbi: + id: ee74530ff058 + last_write_checksum: sha1:59ffb35836f07fbcb92e36d8fbc8cbb7ecdca224 + pristine_git_object: b283d2e808bbfd190da70de15a4f5fb7dd392b58 + lib/kombo/models/shared/result_text.rb: + id: 827bd3172a08 + last_write_checksum: sha1:a7042b6351a888a34c0527cd62cac69d3dd95ff0 + pristine_git_object: e336163a9f89c44d7d5958dff50ff587a1c9caf5 + lib/kombo/models/shared/result_text.rbi: + id: 3cb44c745e74 + last_write_checksum: sha1:ab5c473fcd9c956d55bad92eb44f29a574eda9a2 + pristine_git_object: f4e1251913dd6b8ae18c5a11ec70acd394270216 lib/kombo/models/shared/review_cycle.rb: id: a61837747120 last_write_checksum: sha1:2ea7caee66849a13ba4a95406c0234eb79a68e1e @@ -12638,8 +13222,8 @@ trackedFiles: pristine_git_object: 9668837ebdd5c4079224577f3416b97f82ae6b1b lib/kombo/models/webhooks.rb: id: 5f844697b1e0 - last_write_checksum: sha1:5880474df2975de402e7ff4414a8836c1e2209e8 - pristine_git_object: 5a64d87cf925d992b53c70c705130c346dda9e67 + last_write_checksum: sha1:8f7e9bf898c67055849d88c3bb3983a23958b2ee + pristine_git_object: 5393a1250ba6dfa56a48be3f39adace6df7d51b3 lib/kombo/models/webhooks/webhookassessmentorderreceivedwebhookpayload_request.rb: id: 44b408583b7a last_write_checksum: sha1:89987c93a61cefbd72350ec09c9122042d5a94b3 @@ -12752,6 +13336,22 @@ trackedFiles: id: 4046a6f94acd last_write_checksum: sha1:9c234f336b01ea7225b561866145d05bdcbff076 pristine_git_object: 8f6cf16fe4c683e3bc6cd8bbf66d903eadd186d3 + lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb: + id: c71a613470dc + last_write_checksum: sha1:abb1b46b94cab8a60561da99e6839829f18adb68 + pristine_git_object: 077de3ecdfbeb7ea44f5d0e1cb59483e3bd1957c + lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi: + id: aaa4237571da + last_write_checksum: sha1:64e74d023e39140008fe91c888c568890a832157 + pristine_git_object: db4781cdfcb4c91415684b9587e44db58d88a2c7 + lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb: + id: 0cbe6c3a86b9 + last_write_checksum: sha1:c2576a1b274a00176a43d5f3911068dc6fe2fc03 + pristine_git_object: ca87ce9069fc8a286715aece163ae70826d17ce9 + lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi: + id: 88964d60e9ad + last_write_checksum: sha1:7cf12852fe8f4f2fe62a224fde3c523221210279 + pristine_git_object: 706998024e1b7094f443c48ce602a8057b09a47a lib/kombo/models/webhooks/webhooksyncfinishedwebhookpayload_request.rb: id: ce36a356041d last_write_checksum: sha1:9c571cfb7c5b1823c50da3224caef1c2f1740785 @@ -12778,8 +13378,8 @@ trackedFiles: pristine_git_object: cc0af5d0bc79da7ef48343408db80c1436d75ef9 lib/kombo/sdkconfiguration.rb: id: 576e58b2ad72 - last_write_checksum: sha1:35cee76081d3e09e673ed7250b6077411413d008 - pristine_git_object: fbef79639a1d4518a9085c5515089216c87061d3 + last_write_checksum: sha1:00f7183f8d3a3c9a83324e7de03424c8a7669813 + pristine_git_object: c4d9f1d3665718a10566369f70153c021445d5a6 lib/kombo/sdkconfiguration.rbi: id: d1d4becc3542 last_write_checksum: sha1:d6a79e38280d703264428e6158d6d796ba61d63f @@ -12814,8 +13414,8 @@ trackedFiles: pristine_git_object: fd4e54069a98a196bee92b09c27748fa92f6b7ce lib/kombo/utils/utils.rb: id: 54587b154c90 - last_write_checksum: sha1:9906bb8068dee861a0927c0ae6c9e5fa13da76d6 - pristine_git_object: e68aadd47a0475bef299b6d15784bb7bd76d8f76 + last_write_checksum: sha1:d22a18e690eadab310a613e01e64ce1528909260 + pristine_git_object: 7e5c81f560472062a45b0eff6d35bda7aa09622a sorbet/config: id: 59392da43f94 last_write_checksum: sha1:d02b32628dad70edc5929a9b9801d5e2dca15d40 @@ -15429,5 +16029,146 @@ examples: responses: default: application/json: {"status": "error", "error": {"code": null, "title": null, "message": "The message is always in the response.", "log_url": null}} + GetHrisPayRuns: + speakeasy-default-get-hris-pay-runs: + 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": "HdyE3KNfcbNzXFRqwW1Wh2eP", "remote_id": "300000092871122", "start_date": "2026-01-01T00:00:00Z", "end_date": "2026-01-13T00:00:00Z", "legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu", "changed_at": "2026-01-10T12:32:01Z", "remote_deleted_at": null, "totals": {"gross_pay": {"currency": "USD", "value": 435300}, "net_pay": {"currency": "USD", "value": 362300}, "paid_amount": {"currency": "USD", "value": 306300.26}}}]}} + default: + application/json: {"status": "error", "error": {"code": "HRIS.EMPLOYEE_ALREADY_EXISTS", "title": "", "message": "", "log_url": "https://bleak-creature.name/"}} + 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": "HdyE3KNfcbNzXFRqwW1Wh2eP", "remote_id": "300000092871122", "start_date": "2026-01-01T00:00:00Z", "end_date": "2026-01-13T00:00:00Z", "legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu", "changed_at": "2026-01-10T12:32:01Z", "remote_deleted_at": null, "totals": {"gross_pay": {"currency": "USD", "value": 435300}, "net_pay": {"currency": "USD", "value": 362300}, "paid_amount": {"currency": "USD", "value": 306300.26}}}]}} + 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}} + GetHrisPayslips: + speakeasy-default-get-hris-payslips: + 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": "E4q8YceHEtPWeGwBAEcd9xPs", "remote_id": "300000331094861", "changed_at": "2026-01-10T12:32:01Z", "remote_deleted_at": null, "totals": {"gross_pay": {"currency": "USD", "value": 2207.75}, "net_pay": {"currency": "USD", "value": 1730.35}, "paid_amount": {"currency": "USD", "value": 1730.35}}, "employee": {"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "display_full_name": "John Doe", "work_email": "john.doe@acme.com", "remote_deleted_at": null}, "pay_run": {"id": "HdyE3KNfcbNzXFRqwW1Wh2eP", "remote_id": "300000092871122", "start_date": "2026-01-01T00:00:00Z", "end_date": "2026-01-13T00:00:00Z", "legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu"}, "line_items": [{"id": "8TMenmF8QVyP1EqagstHhsPG", "remote_id": "300000331094861:REGULAR_SALARY", "name": "Regular Salary", "amount": {"currency": "USD", "value": 2207.75}}, {"id": "CELfyfzuHs6Dz1MDPdoSCY3U", "remote_id": "300000331094861:FIT_WITHHELD", "name": "FIT Withheld", "amount": {"currency": "USD", "value": 235.94}}, {"id": "H1gPqyuZTK3y75NRxe4QZ3u7", "remote_id": "300000331094861:SOCIAL_SECURITY_EMPLOYEE_WITHHELD", "name": "Social Security Employee Withheld", "amount": {"currency": "USD", "value": 136.88}}, {"id": "HEnJXik92Qqph5SX4NtK6NRM", "remote_id": "300000331094861:MEDICARE_EMPLOYEE_WITHHELD", "name": "Medicare Employee Withheld", "amount": {"currency": "USD", "value": 32.01}}, {"id": "Ho16emGY5zVYeEc2nN9CWeKv", "remote_id": "300000331094861:SIT_WITHHELD_CA", "name": "SIT Withheld (CA)", "amount": {"currency": "USD", "value": 71.47}}, {"id": "9D24qXFEp1pSQ2Y3jaRFSTBQ", "remote_id": "300000331094861:VPDI_EMPLOYEE_WITHHELD_CA", "name": "VPDI Employee Withheld (CA)", "amount": {"currency": "USD", "value": 1.1}}]}]}} + default: + application/json: {"status": "error", "error": {"code": "HRIS.EMPLOYEE_ALREADY_EXISTS", "title": "", "message": "", "log_url": "https://shiny-deck.org"}} + example1: + parameters: + query: + page_size: 100 + include_deleted: false + ignore_unsupported_filters: false + header: + X-Integration-Id: "workday:HWUTwvyx2wLoSUHphiWVrp28" + responses: + "200": + application/json: {"status": "success", "data": {"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=", "results": [{"id": "E4q8YceHEtPWeGwBAEcd9xPs", "remote_id": "300000331094861", "changed_at": "2026-01-10T12:32:01Z", "remote_deleted_at": null, "totals": {"gross_pay": {"currency": "USD", "value": 2207.75}, "net_pay": {"currency": "USD", "value": 1730.35}, "paid_amount": {"currency": "USD", "value": 1730.35}}, "employee": {"id": "26vafvWSRmbhNcxJYqjCzuJg", "remote_id": "32", "first_name": "John", "last_name": "Doe", "display_full_name": "John Doe", "work_email": "john.doe@acme.com", "remote_deleted_at": null}, "pay_run": {"id": "HdyE3KNfcbNzXFRqwW1Wh2eP", "remote_id": "300000092871122", "start_date": "2026-01-01T00:00:00Z", "end_date": "2026-01-13T00:00:00Z", "legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu"}, "line_items": [{"id": "8TMenmF8QVyP1EqagstHhsPG", "remote_id": "300000331094861:REGULAR_SALARY", "name": "Regular Salary", "amount": {"currency": "USD", "value": 2207.75}}, {"id": "CELfyfzuHs6Dz1MDPdoSCY3U", "remote_id": "300000331094861:FIT_WITHHELD", "name": "FIT Withheld", "amount": {"currency": "USD", "value": 235.94}}, {"id": "H1gPqyuZTK3y75NRxe4QZ3u7", "remote_id": "300000331094861:SOCIAL_SECURITY_EMPLOYEE_WITHHELD", "name": "Social Security Employee Withheld", "amount": {"currency": "USD", "value": 136.88}}, {"id": "HEnJXik92Qqph5SX4NtK6NRM", "remote_id": "300000331094861:MEDICARE_EMPLOYEE_WITHHELD", "name": "Medicare Employee Withheld", "amount": {"currency": "USD", "value": 32.01}}, {"id": "Ho16emGY5zVYeEc2nN9CWeKv", "remote_id": "300000331094861:SIT_WITHHELD_CA", "name": "SIT Withheld (CA)", "amount": {"currency": "USD", "value": 71.47}}, {"id": "9D24qXFEp1pSQ2Y3jaRFSTBQ", "remote_id": "300000331094861:VPDI_EMPLOYEE_WITHHELD_CA", "name": "VPDI Employee Withheld (CA)", "amount": {"currency": "USD", "value": 1.1}}]}]}} + 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}} + GetAtsScorecards: + speakeasy-default-get-ats-scorecards: + 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", "interview_id": "5J7L4b48wBfffYwek9Az9pkM", "author_id": "6Wq4mDpYz3vBnh8Xk2Lr9TfA", "responses": [{"remote_id": null, "label": "Overall rating", "description": "How you feel the interview went", "required": false, "type": "SINGLE_SELECT", "options": [{"remote_id": "1", "label": "Definitely not"}, {"remote_id": "2", "label": "No"}, {"remote_id": "3", "label": "Mixed"}, {"remote_id": "4", "label": "Yes"}, {"remote_id": "5", "label": "Strong yes"}, {"remote_id": "6", "label": "No decision"}], "answer": {"remote_id": "4", "label": "Yes"}}, {"remote_id": null, "label": "Summary", "description": "Main notes about the interview", "required": true, "type": "TEXT", "answer": "Excellent system design, strong communication throughout."}, {"remote_id": "8123", "label": "System design", "description": null, "required": null, "type": "SINGLE_SELECT", "options": [{"remote_id": "1", "label": "Definitely not"}, {"remote_id": "2", "label": "No"}, {"remote_id": "3", "label": "Mixed"}, {"remote_id": "4", "label": "Yes"}, {"remote_id": "5", "label": "Strong yes"}, {"remote_id": "6", "label": "No decision"}], "answer": {"remote_id": "5", "label": "Strong yes"}}, {"remote_id": "4471", "label": "Would you work with this person again?", "description": null, "required": true, "type": "BOOLEAN", "answer": true}, {"remote_id": "4472", "label": "Which areas did you cover?", "description": null, "required": false, "type": "MULTI_SELECT", "options": [{"remote_id": "9001", "label": "System design"}, {"remote_id": "9002", "label": "Debugging"}, {"remote_id": "9003", "label": "Pair programming"}], "answer": [{"remote_id": "9001", "label": "System design"}, {"remote_id": "9002", "label": "Debugging"}]}, {"remote_id": "4473", "label": "Anything the next interviewer should probe?", "description": null, "required": false, "type": "TEXT", "answer": "Ask more about experience with microservices"}, {"remote_id": "4474", "label": "Years of relevant experience", "description": null, "required": false, "type": "NUMBER", "answer": 7.5}, {"remote_id": "4475", "label": "Earliest start date", "description": null, "required": false, "type": "TEXT", "answer": "2026-09-01T00:00:00Z"}, {"remote_id": "4476", "label": "Additional notes", "description": null, "required": false, "type": "TEXT", "answer": null}], "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://miserly-lifestyle.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", "interview_id": "5J7L4b48wBfffYwek9Az9pkM", "author_id": "6Wq4mDpYz3vBnh8Xk2Lr9TfA", "responses": [{"remote_id": null, "label": "Overall rating", "description": "How you feel the interview went", "required": false, "type": "SINGLE_SELECT", "options": [{"remote_id": "1", "label": "Definitely not"}, {"remote_id": "2", "label": "No"}, {"remote_id": "3", "label": "Mixed"}, {"remote_id": "4", "label": "Yes"}, {"remote_id": "5", "label": "Strong yes"}, {"remote_id": "6", "label": "No decision"}], "answer": {"remote_id": "4", "label": "Yes"}}, {"remote_id": null, "label": "Summary", "description": "Main notes about the interview", "required": true, "type": "TEXT", "answer": "Excellent system design, strong communication throughout."}, {"remote_id": "8123", "label": "System design", "description": null, "required": null, "type": "SINGLE_SELECT", "options": [{"remote_id": "1", "label": "Definitely not"}, {"remote_id": "2", "label": "No"}, {"remote_id": "3", "label": "Mixed"}, {"remote_id": "4", "label": "Yes"}, {"remote_id": "5", "label": "Strong yes"}, {"remote_id": "6", "label": "No decision"}], "answer": {"remote_id": "5", "label": "Strong yes"}}, {"remote_id": "4471", "label": "Would you work with this person again?", "description": null, "required": true, "type": "BOOLEAN", "answer": true}, {"remote_id": "4472", "label": "Which areas did you cover?", "description": null, "required": false, "type": "MULTI_SELECT", "options": [{"remote_id": "9001", "label": "System design"}, {"remote_id": "9002", "label": "Debugging"}, {"remote_id": "9003", "label": "Pair programming"}], "answer": [{"remote_id": "9001", "label": "System design"}, {"remote_id": "9002", "label": "Debugging"}]}, {"remote_id": "4473", "label": "Anything the next interviewer should probe?", "description": null, "required": false, "type": "TEXT", "answer": "Ask more about experience with microservices"}, {"remote_id": "4474", "label": "Years of relevant experience", "description": null, "required": false, "type": "NUMBER", "answer": 7.5}, {"remote_id": "4475", "label": "Earliest start date", "description": null, "required": false, "type": "TEXT", "answer": "2026-09-01T00:00:00Z"}, {"remote_id": "4476", "label": "Additional notes", "description": null, "required": false, "type": "TEXT", "answer": null}], "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 -releaseNotes: "## Ruby SDK Changes:\n* `kombo.ats.get_notes()`: **Added**\n* `kombo.ats.get_ats_notes()`: **Removed** (Breaking ⚠️)\n* `kombo.hris.add_employee_document()`: \n * `request.body.remote_fields` **Added**\n* `kombo.ats.add_application_result_link()`: \n * `request.body.remote_fields.talent360` **Added**\n* `kombo.ats.add_application_note()`: \n * `request.body.remote_fields.talent360` **Added**\n* `kombo.ats.add_candidate_result_link()`: \n * `request.body.remote_fields.talent360` **Added**\n* `kombo.connect.create_connection_link()`: \n * `request.integration_tool.enum(talent360)` **Added**\n" +releaseNotes: "## Ruby SDK Changes:\n* `kombo.hris.get_hris_pay_runs()`: **Added**\n* `kombo.hris.get_hris_payslips()`: **Added**\n* `kombo.ats.get_ats_scorecards()`: **Added**\n* `kombo.connect.create_connection_link()`: \n * `request.integration_tool` **Changed**\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 60506174..176cdcb9 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -31,7 +31,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false ruby: - version: 1.2.8 + version: 1.2.9 additionalDependencies: development: irb: "" diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index b797872f..9ead6488 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.793.1 +speakeasyVersion: 1.796.4 sources: kombo-prepared-spec: sourceNamespace: kombo-api - sourceRevisionDigest: sha256:ed16b9f2a4cce00a53aa105d3ad3e2abe5c0818c57cbe6d87b8f9ca7045198f6 - sourceBlobDigest: sha256:72986e004c346d96cad1e129dd435a0f07a69373ee813252b4a406c6aedc6e78 + sourceRevisionDigest: sha256:76b128ffb667be232b323731fbe13171869263724b27dab27bc431d9b41f00a4 + sourceBlobDigest: sha256:ed1ee376082fd562b0607e271527a72c364c5baccec7be09f82c131322998cb7 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: kombo-ruby: source: kombo-prepared-spec sourceNamespace: kombo-api - sourceRevisionDigest: sha256:ed16b9f2a4cce00a53aa105d3ad3e2abe5c0818c57cbe6d87b8f9ca7045198f6 - sourceBlobDigest: sha256:72986e004c346d96cad1e129dd435a0f07a69373ee813252b4a406c6aedc6e78 + sourceRevisionDigest: sha256:76b128ffb667be232b323731fbe13171869263724b27dab27bc431d9b41f00a4 + sourceBlobDigest: sha256:ed1ee376082fd562b0607e271527a72c364c5baccec7be09f82c131322998cb7 codeSamplesNamespace: kombo-api-python-ruby-code-samples - codeSamplesRevisionDigest: sha256:955d606c3f0ede4dde8b7bed2add3693c5d23a36fcdb0d264416b9925f5646c2 + codeSamplesRevisionDigest: sha256:e385ad8ceb129905b19c9d52ad2c0744cb438b79442aab6c881362b61ad1e88b workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/Gemfile.lock b/Gemfile.lock index 8869152a..08b50653 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - kombo (1.2.8) + kombo (1.2.9) base64 (>= 0.2.0, < 1.0) faraday (>= 2.14.3) faraday-multipart (~> 1.2.0) @@ -157,7 +157,7 @@ GEM unicode-emoji (~> 4.1) unicode-emoji (4.2.0) uri (1.1.1) - webmock (3.26.2) + webmock (3.26.4) addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) diff --git a/README.md b/README.md index 2521a38c..88baea27 100644 --- a/README.md +++ b/README.md @@ -147,6 +147,7 @@ s = ::Kombo::Kombo.new( * [get_rejection_reasons](docs/sdks/ats/README.md#get_rejection_reasons) - Get rejection reasons * [get_interviews](docs/sdks/ats/README.md#get_interviews) - Get interviews * [get_notes](docs/sdks/ats/README.md#get_notes) - Get notes +* [get_ats_scorecards](docs/sdks/ats/README.md#get_ats_scorecards) - Get scorecards * [import_tracked_application](docs/sdks/ats/README.md#import_tracked_application) - Import tracked application ### [Connect](docs/sdks/connect/README.md) @@ -190,6 +191,8 @@ s = ::Kombo::Kombo.new( * [get_performance_review_cycles](docs/sdks/hris/README.md#get_performance_review_cycles) - Get performance review cycles * [get_performance_reviews](docs/sdks/hris/README.md#get_performance_reviews) - Get performance reviews * [get_staffing_entities](docs/sdks/hris/README.md#get_staffing_entities) - Get staffing entities +* [get_hris_pay_runs](docs/sdks/hris/README.md#get_hris_pay_runs) - Pay Runs +* [get_hris_payslips](docs/sdks/hris/README.md#get_hris_payslips) - Payslips diff --git a/RELEASES.md b/RELEASES.md index ab8683cb..50b826aa 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -228,4 +228,14 @@ Based on: ### Generated - [ruby v1.2.8] . ### Releases -- [Ruby Gems v1.2.8] https://rubygems.org/gems/kombo/versions/1.2.8 - . \ No newline at end of file +- [Ruby Gems v1.2.8] https://rubygems.org/gems/kombo/versions/1.2.8 - . + +## 2026-09-04 00:49:58 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.796.4 (2.935.1) https://github.com/speakeasy-api/speakeasy +### Generated +- [ruby v1.2.9] . +### Releases +- [Ruby Gems v1.2.9] https://rubygems.org/gems/kombo/versions/1.2.9 - . \ No newline at end of file diff --git a/docs/models/operations/getatsscorecardsrequest.md b/docs/models/operations/getatsscorecardsrequest.md new file mode 100644 index 00000000..3e14c5fd --- /dev/null +++ b/docs/models/operations/getatsscorecardsrequest.md @@ -0,0 +1,17 @@ +# GetAtsScorecardsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

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 \|
\| `interview` \| âś— 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` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `candidate_ids` | T::Array<*::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 interview feedback available for a candidate, across all their applications. | | +| `application_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of application IDs. We will only return scorecards that belong to _any_ of these applications. | | \ No newline at end of file diff --git a/docs/models/operations/getatsscorecardsresponse.md b/docs/models/operations/getatsscorecardsresponse.md new file mode 100644 index 00000000..50e44107 --- /dev/null +++ b/docs/models/operations/getatsscorecardsresponse.md @@ -0,0 +1,11 @@ +# GetAtsScorecardsResponse + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `get_ats_scorecards_positive_response` | [T.nilable(Models::Shared::GetAtsScorecardsPositiveResponse)](../../models/shared/getatsscorecardspositiveresponse.md) | :heavy_minus_sign: | GET /ats/scorecards Positive response | \ No newline at end of file diff --git a/docs/models/operations/gethrispayrunsrequest.md b/docs/models/operations/gethrispayrunsrequest.md new file mode 100644 index 00000000..3a4ae320 --- /dev/null +++ b/docs/models/operations/gethrispayrunsrequest.md @@ -0,0 +1,16 @@ +# GetHrisPayRunsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

For this endpoint, only changes to the returned record itself are considered. | | +| `include_deleted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `legal_entity_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of legal entity IDs. | | \ No newline at end of file diff --git a/docs/models/operations/gethrispayrunsresponse.md b/docs/models/operations/gethrispayrunsresponse.md new file mode 100644 index 00000000..9951e592 --- /dev/null +++ b/docs/models/operations/gethrispayrunsresponse.md @@ -0,0 +1,11 @@ +# GetHrisPayRunsResponse + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `get_hris_pay_runs_positive_response` | [T.nilable(Models::Shared::GetHrisPayRunsPositiveResponse)](../../models/shared/gethrispayrunspositiveresponse.md) | :heavy_minus_sign: | GET /hris/pay-runs Positive response | \ No newline at end of file diff --git a/docs/models/operations/gethrispayslipsrequest.md b/docs/models/operations/gethrispayslipsrequest.md new file mode 100644 index 00000000..df97eddc --- /dev/null +++ b/docs/models/operations/gethrispayslipsrequest.md @@ -0,0 +1,18 @@ +# GetHrisPayslipsRequest + + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

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

\| Path \| Added/Removed \| Linked Record \|
\| --- \| --- \| --- \|
\| `employee` \| âś— No \| âś— No \|
\| `pay_run` \| âś— No \| âś— No \|
\| `line_items` \| âś“ Yes \| âś“ Yes \|
\| `line_items` → `salary_type` \| ✗ 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` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `legal_entity_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of legal entity IDs. | | +| `employee_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of employee IDs. | | +| `payrun_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of payrun IDs. | | \ No newline at end of file diff --git a/docs/models/operations/gethrispayslipsresponse.md b/docs/models/operations/gethrispayslipsresponse.md new file mode 100644 index 00000000..8302655f --- /dev/null +++ b/docs/models/operations/gethrispayslipsresponse.md @@ -0,0 +1,11 @@ +# GetHrisPayslipsResponse + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | +| `get_hris_payslips_positive_response` | [T.nilable(Models::Shared::GetHrisPayslipsPositiveResponse)](../../models/shared/gethrispayslipspositiveresponse.md) | :heavy_minus_sign: | GET /hris/payslips Positive response | \ No newline at end of file diff --git a/docs/models/shared/amount.md b/docs/models/shared/amount.md new file mode 100644 index 00000000..8f1e7e1d --- /dev/null +++ b/docs/models/shared/amount.md @@ -0,0 +1,11 @@ +# Amount + +The amount of the line item. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/change.md b/docs/models/shared/change.md new file mode 100644 index 00000000..10ba8b44 --- /dev/null +++ b/docs/models/shared/change.md @@ -0,0 +1,19 @@ +# Change + +Why this webhook was sent: the issue was raised or resolved. + +## Example Usage + +```ruby +require "kombo" + +value = Change::RAISED +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `RAISED` | raised | +| `RESOLVED` | resolved | \ No newline at end of file diff --git a/docs/models/shared/employee.md b/docs/models/shared/employee.md new file mode 100644 index 00000000..afecac4d --- /dev/null +++ b/docs/models/shared/employee.md @@ -0,0 +1,16 @@ +# Employee + +The employee that the payslip is for. + + +## 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` | *T.nilable(::String)* | :heavy_check_mark: | The employee’s first name. | +| `last_name` | *T.nilable(::String)* | :heavy_check_mark: | The employee’s last name. | +| `display_full_name` | *T.nilable(::String)* | :heavy_check_mark: | The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. | +| `work_email` | *T.nilable(::String)* | :heavy_minus_sign: | The employee’s work email address. If the email address is invalid, we will set this to `null`. | +| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | \ No newline at end of file diff --git a/docs/models/shared/formatmultiselect.md b/docs/models/shared/formatmultiselect.md index 29c5049c..ae577c39 100644 --- a/docs/models/shared/formatmultiselect.md +++ b/docs/models/shared/formatmultiselect.md @@ -3,7 +3,7 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `options` | T::Array<[Models::Shared::Option2](../../models/shared/option2.md)> | :heavy_check_mark: | N/A | -| `type` | *::String* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `options` | T::Array<[Models::Shared::GetAtsJobsPositiveResponseOption2](../../models/shared/getatsjobspositiveresponseoption2.md)> | :heavy_check_mark: | N/A | +| `type` | *::String* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/formatsingleselect.md b/docs/models/shared/formatsingleselect.md index 7909fddb..e5118eca 100644 --- a/docs/models/shared/formatsingleselect.md +++ b/docs/models/shared/formatsingleselect.md @@ -3,8 +3,8 @@ ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `display_type` | [T.nilable(Models::Shared::DisplayType3)](../../models/shared/displaytype3.md) | :heavy_minus_sign: | N/A | -| `options` | T::Array<[Models::Shared::Option1](../../models/shared/option1.md)> | :heavy_check_mark: | N/A | -| `type` | *::String* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `display_type` | [T.nilable(Models::Shared::DisplayType3)](../../models/shared/displaytype3.md) | :heavy_minus_sign: | N/A | +| `options` | T::Array<[Models::Shared::GetAtsJobsPositiveResponseOption1](../../models/shared/getatsjobspositiveresponseoption1.md)> | :heavy_check_mark: | N/A | +| `type` | *::String* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/option1.md b/docs/models/shared/getatsjobspositiveresponseoption1.md similarity index 98% rename from docs/models/shared/option1.md rename to docs/models/shared/getatsjobspositiveresponseoption1.md index fd1de168..c55c687f 100644 --- a/docs/models/shared/option1.md +++ b/docs/models/shared/getatsjobspositiveresponseoption1.md @@ -1,4 +1,4 @@ -# Option1 +# GetAtsJobsPositiveResponseOption1 ## Fields diff --git a/docs/models/shared/option2.md b/docs/models/shared/getatsjobspositiveresponseoption2.md similarity index 98% rename from docs/models/shared/option2.md rename to docs/models/shared/getatsjobspositiveresponseoption2.md index 4bbba1cb..837455c1 100644 --- a/docs/models/shared/option2.md +++ b/docs/models/shared/getatsjobspositiveresponseoption2.md @@ -1,4 +1,4 @@ -# Option2 +# GetAtsJobsPositiveResponseOption2 ## Fields diff --git a/docs/models/shared/author.md b/docs/models/shared/getatsnotespositiveresponseauthor.md similarity index 99% rename from docs/models/shared/author.md rename to docs/models/shared/getatsnotespositiveresponseauthor.md index 35fd4890..7800cd70 100644 --- a/docs/models/shared/author.md +++ b/docs/models/shared/getatsnotespositiveresponseauthor.md @@ -1,4 +1,4 @@ -# Author +# GetAtsNotesPositiveResponseAuthor ## Fields diff --git a/docs/models/shared/getatsnotespositiveresponseresult.md b/docs/models/shared/getatsnotespositiveresponseresult.md index 4382f597..428dbae1 100644 --- a/docs/models/shared/getatsnotespositiveresponseresult.md +++ b/docs/models/shared/getatsnotespositiveresponseresult.md @@ -17,4 +17,4 @@ | `remote_updated_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :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://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | | `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | -| `author` | [T.nilable(Models::Shared::Author)](../../models/shared/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 +| `author` | [T.nilable(Models::Shared::GetAtsNotesPositiveResponseAuthor)](../../models/shared/getatsnotespositiveresponseauthor.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/shared/getatsscorecardspositiveresponse.md b/docs/models/shared/getatsscorecardspositiveresponse.md new file mode 100644 index 00000000..213719f6 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponse.md @@ -0,0 +1,9 @@ +# GetAtsScorecardsPositiveResponse + + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `status` | *::String* | :heavy_check_mark: | N/A | | +| `data` | [Models::Shared::GetAtsScorecardsPositiveResponseData](../../models/shared/getatsscorecardspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "H77fDF8uvEzGNPRubiz5DvQ7",
"remote_id": "32",
"candidate_id": "26vafvWSRmbhNcxJYqjCzuJg",
"application_id": "H5daSm8e85Dmvmne3wLeCPhX",
"interview_id": "5J7L4b48wBfffYwek9Az9pkM",
"author_id": "6Wq4mDpYz3vBnh8Xk2Lr9TfA",
"responses": [
{
"answer": {
"label": "Yes",
"remote_id": "4"
},
"description": "How you feel the interview went",
"label": "Overall rating",
"options": [
{
"label": "Definitely not",
"remote_id": "1"
},
{
"label": "No",
"remote_id": "2"
},
{
"label": "Mixed",
"remote_id": "3"
},
{
"label": "Yes",
"remote_id": "4"
},
{
"label": "Strong yes",
"remote_id": "5"
},
{
"label": "No decision",
"remote_id": "6"
}
],
"remote_id": null,
"required": false,
"type": "SINGLE_SELECT"
},
{
"answer": "Excellent system design, strong communication throughout.",
"description": "Main notes about the interview",
"label": "Summary",
"remote_id": null,
"required": true,
"type": "TEXT"
},
{
"answer": {
"label": "Strong yes",
"remote_id": "5"
},
"description": null,
"label": "System design",
"options": [
{
"label": "Definitely not",
"remote_id": "1"
},
{
"label": "No",
"remote_id": "2"
},
{
"label": "Mixed",
"remote_id": "3"
},
{
"label": "Yes",
"remote_id": "4"
},
{
"label": "Strong yes",
"remote_id": "5"
},
{
"label": "No decision",
"remote_id": "6"
}
],
"remote_id": "8123",
"required": null,
"type": "SINGLE_SELECT"
},
{
"answer": true,
"description": null,
"label": "Would you work with this person again?",
"remote_id": "4471",
"required": true,
"type": "BOOLEAN"
},
{
"answer": [
{
"label": "System design",
"remote_id": "9001"
},
{
"label": "Debugging",
"remote_id": "9002"
}
],
"description": null,
"label": "Which areas did you cover?",
"options": [
{
"label": "System design",
"remote_id": "9001"
},
{
"label": "Debugging",
"remote_id": "9002"
},
{
"label": "Pair programming",
"remote_id": "9003"
}
],
"remote_id": "4472",
"required": false,
"type": "MULTI_SELECT"
},
{
"answer": "Ask more about experience with microservices",
"description": null,
"label": "Anything the next interviewer should probe?",
"remote_id": "4473",
"required": false,
"type": "TEXT"
},
{
"answer": 7.5,
"description": null,
"label": "Years of relevant experience",
"remote_id": "4474",
"required": false,
"type": "NUMBER"
},
{
"answer": "2026-09-01T00:00:00Z",
"description": null,
"label": "Earliest start date",
"remote_id": "4475",
"required": false,
"type": "DATE"
},
{
"answer": null,
"description": null,
"label": "Additional notes",
"remote_id": "4476",
"required": false,
"type": "TEXT"
}
],
"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/shared/getatsscorecardspositiveresponseanswer1.md b/docs/models/shared/getatsscorecardspositiveresponseanswer1.md new file mode 100644 index 00000000..a2767656 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseanswer1.md @@ -0,0 +1,11 @@ +# GetAtsScorecardsPositiveResponseAnswer1 + +The id and label of the selected option. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. | +| `label` | *::String* | :heavy_check_mark: | The option as the interviewer sees it, e.g. "Strong Hire". | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponseanswer2.md b/docs/models/shared/getatsscorecardspositiveresponseanswer2.md new file mode 100644 index 00000000..1bc17e3f --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseanswer2.md @@ -0,0 +1,9 @@ +# GetAtsScorecardsPositiveResponseAnswer2 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. | +| `label` | *::String* | :heavy_check_mark: | The option as the interviewer sees it, e.g. "Strong Hire". | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponseauthor.md b/docs/models/shared/getatsscorecardspositiveresponseauthor.md new file mode 100644 index 00000000..312c2131 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseauthor.md @@ -0,0 +1,12 @@ +# GetAtsScorecardsPositiveResponseAuthor + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *::String* | :heavy_check_mark: | The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. | +| `first_name` | *T.nilable(::String)* | :heavy_check_mark: | First name of the user. | +| `last_name` | *T.nilable(::String)* | :heavy_check_mark: | Last name of the user. | +| `email` | *T.nilable(::String)* | :heavy_minus_sign: | Email of the user. If the email address is invalid, it will be set to null. | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponsedata.md b/docs/models/shared/getatsscorecardspositiveresponsedata.md new file mode 100644 index 00000000..e195ac78 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponsedata.md @@ -0,0 +1,9 @@ +# GetAtsScorecardsPositiveResponseData + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `next_` | *T.nilable(::String)* | :heavy_check_mark: | Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. | +| `results` | T::Array<[Models::Shared::GetAtsScorecardsPositiveResponseResult](../../models/shared/getatsscorecardspositiveresponseresult.md)> | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponseoption1.md b/docs/models/shared/getatsscorecardspositiveresponseoption1.md new file mode 100644 index 00000000..282582c6 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseoption1.md @@ -0,0 +1,9 @@ +# GetAtsScorecardsPositiveResponseOption1 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. | +| `label` | *::String* | :heavy_check_mark: | The option as the interviewer sees it, e.g. "Strong Hire". | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponseoption2.md b/docs/models/shared/getatsscorecardspositiveresponseoption2.md new file mode 100644 index 00000000..939f577b --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseoption2.md @@ -0,0 +1,9 @@ +# GetAtsScorecardsPositiveResponseOption2 + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. | +| `label` | *::String* | :heavy_check_mark: | The option as the interviewer sees it, e.g. "Strong Hire". | \ No newline at end of file diff --git a/docs/models/shared/getatsscorecardspositiveresponseresult.md b/docs/models/shared/getatsscorecardspositiveresponseresult.md new file mode 100644 index 00000000..a3f94406 --- /dev/null +++ b/docs/models/shared/getatsscorecardspositiveresponseresult.md @@ -0,0 +1,19 @@ +# GetAtsScorecardsPositiveResponseResult + + +## 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` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the candidate this scorecard evaluates. | | +| `application_id` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the application this scorecard belongs to. | | +| `interview_id` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the interview this scorecard was submitted against. | | +| `author_id` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the user this evaluation belongs to. Where the ATS distinguishes who submitted the scorecard from whose review it is, this is the source of the opinion (the user whose evaluation it is, not whoever entered it). The ID can be used to retrieve the user from the `get users` endpoint. | | +| `responses` | T::Array<[T.any(Models::Shared::ResultText, Models::Shared::ResultSingleSelect, Models::Shared::ResultMultiSelect, Models::Shared::ResultBoolean, Models::Shared::ResultNumber, Models::Shared::ResultDate)](../../models/shared/response.md)> | :heavy_minus_sign: | Every question on the scorecard, together with its definition and the answer submitted by the interviewer. | | +| `remote_created_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was created in the remote system.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `remote_updated_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :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://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `author` | [T.nilable(Models::Shared::GetAtsScorecardsPositiveResponseAuthor)](../../models/shared/getatsscorecardspositiveresponseauthor.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/shared/gethrispayrunspositiveresponse.md b/docs/models/shared/gethrispayrunspositiveresponse.md new file mode 100644 index 00000000..1f4386ed --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponse.md @@ -0,0 +1,9 @@ +# GetHrisPayRunsPositiveResponse + + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `status` | *::String* | :heavy_check_mark: | N/A | | +| `data` | [Models::Shared::GetHrisPayRunsPositiveResponseData](../../models/shared/gethrispayrunspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "HdyE3KNfcbNzXFRqwW1Wh2eP",
"remote_id": "300000092871122",
"start_date": "2026-01-01T00:00:00Z",
"end_date": "2026-01-13T00:00:00Z",
"legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu",
"changed_at": "2026-01-10T12:32:01Z",
"remote_deleted_at": null,
"remote_data": null,
"totals": {
"gross_pay": {
"currency": "USD",
"value": 435300
},
"net_pay": {
"currency": "USD",
"value": 362300
},
"paid_amount": {
"currency": "USD",
"value": 306300.26
}
}
}
]
} | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponsedata.md b/docs/models/shared/gethrispayrunspositiveresponsedata.md new file mode 100644 index 00000000..53e59a33 --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponsedata.md @@ -0,0 +1,9 @@ +# GetHrisPayRunsPositiveResponseData + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `next_` | *T.nilable(::String)* | :heavy_check_mark: | Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. | +| `results` | T::Array<[Models::Shared::GetHrisPayRunsPositiveResponseResult](../../models/shared/gethrispayrunspositiveresponseresult.md)> | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponsegrosspay.md b/docs/models/shared/gethrispayrunspositiveresponsegrosspay.md new file mode 100644 index 00000000..de53484f --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponsegrosspay.md @@ -0,0 +1,11 @@ +# GetHrisPayRunsPositiveResponseGrossPay + +The total gross pay for the pay run, before taxes and after gross deductions. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponsenetpay.md b/docs/models/shared/gethrispayrunspositiveresponsenetpay.md new file mode 100644 index 00000000..7ef5a822 --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponsenetpay.md @@ -0,0 +1,11 @@ +# GetHrisPayRunsPositiveResponseNetPay + +The total net pay for the pay run, after taxes have been applied to the gross pay. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponsepaidamount.md b/docs/models/shared/gethrispayrunspositiveresponsepaidamount.md new file mode 100644 index 00000000..271ae801 --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponsepaidamount.md @@ -0,0 +1,11 @@ +# GetHrisPayRunsPositiveResponsePaidAmount + +The total amount paid out through the pay run. This value accounts for net earnings and deductions. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponseresult.md b/docs/models/shared/gethrispayrunspositiveresponseresult.md new file mode 100644 index 00000000..41340dc6 --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponseresult.md @@ -0,0 +1,15 @@ +# GetHrisPayRunsPositiveResponseResult + + +## 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. | | +| `start_date` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_check_mark: | The start date of the pay run, as a calendar date (`yyyy-MM-dd`). | | +| `end_date` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_check_mark: | The end date of the pay run, as a calendar date (`yyyy-MM-dd`). | | +| `legal_entity_id` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the pay run’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. | | +| `changed_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `totals` | [Models::Shared::GetHrisPayRunsPositiveResponseTotals](../../models/shared/gethrispayrunspositiveresponsetotals.md) | :heavy_check_mark: | N/A | {
"gross_pay": {
"currency": "USD",
"value": 435300
},
"net_pay": {
"currency": "USD",
"value": 362300
},
"paid_amount": {
"currency": "USD",
"value": 306300.26
}
} | \ No newline at end of file diff --git a/docs/models/shared/gethrispayrunspositiveresponsetotals.md b/docs/models/shared/gethrispayrunspositiveresponsetotals.md new file mode 100644 index 00000000..689a12f0 --- /dev/null +++ b/docs/models/shared/gethrispayrunspositiveresponsetotals.md @@ -0,0 +1,10 @@ +# GetHrisPayRunsPositiveResponseTotals + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `gross_pay` | [T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseGrossPay)](../../models/shared/gethrispayrunspositiveresponsegrosspay.md) | :heavy_minus_sign: | The total gross pay for the pay run, before taxes and after gross deductions. | +| `net_pay` | [T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseNetPay)](../../models/shared/gethrispayrunspositiveresponsenetpay.md) | :heavy_minus_sign: | The total net pay for the pay run, after taxes have been applied to the gross pay. | +| `paid_amount` | [T.nilable(Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount)](../../models/shared/gethrispayrunspositiveresponsepaidamount.md) | :heavy_minus_sign: | The total amount paid out through the pay run. This value accounts for net earnings and deductions. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponse.md b/docs/models/shared/gethrispayslipspositiveresponse.md new file mode 100644 index 00000000..811201b1 --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponse.md @@ -0,0 +1,9 @@ +# GetHrisPayslipsPositiveResponse + + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `status` | *::String* | :heavy_check_mark: | N/A | | +| `data` | [Models::Shared::GetHrisPayslipsPositiveResponseData](../../models/shared/gethrispayslipspositiveresponsedata.md) | :heavy_check_mark: | N/A | {
"next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
"results": [
{
"id": "E4q8YceHEtPWeGwBAEcd9xPs",
"remote_id": "300000331094861",
"changed_at": "2026-01-10T12:32:01Z",
"remote_deleted_at": null,
"remote_data": null,
"totals": {
"gross_pay": {
"currency": "USD",
"value": 2207.75
},
"net_pay": {
"currency": "USD",
"value": 1730.35
},
"paid_amount": {
"currency": "USD",
"value": 1730.35
}
},
"employee": {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"display_full_name": "John Doe",
"work_email": "john.doe@acme.com",
"remote_deleted_at": null
},
"pay_run": {
"id": "HdyE3KNfcbNzXFRqwW1Wh2eP",
"remote_id": "300000092871122",
"start_date": "2026-01-01T00:00:00Z",
"end_date": "2026-01-13T00:00:00Z",
"legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu"
},
"line_items": [
{
"id": "8TMenmF8QVyP1EqagstHhsPG",
"remote_id": "300000331094861:REGULAR_SALARY",
"name": "Regular Salary",
"amount": {
"currency": "USD",
"value": 2207.75
}
},
{
"id": "CELfyfzuHs6Dz1MDPdoSCY3U",
"remote_id": "300000331094861:FIT_WITHHELD",
"name": "FIT Withheld",
"amount": {
"currency": "USD",
"value": 235.94
}
},
{
"id": "H1gPqyuZTK3y75NRxe4QZ3u7",
"remote_id": "300000331094861:SOCIAL_SECURITY_EMPLOYEE_WITHHELD",
"name": "Social Security Employee Withheld",
"amount": {
"currency": "USD",
"value": 136.88
}
},
{
"id": "HEnJXik92Qqph5SX4NtK6NRM",
"remote_id": "300000331094861:MEDICARE_EMPLOYEE_WITHHELD",
"name": "Medicare Employee Withheld",
"amount": {
"currency": "USD",
"value": 32.01
}
},
{
"id": "Ho16emGY5zVYeEc2nN9CWeKv",
"remote_id": "300000331094861:SIT_WITHHELD_CA",
"name": "SIT Withheld (CA)",
"amount": {
"currency": "USD",
"value": 71.47
}
},
{
"id": "9D24qXFEp1pSQ2Y3jaRFSTBQ",
"remote_id": "300000331094861:VPDI_EMPLOYEE_WITHHELD_CA",
"name": "VPDI Employee Withheld (CA)",
"amount": {
"currency": "USD",
"value": 1.1
}
}
]
}
]
} | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponsedata.md b/docs/models/shared/gethrispayslipspositiveresponsedata.md new file mode 100644 index 00000000..387dfe3b --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponsedata.md @@ -0,0 +1,9 @@ +# GetHrisPayslipsPositiveResponseData + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | +| `next_` | *T.nilable(::String)* | :heavy_check_mark: | Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. | +| `results` | T::Array<[Models::Shared::GetHrisPayslipsPositiveResponseResult](../../models/shared/gethrispayslipspositiveresponseresult.md)> | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponsegrosspay.md b/docs/models/shared/gethrispayslipspositiveresponsegrosspay.md new file mode 100644 index 00000000..630b2d5e --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponsegrosspay.md @@ -0,0 +1,11 @@ +# GetHrisPayslipsPositiveResponseGrossPay + +The total gross pay for the payslip, before taxes and after gross deductions. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponsenetpay.md b/docs/models/shared/gethrispayslipspositiveresponsenetpay.md new file mode 100644 index 00000000..bf11422f --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponsenetpay.md @@ -0,0 +1,11 @@ +# GetHrisPayslipsPositiveResponseNetPay + +The total net pay for the payslip, after taxes have been applied to the gross pay. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponsepaidamount.md b/docs/models/shared/gethrispayslipspositiveresponsepaidamount.md new file mode 100644 index 00000000..da0ec991 --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponsepaidamount.md @@ -0,0 +1,11 @@ +# GetHrisPayslipsPositiveResponsePaidAmount + +The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | +| `currency` | *::String* | :heavy_check_mark: | The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. | +| `value` | *::Float* | :heavy_check_mark: | The monetary value. | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponseresult.md b/docs/models/shared/gethrispayslipspositiveresponseresult.md new file mode 100644 index 00000000..17b2f006 --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponseresult.md @@ -0,0 +1,15 @@ +# GetHrisPayslipsPositiveResponseResult + + +## 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. | | +| `changed_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `remote_deleted_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear.

[](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString) | | +| `totals` | [Models::Shared::GetHrisPayslipsPositiveResponseTotals](../../models/shared/gethrispayslipspositiveresponsetotals.md) | :heavy_check_mark: | N/A | {
"gross_pay": {
"currency": "USD",
"value": 2207.75
},
"net_pay": {
"currency": "USD",
"value": 1730.35
},
"paid_amount": {
"currency": "USD",
"value": 1730.35
}
} | +| `employee` | [Models::Shared::Employee](../../models/shared/employee.md) | :heavy_check_mark: | The employee that the payslip is for. | {
"id": "26vafvWSRmbhNcxJYqjCzuJg",
"remote_id": "32",
"first_name": "John",
"last_name": "Doe",
"display_full_name": "John Doe",
"work_email": "john.doe@acme.com",
"remote_deleted_at": null
} | +| `pay_run` | [T.nilable(Models::Shared::PayRun)](../../models/shared/payrun.md) | :heavy_check_mark: | The pay run the payslip was paid out through. | {
"id": "HdyE3KNfcbNzXFRqwW1Wh2eP",
"remote_id": "300000092871122",
"start_date": "2026-01-01T00:00:00Z",
"end_date": "2026-01-13T00:00:00Z",
"legal_entity_id": "3Y6vdh2SPujGVx8oj4g8hdUu"
} | +| `line_items` | T::Array<[Models::Shared::LineItem](../../models/shared/lineitem.md)> | :heavy_check_mark: | The individual earnings, deductions, and contributions that make up the payslip. | [
{
"id": "8TMenmF8QVyP1EqagstHhsPG",
"remote_id": "300000331094861:REGULAR_SALARY",
"name": "Regular Salary",
"amount": {
"currency": "USD",
"value": 2207.75
}
},
{
"id": "CELfyfzuHs6Dz1MDPdoSCY3U",
"remote_id": "300000331094861:FIT_WITHHELD",
"name": "FIT Withheld",
"amount": {
"currency": "USD",
"value": 235.94
}
},
{
"id": "H1gPqyuZTK3y75NRxe4QZ3u7",
"remote_id": "300000331094861:SOCIAL_SECURITY_EMPLOYEE_WITHHELD",
"name": "Social Security Employee Withheld",
"amount": {
"currency": "USD",
"value": 136.88
}
},
{
"id": "HEnJXik92Qqph5SX4NtK6NRM",
"remote_id": "300000331094861:MEDICARE_EMPLOYEE_WITHHELD",
"name": "Medicare Employee Withheld",
"amount": {
"currency": "USD",
"value": 32.01
}
},
{
"id": "Ho16emGY5zVYeEc2nN9CWeKv",
"remote_id": "300000331094861:SIT_WITHHELD_CA",
"name": "SIT Withheld (CA)",
"amount": {
"currency": "USD",
"value": 71.47
}
},
{
"id": "9D24qXFEp1pSQ2Y3jaRFSTBQ",
"remote_id": "300000331094861:VPDI_EMPLOYEE_WITHHELD_CA",
"name": "VPDI Employee Withheld (CA)",
"amount": {
"currency": "USD",
"value": 1.1
}
}
] | \ No newline at end of file diff --git a/docs/models/shared/gethrispayslipspositiveresponsetotals.md b/docs/models/shared/gethrispayslipspositiveresponsetotals.md new file mode 100644 index 00000000..8fb65161 --- /dev/null +++ b/docs/models/shared/gethrispayslipspositiveresponsetotals.md @@ -0,0 +1,10 @@ +# GetHrisPayslipsPositiveResponseTotals + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `gross_pay` | [T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay)](../../models/shared/gethrispayslipspositiveresponsegrosspay.md) | :heavy_minus_sign: | The total gross pay for the payslip, before taxes and after gross deductions. | +| `net_pay` | [T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseNetPay)](../../models/shared/gethrispayslipspositiveresponsenetpay.md) | :heavy_minus_sign: | The total net pay for the payslip, after taxes have been applied to the gross pay. | +| `paid_amount` | [T.nilable(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount)](../../models/shared/gethrispayslipspositiveresponsepaidamount.md) | :heavy_minus_sign: | The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions. | \ No newline at end of file diff --git a/docs/models/shared/integration.md b/docs/models/shared/integration.md new file mode 100644 index 00000000..b32862e9 --- /dev/null +++ b/docs/models/shared/integration.md @@ -0,0 +1,13 @@ +# Integration + +The integration this issue belongs to. `null` for environment-wide issues. + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | +| `id` | *::String* | :heavy_check_mark: | The unique identifier of the integration. | +| `tool` | *::String* | :heavy_check_mark: | The name of the integrated tool (e.g., "personio", "greenhouse"). | +| `category` | [Models::Shared::IssueStatusChangedWebhookPayloadCategory](../../models/shared/issuestatuschangedwebhookpayloadcategory.md) | :heavy_check_mark: | The category of the integration (HRIS, ATS, ASSESSMENT, or LMS). | +| `end_user` | [Models::Shared::IssueStatusChangedWebhookPayloadEndUser](../../models/shared/issuestatuschangedwebhookpayloadenduser.md) | :heavy_check_mark: | Information about the end user who created the integration. | \ No newline at end of file diff --git a/docs/models/shared/integrationtool.md b/docs/models/shared/integrationtool.md index 44860ee8..85889a43 100644 --- a/docs/models/shared/integrationtool.md +++ b/docs/models/shared/integrationtool.md @@ -25,6 +25,7 @@ value = IntegrationTool::WORKDAY | `CORNERSTONETALENTLINK` | cornerstonetalentlink | | `RECRUITEE` | recruitee | | `RECRUITERFLOW` | recruiterflow | +| `ATLAS` | atlas | | `GREENHOUSE` | greenhouse | | `GREENHOUSEV3` | greenhousev3 | | `GREENHOUSEJOBBOARD` | greenhousejobboard | @@ -132,6 +133,7 @@ value = IntegrationTool::WORKDAY | `DATABITES` | databites | | `PAGEUP` | pageup | | `TALENT360` | talent360 | +| `EMPLYPEOPLE` | emplypeople | | `WORKDAYCUSTOMREPORT` | workdaycustomreport | | `WORKDAYCUSTOMREPORTSFTP` | workdaycustomreportsftp | | `UKGPROWFM` | ukgprowfm | @@ -189,6 +191,7 @@ value = IntegrationTool::WORKDAY | `BOONDMANAGER` | boondmanager | | `HAILEYHR` | haileyhr | | `SILAE` | silae | +| `SKELLO` | skello | | `OYSTERHR` | oysterhr | | `KIWIHR` | kiwihr | | `SQUARE` | square | @@ -209,6 +212,7 @@ value = IntegrationTool::WORKDAY | `YOUFORCE` | youforce | | `NIBELIS` | nibelis | | `PEOPLEXD` | peoplexd | +| `ZELLIS` | zellis | | `SFTP` | sftp | | `SFTPFETCH` | sftpfetch | | `THREE_HUNDRED_AND_SIXTYLEARNING` | 360learning | diff --git a/docs/models/shared/issue.md b/docs/models/shared/issue.md new file mode 100644 index 00000000..a9711916 --- /dev/null +++ b/docs/models/shared/issue.md @@ -0,0 +1,14 @@ +# Issue + + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *::String* | :heavy_check_mark: | The unique identifier of the issue. | +| `type` | *::String* | :heavy_check_mark: | The issue type, for example `integration.authentication_failed`. Kombo will add more types over time. Treat unknown values as valid and handle them without failing. | +| `title` | *::String* | :heavy_check_mark: | A short, customer-facing title for this issue type. | +| `status` | [Models::Shared::IssueStatusChangedWebhookPayloadStatus](../../models/shared/issuestatuschangedwebhookpayloadstatus.md) | :heavy_check_mark: | The issue status after this change. | +| `markdown_message` | *::String* | :heavy_check_mark: | What is wrong and how to investigate or fix it. | +| `first_observed_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | ISO 8601 timestamp when Kombo first observed this episode of the issue. | +| `resolved_at` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_check_mark: | ISO 8601 timestamp when the issue was resolved. `null` while it is open. | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayload.md b/docs/models/shared/issuestatuschangedwebhookpayload.md new file mode 100644 index 00000000..ec3dfd6f --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayload.md @@ -0,0 +1,10 @@ +# IssueStatusChangedWebhookPayload + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `id` | *::String* | :heavy_check_mark: | Unique identifier for this webhook event | +| `type` | [Models::Shared::IssueStatusChangedWebhookPayloadType](../../models/shared/issuestatuschangedwebhookpayloadtype.md) | :heavy_check_mark: | Type of the webhook event | +| `data` | [Models::Shared::IssueStatusChangedWebhookPayloadData](../../models/shared/issuestatuschangedwebhookpayloaddata.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayloadcategory.md b/docs/models/shared/issuestatuschangedwebhookpayloadcategory.md new file mode 100644 index 00000000..b500a495 --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayloadcategory.md @@ -0,0 +1,21 @@ +# IssueStatusChangedWebhookPayloadCategory + +The category of the integration (HRIS, ATS, ASSESSMENT, or LMS). + +## Example Usage + +```ruby +require "kombo" + +value = IssueStatusChangedWebhookPayloadCategory::HRIS +``` + + +## Values + +| Name | Value | +| ------------ | ------------ | +| `HRIS` | HRIS | +| `ATS` | ATS | +| `ASSESSMENT` | ASSESSMENT | +| `LMS` | LMS | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayloaddata.md b/docs/models/shared/issuestatuschangedwebhookpayloaddata.md new file mode 100644 index 00000000..1dc0368a --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayloaddata.md @@ -0,0 +1,10 @@ +# IssueStatusChangedWebhookPayloadData + + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `change` | [Models::Shared::Change](../../models/shared/change.md) | :heavy_check_mark: | Why this webhook was sent: the issue was raised or resolved. | +| `issue` | [Models::Shared::Issue](../../models/shared/issue.md) | :heavy_check_mark: | N/A | +| `integration` | [T.nilable(Models::Shared::Integration)](../../models/shared/integration.md) | :heavy_check_mark: | The integration this issue belongs to. `null` for environment-wide issues. | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayloadenduser.md b/docs/models/shared/issuestatuschangedwebhookpayloadenduser.md new file mode 100644 index 00000000..90035157 --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayloadenduser.md @@ -0,0 +1,12 @@ +# IssueStatusChangedWebhookPayloadEndUser + +Information about the end user who created the integration. + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `organization_name` | *::String* | :heavy_check_mark: | The name of the organization that owns the integration. | +| `creator_email` | *T.nilable(::String)* | :heavy_check_mark: | The email address of the user who created the integration. | +| `origin_id` | *T.nilable(::String)* | :heavy_check_mark: | The unique identifier of the organization in the integrated system. | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayloadstatus.md b/docs/models/shared/issuestatuschangedwebhookpayloadstatus.md new file mode 100644 index 00000000..c86ad195 --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayloadstatus.md @@ -0,0 +1,19 @@ +# IssueStatusChangedWebhookPayloadStatus + +The issue status after this change. + +## Example Usage + +```ruby +require "kombo" + +value = IssueStatusChangedWebhookPayloadStatus::OPEN +``` + + +## Values + +| Name | Value | +| ---------- | ---------- | +| `OPEN` | OPEN | +| `RESOLVED` | RESOLVED | \ No newline at end of file diff --git a/docs/models/shared/issuestatuschangedwebhookpayloadtype.md b/docs/models/shared/issuestatuschangedwebhookpayloadtype.md new file mode 100644 index 00000000..ed4c3c67 --- /dev/null +++ b/docs/models/shared/issuestatuschangedwebhookpayloadtype.md @@ -0,0 +1,18 @@ +# IssueStatusChangedWebhookPayloadType + +Type of the webhook event + +## Example Usage + +```ruby +require "kombo" + +value = IssueStatusChangedWebhookPayloadType::ISSUE_STATUS_CHANGED +``` + + +## Values + +| Name | Value | +| ---------------------- | ---------------------- | +| `ISSUE_STATUS_CHANGED` | issue-status-changed | \ No newline at end of file diff --git a/docs/models/shared/lineitem.md b/docs/models/shared/lineitem.md new file mode 100644 index 00000000..eb37405f --- /dev/null +++ b/docs/models/shared/lineitem.md @@ -0,0 +1,11 @@ +# LineItem + + +## 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. For some integrations, this ID can still change if the payslip is edited. | +| `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. This value may include the item's position on the payslip, which can change if the payslip is edited. | +| `name` | *T.nilable(::String)* | :heavy_check_mark: | The name of the salary type. | +| `amount` | [T.nilable(Models::Shared::Amount)](../../models/shared/amount.md) | :heavy_minus_sign: | The amount of the line item. | \ No newline at end of file diff --git a/docs/models/shared/name.md b/docs/models/shared/name.md index fc6ececa..8e720f6f 100644 --- a/docs/models/shared/name.md +++ b/docs/models/shared/name.md @@ -32,6 +32,10 @@ value = Name::HRIS_LEGAL_ENTITIES | `HRIS_SKILLS` | hris_skills | | `HRIS_SKILL_RATING_PROVIDERS` | hris_skill_rating_providers | | `HRIS_EMPLOYEE_SKILL_PROFICIENCY_RATINGS` | hris_employee_skill_proficiency_ratings | +| `HRIS_PAY_RUNS` | hris_pay_runs | +| `HRIS_PAYSLIPS` | hris_payslips | +| `HRIS_SALARY_TYPES` | hris_salary_types | +| `HRIS_PAYSLIP_LINE_ITEMS` | hris_payslip_line_items | | `ATS_USERS` | ats_users | | `ATS_JOBS` | ats_jobs | | `ATS_JOB_POSTINGS` | ats_job_postings | @@ -45,6 +49,7 @@ value = Name::HRIS_LEGAL_ENTITIES | `ATS_REJECTION_REASONS` | ats_rejection_reasons | | `ATS_ROLES` | ats_roles | | `ATS_NOTES` | ats_notes | +| `ATS_SCORECARDS` | ats_scorecards | | `LMS_USERS` | lms_users | | `LMS_COURSE_PROVIDERS` | lms_course_providers | | `LMS_SKILLS` | lms_skills | diff --git a/docs/models/shared/payrun.md b/docs/models/shared/payrun.md new file mode 100644 index 00000000..e03f5941 --- /dev/null +++ b/docs/models/shared/payrun.md @@ -0,0 +1,14 @@ +# PayRun + +The pay run the payslip was paid out through. + + +## 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. | +| `start_date` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_check_mark: | The start date of the pay run, as a calendar date (`yyyy-MM-dd`). | +| `end_date` | [DateTime](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/DateTime.html) | :heavy_check_mark: | The end date of the pay run, as a calendar date (`yyyy-MM-dd`). | +| `legal_entity_id` | *T.nilable(::String)* | :heavy_check_mark: | The Kombo ID of the pay run’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. | \ No newline at end of file diff --git a/docs/models/shared/response.md b/docs/models/shared/response.md new file mode 100644 index 00000000..0941e532 --- /dev/null +++ b/docs/models/shared/response.md @@ -0,0 +1,2 @@ +# Response + diff --git a/docs/models/shared/resultboolean.md b/docs/models/shared/resultboolean.md new file mode 100644 index 00000000..e7f985a5 --- /dev/null +++ b/docs/models/shared/resultboolean.md @@ -0,0 +1,13 @@ +# ResultBoolean + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `answer` | *T.nilable(T::Boolean)* | :heavy_check_mark: | The yes/no the interviewer picked. | \ No newline at end of file diff --git a/docs/models/shared/resultdate.md b/docs/models/shared/resultdate.md new file mode 100644 index 00000000..70d1b2a9 --- /dev/null +++ b/docs/models/shared/resultdate.md @@ -0,0 +1,13 @@ +# ResultDate + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `answer` | *T.nilable(::String)* | :heavy_check_mark: | Date in `YYYY-MM-DD` format. | \ No newline at end of file diff --git a/docs/models/shared/resultmultiselect.md b/docs/models/shared/resultmultiselect.md new file mode 100644 index 00000000..70665231 --- /dev/null +++ b/docs/models/shared/resultmultiselect.md @@ -0,0 +1,14 @@ +# ResultMultiSelect + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `options` | T::Array<[Models::Shared::GetAtsScorecardsPositiveResponseOption2](../../models/shared/getatsscorecardspositiveresponseoption2.md)> | :heavy_check_mark: | Every option available for select and multi-select questions. | +| `answer` | T::Array<[Models::Shared::GetAtsScorecardsPositiveResponseAnswer2](../../models/shared/getatsscorecardspositiveresponseanswer2.md)> | :heavy_check_mark: | An array of ids and labels with every selected option. | \ No newline at end of file diff --git a/docs/models/shared/resultnumber.md b/docs/models/shared/resultnumber.md new file mode 100644 index 00000000..fb7579ed --- /dev/null +++ b/docs/models/shared/resultnumber.md @@ -0,0 +1,13 @@ +# ResultNumber + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `answer` | *T.nilable(::Float)* | :heavy_check_mark: | A decimal value. | \ No newline at end of file diff --git a/docs/models/shared/resultsingleselect.md b/docs/models/shared/resultsingleselect.md new file mode 100644 index 00000000..faa8de79 --- /dev/null +++ b/docs/models/shared/resultsingleselect.md @@ -0,0 +1,14 @@ +# ResultSingleSelect + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `options` | T::Array<[Models::Shared::GetAtsScorecardsPositiveResponseOption1](../../models/shared/getatsscorecardspositiveresponseoption1.md)> | :heavy_check_mark: | Every option available for select and multi-select questions. | +| `answer` | [T.nilable(Models::Shared::GetAtsScorecardsPositiveResponseAnswer1)](../../models/shared/getatsscorecardspositiveresponseanswer1.md) | :heavy_check_mark: | The id and label of the selected option. | \ No newline at end of file diff --git a/docs/models/shared/resulttext.md b/docs/models/shared/resulttext.md new file mode 100644 index 00000000..edcbd4eb --- /dev/null +++ b/docs/models/shared/resulttext.md @@ -0,0 +1,13 @@ +# ResultText + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | +| `remote_id` | *T.nilable(::String)* | :heavy_check_mark: | ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. | +| `label` | *::String* | :heavy_check_mark: | The question or attribute being assessed, e.g. "Willingness to travel". | +| `description` | *T.nilable(::String)* | :heavy_check_mark: | Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". | +| `required` | *T.nilable(T::Boolean)* | :heavy_check_mark: | Whether the ATS marked this question mandatory. | +| `type` | *::String* | :heavy_check_mark: | N/A | +| `answer` | *T.nilable(::String)* | :heavy_check_mark: | The text the interviewer wrote. | \ No newline at end of file diff --git a/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadrequest.md b/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadrequest.md new file mode 100644 index 00000000..19665544 --- /dev/null +++ b/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadrequest.md @@ -0,0 +1,9 @@ +# WebhookIssueStatusChangedWebhookPayloadRequest + + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------- | +| `x_kombo_signature` | *::String* | :heavy_check_mark: | HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature. | +| `body` | [Models::Shared::IssueStatusChangedWebhookPayload](../../models/shared/issuestatuschangedwebhookpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadresponse.md b/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadresponse.md new file mode 100644 index 00000000..288fac96 --- /dev/null +++ b/docs/models/webhooks/webhookissuestatuschangedwebhookpayloadresponse.md @@ -0,0 +1,10 @@ +# WebhookIssueStatusChangedWebhookPayloadResponse + + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `content_type` | *::String* | :heavy_check_mark: | HTTP response content type for this operation | +| `status_code` | *::Integer* | :heavy_check_mark: | HTTP response status code for this operation | +| `raw_response` | [Faraday::Response](https://www.rubydoc.info/gems/faraday/Faraday/Response) | :heavy_check_mark: | Raw HTTP response; suitable for custom response parsing | \ No newline at end of file diff --git a/docs/sdks/ats/README.md b/docs/sdks/ats/README.md index f5f813ac..26443d70 100644 --- a/docs/sdks/ats/README.md +++ b/docs/sdks/ats/README.md @@ -28,6 +28,7 @@ * [get_rejection_reasons](#get_rejection_reasons) - Get rejection reasons * [get_interviews](#get_interviews) - Get interviews * [get_notes](#get_notes) - Get notes +* [get_ats_scorecards](#get_ats_scorecards) - Get scorecards * [import_tracked_application](#import_tracked_application) - Import tracked application ## get_applications @@ -2261,6 +2262,59 @@ end | Models::Errors::KomboAtsError | default | application/json | | Errors::APIError | 4XX, 5XX | \*/\* | +## get_ats_scorecards + +Retrieve all scorecards. + +Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + +### Example Usage + + +```ruby +require 'kombo' + +Models = ::Kombo::Models +s = ::Kombo::Kombo.new( + integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28', + security: Models::Shared::Security.new( + api_key: '' + ) +) +res = s.ats.get_ats_scorecards(page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + +unless res.get_ats_scorecards_positive_response.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

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 \|
\| `interview` \| âś— 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` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `candidate_ids` | T::Array<*::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 interview feedback available for a candidate, across all their applications. | | +| `application_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of application IDs. We will only return scorecards that belong to _any_ of these applications. | | + +### Response + +**[T.nilable(Models::Operations::GetAtsScorecardsResponse)](../../models/operations/getatsscorecardsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ----------------------------- | ----------------------------- | ----------------------------- | +| Models::Errors::KomboAtsError | default | application/json | +| Errors::APIError | 4XX, 5XX | \*/\* | + ## import_tracked_application Import tracked application diff --git a/docs/sdks/general/README.md b/docs/sdks/general/README.md index 9f5db68d..90f972cb 100644 --- a/docs/sdks/general/README.md +++ b/docs/sdks/general/README.md @@ -163,6 +163,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Apploi|`apploi/rest-api`|The [Apploi API](https://integrate.apploi.com/). We automatically authenticate all requests and use `https://partners.apploi.com/` as the base URL.| |Ashby|`ashby/v1`|Ashby's [V1 API](https://developers.ashbyhq.com/reference/introduction). We automatically authenticate all requests with the provided credentials and use `https://api.ashbyhq.com` as the base URL. Please note that Ashby uses an RPC-style API. Please check [the Ashby API documentation](https://developers.ashbyhq.com/reference/introduction) for details on how to use it.| |Asymbl|`asymbl/v63`|We use `https://\{subdomain\}.my.salesforce.com` as the base URL. Find the official docs [here](https://asymblinc.github.io/ats/ats.html).| +|Atlas|`atlas/v1`|We use `https://api.recruitwithatlas.com/api/v1/` as the base URL. Find the official docs [here](https://api.recruitwithatlas.com/api/v1/docs/).| |Avature|`avature/custom-api`|Avatures's Custom API. Call `Get /openapi` to retrieve the specific custom API schema. We automatically authenticate all requests and use the instance specific custom API URL as the base URL.| |Avionté|`avionte/front-office-v1`|Avionte's API. We automatically authenticate all requests and use `https://api.avionte.com/front-office/v1` as the base URL. Documentation for the BOLD Front Office API: https://developer.avionte.com/reference/get-all-talent-tags| |BambooHR|`bamboohr/v1`|BambooHR's [API](https://documentation.bamboohr.com/reference/get-employee). We automatically authenticate all requests using the customer credentials `https://api.bamboohr.com/api/gateway.php/\{subdomain\}/v1` as the base URL.| @@ -206,6 +207,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Docebo|`docebo/api`|Docebo [API](https://developer.docebo.com). We automatically handle authentication and use `https://\{subdomain\}.docebosaas.com` as the base URL.| |Eightfold|`eightfold/api`|Eightfold's [API](https://apidocs.eightfold.ai/). We automatically authenticate all requests and use `https://apiv2.\{region\}/api/v2/core/` as the base URL.| |Employment Hero|`employmenthero/default`|EmploymentHero [API](https://developer.employmenthero.com/api-references/#icon-book-open-introduction). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.employmenthero.com/api` as the base URL.| +|Emply People|`emplypeople/v2`|We use `https://api.emply.com/v2` as the base URL. Find the official docs [here](https://api.emply.com/v2/index.html).| |Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests. The base URL is `https://\{hostname\}/api`, where `\{hostname\}` is either `\{subdomain\}.eploy.net` or your full custom hostname when applicable.| |eRecruiter|`erecruiter/api`|[eRecruiter's API](https://api.erecruiter.net/swagger/ui/index). We automatically authenticate all requests and use `https://\{domain\}/Api` as the base URL.| |Eurécia|`eurecia/api`|Eurécia [REST API](https://api.eurecia.com/eurecia/fw/swagger/index.html#/) We automatically authenticate all requests and use `https://\{domain\}/eurecia/rest` as the base URL.| @@ -219,6 +221,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Google Workspace|`googleworkspace/people`|[Googles's API](https://developers.google.com/people/api/rest). We automatically authenticate all requests and use 'https://people.googleapis.com' as the base URL.| |Greenhouse (V1)|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.| |Greenhouse (V1)|`greenhouse/harvest`|Greenhouse [Harvest API v1](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v1` as the base URL.| +|Greenhouse (V3)|`greenhousev3/auth`|We use `https://auth.greenhouse.io` as the base URL. Find the official docs [here](https://harvestdocs.greenhouse.io/docs/harvest-partner-oauth).| |Greenhouse (V3)|`greenhousev3/harvestv3`|We use `https://harvest.greenhouse.io/v3` as the base URL. Find the official docs [here](https://harvestdocs.greenhouse.io/reference/).| |Greenhouse Job Board|`greenhousejobboard/boards-api`|[Greenhouse Job Board API](https://developers.greenhouse.io/job-board). We automatically authenticate all requests and use 'https://boards-api.greenhouse.io/v1/boards/\{job_board_token\}' as the base URL. Optionally, you can provide a custom job_board_token to use a different job board.| |Greenhouse|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.| @@ -237,6 +240,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.| +|HR WORKS|`hrworks/v3`|HRWorks's v3 [API](https://developers.hrworks.de/), which covers wage and salary data. 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://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.| @@ -305,6 +309,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Phenom|`phenom/rest-api`|The [Phenom API](https://developer.phenom.com/). We automatically authenticate all requests and use `https://api-stg.phenompro.com` as the base URL.| |Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\{subdomain\}.pinpointhq.com/api/v1` as the base URL.| |Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.| +|ReachMee|`reachmee/reachmee`|[ReachMee API](https://developer.talentech.io/api-details#api=reachmee-api). We automatically authenticate all requests and use `https://api.talentech.io/reachmee/` as the base URL.| |Recruit CRM|`recruitcrm/api`|We use `https://api.recruitcrm.io` as the base URL. Find the official docs [here](https://docs.recruitcrm.io/docs/rcrm-api-reference/ZG9jOjMyNzk0NA-getting-started).| |RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.| |Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials. The base URL is `https://gateway.remote.com/v1` for production API keys (prefixed `ra_live_`), or `https://gateway.remote-sandbox.com/v1` for sandbox API keys.| @@ -317,6 +322,9 @@ To get started, please pick the relevant API (some tools provide multiple to due |SD Worx|`sdworx/default`|SD Worx's [OData API](https://apistaging.cobra.sdworx.com/Resources). We automatically authenticate all requests using the client ID and secret and use `\{api_url\}` as the base URL.| |Silae|`silae/rest`|[Silae's REST API](https://silae-api.document360.io/docs). We automatically authenticate all requests and use 'https://payroll-api.silae.fr/payroll' as the base URL.| |Simployer|`simployer/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\{subdomain\}.alexishr.com` as base URL.| +|Skello|`skello/svcemployees`|Skello's [Service Employees API](https://swagger.skello.io/?urls.primaryName=Public%20SvcEmployees%20Docs). We automatically authenticate all requests and use `https://svc-employees.skello.io` as the base URL. We also fill in the required `organisationId` query param, which is derived from your API key.| +|Skello|`skello/svcpunch`|Skello's [Service Punch API](https://swagger.skello.io/?urls.primaryName=Public%20SvcPunch%20Docs). We automatically authenticate all requests and use `https://svc-punch.skello.io` as the base URL.| +|Skello|`skello/svcshops`|Skello's [Service Shops API](https://swagger.skello.io/?urls.primaryName=Public%20SvcShops%20Docs). We automatically authenticate all requests and use `https://svc-shops.skello.io` as the base URL. We also fill in the required `organisationId` query param, which is derived from your API key.| |SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using OAuth and use `https://api.smartrecruiters.com` as the base URL.| |SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.smartrecruiters.com` as the base URL.| |Softgarden|`softgarden/apply-api`|[Softgarden's Apply API](https://dev.softgarden.de/apply-api/). We automatically authenticate all requests and use 'https://jobdb.softgarden.de/jobdb/public' as base URL.| @@ -325,6 +333,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Spott|`spott/protected`|The [Spott API](https://docs.gospott.com). We automatically authenticate all requests and use `https://api.gospott.com` as the base URL.| |Sympa|`sympa/api`|Sympa's [API](https://documenter.getpostman.com/view/33639379/2sA3kXG1vX#intro). We automatically authenticate all requests and use `https://api.sympahr.net/api/` as the base URL.| |Taleez|`taleez/0`|[Taleez's API](https://api.taleez.com/swagger-ui/index.html). We automatically authenticate all requests and use `https://api.taleez.com/0` as the base URL.| +|Talent360|`talent360/v3`|We use `https://api.talent360.io/V3` as the base URL. Find the official docs [here](https://api-doc.talent360.io/).| |Talention|`talention/v1`|Talention's API. We automatically authenticate all requests and use `https://\{api_domain\}/tms/\{account_id\}/external/api/1.0` as the base URL. Documentation is provided privately by Talention. Contact Kombo support for assistance with specific endpoints.| |TalentLMS|`talentlms/v2`|We use `https://\{subdomain\}.talentlms.com/api/v2` as the base URL.| |Teamtailor Job Boards|`teamtailorjobboards/direct-apply`|Teamtailor's [Job Board Direct Apply API](https://partner.teamtailor.com/job_boards/direct_apply/#direct-apply). We automatically authenticate all requests and use `https://5qbn6o9x4h.execute-api.eu-west-1.amazonaws.com/production` as the base URL. All requests are automatically signed with HMAC-SHA256 signature.| @@ -349,6 +358,7 @@ To get started, please pick the relevant API (some tools provide multiple to due |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., "v1", "v2"); if omitted, it defaults to "v1".| |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).| |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.| +|Zellis|`zellis/api`|Zellis Intelligence Platform [OData API](https://apiportal.hcm.zellis.com/). We automatically authenticate all requests using the provided credentials and use `https://api.hcm.zellis.com/\{customer_code\}/external/odata/v1` as the base URL.| |Zelt|`zelt/partner`|Zelt's [Partner API](https://go.zelt.app/apiv2/swagger). We automatically authenticate all requests using the connected OAuth credentials and use `https://go.zelt.app/apiv2/partner` as the base URL.| |Zoho Recruit|`zohorecruit/v2`|Zoho Recruit's [V2 API](https://www.zoho.com/recruit/developer-guide/apiv2/modules-api.html). We automatically authenticate all requests and use `https://recruit.\{domain\}/recruit/v2` as the base URL.| |Zvoove Recruit|`zvooverecruit/applicants`|[Zvoove Recruit's Applicants API](https://api.zvoove.com/docs/). We automatically authenticate all requests using the applicants API key and use 'https://\{domain\}/api/public' as base URL.| diff --git a/docs/sdks/hris/README.md b/docs/sdks/hris/README.md index 5083d2ba..4c94b69d 100644 --- a/docs/sdks/hris/README.md +++ b/docs/sdks/hris/README.md @@ -22,6 +22,8 @@ * [get_performance_review_cycles](#get_performance_review_cycles) - Get performance review cycles * [get_performance_reviews](#get_performance_reviews) - Get performance reviews * [get_staffing_entities](#get_staffing_entities) - Get staffing entities +* [get_hris_pay_runs](#get_hris_pay_runs) - Pay Runs +* [get_hris_payslips](#get_hris_payslips) - Payslips ## get_employees @@ -1322,6 +1324,116 @@ end ### Errors +| Error Type | Status Code | Content Type | +| ------------------------------ | ------------------------------ | ------------------------------ | +| Models::Errors::KomboHrisError | default | application/json | +| Errors::APIError | 4XX, 5XX | \*/\* | + +## get_hris_pay_runs + +Retrieve all pay runs for all legal entities, across all time. + +A pay run represents one payroll cycle for a legal entity, covering a single pay period and grouping the payslips paid out through it. Use this endpoint to reconcile payroll periods and read the totals paid out across each run. Filter by `legal_entity_ids` to scope the results to specific legal entities. + +Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + +### Example Usage + + +```ruby +require 'kombo' + +Models = ::Kombo::Models +s = ::Kombo::Kombo.new( + integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28', + security: Models::Shared::Security.new( + api_key: '' + ) +) +res = s.hris.get_hris_pay_runs(page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + +unless res.get_hris_pay_runs_positive_response.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

For this endpoint, only changes to the returned record itself are considered. | | +| `include_deleted` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `legal_entity_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of legal entity IDs. | | + +### Response + +**[T.nilable(Models::Operations::GetHrisPayRunsResponse)](../../models/operations/gethrispayrunsresponse.md)** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------------ | ------------------------------ | ------------------------------ | +| Models::Errors::KomboHrisError | default | application/json | +| Errors::APIError | 4XX, 5XX | \*/\* | + +## get_hris_payslips + +Retrieve all payslips for all employees, across all time. + +A payslip is the individual pay statement an employee receives for one pay run, detailing what they were paid. Each payslip embeds the `employee` it belongs to and the `pay_run` it was paid out through, its `totals`, and the `line_items` that make it up (earnings, deductions, and contributions). Filter by `employee_ids`, `payrun_ids`, or `legal_entity_ids` to narrow the results. + +Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + +### Example Usage + + +```ruby +require 'kombo' + +Models = ::Kombo::Models +s = ::Kombo::Kombo.new( + integration_id: 'workday:HWUTwvyx2wLoSUHphiWVrp28', + security: Models::Shared::Security.new( + api_key: '' + ) +) +res = s.hris.get_hris_payslips(page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + +unless res.get_hris_payslips_positive_response.nil? + # handle response +end + +``` + +### Parameters + +| Parameter | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `integration_id` | *T.nilable(::String)* | :heavy_minus_sign: | ID of the integration you want to interact with. | workday:HWUTwvyx2wLoSUHphiWVrp28 | +| `cursor` | *T.nilable(::String)* | :heavy_minus_sign: | An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. | | +| `page_size` | *T.nilable(::Integer)* | :heavy_minus_sign: | The number of results to return per page. Maximum is 250. | | +| `updated_after` | [Date](https://ruby-doc.org/stdlib-2.6.1/libdoc/date/rdoc/Date.html) | :heavy_minus_sign: | Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged.

If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden.

For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior).

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

\| Path \| Added/Removed \| Linked Record \|
\| --- \| --- \| --- \|
\| `employee` \| âś— No \| âś— No \|
\| `pay_run` \| âś— No \| âś— No \|
\| `line_items` \| âś“ Yes \| âś“ Yes \|
\| `line_items` → `salary_type` \| ✗ 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` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. | | +| `ignore_unsupported_filters` | *T.nilable(T::Boolean)* | :heavy_minus_sign: | When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. | | +| `ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. | | +| `remote_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of remote IDs. | | +| `legal_entity_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of legal entity IDs. | | +| `employee_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of employee IDs. | | +| `payrun_ids` | T::Array<*::String*> | :heavy_minus_sign: | Filter by a comma-separated list of payrun IDs. | | + +### Response + +**[T.nilable(Models::Operations::GetHrisPayslipsResponse)](../../models/operations/gethrispayslipsresponse.md)** + +### Errors + | Error Type | Status Code | Content Type | | ------------------------------ | ------------------------------ | ------------------------------ | | Models::Errors::KomboHrisError | default | application/json | diff --git a/kombo.gemspec b/kombo.gemspec index c274d108..bf7689c7 100644 --- a/kombo.gemspec +++ b/kombo.gemspec @@ -4,7 +4,7 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) Gem::Specification.new do |s| s.name = 'kombo' - s.version = '1.2.8' + s.version = '1.2.9' s.platform = Gem::Platform::RUBY s.licenses = ['Apache-2.0'] s.summary = '' diff --git a/lib/kombo/ats.rb b/lib/kombo/ats.rb index 1b0666ee..4f392e2c 100644 --- a/lib/kombo/ats.rb +++ b/lib/kombo/ats.rb @@ -3914,6 +3914,165 @@ def get_notes(integration_id: nil, cursor: nil, page_size: nil, updated_after: n end + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetAtsScorecardsResponse) } + def get_ats_scorecards(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, timeout_ms: nil, http_headers: nil) + # get_ats_scorecards - Get scorecards + # Retrieve all scorecards. + # + # Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + request = Models::Operations::GetAtsScorecardsRequest.new( + integration_id: integration_id, + cursor: cursor, + page_size: page_size, + updated_after: updated_after, + include_deleted: include_deleted, + ignore_unsupported_filters: ignore_unsupported_filters, + ids: ids, + remote_ids: remote_ids, + candidate_ids: candidate_ids, + application_ids: application_ids + ) + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/ats/scorecards" + headers = Utils.get_headers(request, @sdk_configuration.globals) + headers = T.cast(headers, T::Hash[String, String]) + query_params = Utils.get_query_params(Models::Operations::GetAtsScorecardsRequest, request, nil, @sdk_configuration.globals) + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + security = @sdk_configuration.security_source&.call + + timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil? + timeout ||= @sdk_configuration.timeout + + + connection = @sdk_configuration.client + + hook_ctx = SDKHooks::HookContext.new( + config: @sdk_configuration, + base_url: base_url, + oauth2_scopes: nil, + operation_id: 'GetAtsScorecards', + security_source: @sdk_configuration.security_source + ) + + error = T.let(nil, T.nilable(StandardError)) + http_response = T.let(nil, T.nilable(Faraday::Response)) + + + begin + http_response = T.must(connection).get(url) do |req| + req.headers.merge!(headers) + req.options.timeout = timeout unless timeout.nil? + req.params = query_params + Utils.configure_request_security(req, security) + http_headers&.each do |key, value| + req.headers[key.to_s] = value + end + + @sdk_configuration.hooks.before_request( + hook_ctx: SDKHooks::BeforeRequestHookContext.new( + hook_ctx: hook_ctx + ), + request: req + ) + end + rescue StandardError => e + error = e + ensure + if http_response.nil? || Utils.error_status?(http_response.status) + http_response = @sdk_configuration.hooks.after_error( + error: error, + hook_ctx: SDKHooks::AfterErrorHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + else + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + end + + if http_response.nil? + raise error if !error.nil? + raise 'no response' + end + end + + content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream') + if Utils.match_status_code(http_response.status, ['200']) + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetAtsScorecardsPositiveResponse) + response = Models::Operations::GetAtsScorecardsResponse.new( + status_code: http_response.status, + content_type: content_type, + raw_response: http_response, + get_ats_scorecards_positive_response: T.unsafe(obj) + ) + sdk = self + + response.next_page = proc do + next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search + if next_cursor.nil? + next nil + else + next_cursor = next_cursor[0] + if next_cursor.nil? + next nil + end + end + + sdk.get_ats_scorecards( + integration_id: request.integration_id, + cursor: next_cursor, + page_size: request.page_size, + updated_after: request.updated_after, + include_deleted: request.include_deleted, + ignore_unsupported_filters: request.ignore_unsupported_filters, + ids: request.ids, + remote_ids: request.remote_ids, + candidate_ids: request.candidate_ids, + application_ids: request.application_ids, + http_headers: http_headers + ) + end + + + return response + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + else + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboAtsError) + obj.raw_response = http_response + raise obj + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + end + end + + sig { params(body: Models::Shared::PostAtsImportTrackedApplicationRequestBody, integration_id: T.nilable(::String), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::PostAtsImportTrackedApplicationResponse) } def import_tracked_application(body:, integration_id: nil, timeout_ms: nil, http_headers: nil) # import_tracked_application - Import tracked application diff --git a/lib/kombo/general.rb b/lib/kombo/general.rb index 37c0c92e..3bb73f50 100644 --- a/lib/kombo/general.rb +++ b/lib/kombo/general.rb @@ -316,6 +316,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Apploi|`apploi/rest-api`|The [Apploi API](https://integrate.apploi.com/). We automatically authenticate all requests and use `https://partners.apploi.com/` as the base URL.| # |Ashby|`ashby/v1`|Ashby's [V1 API](https://developers.ashbyhq.com/reference/introduction). We automatically authenticate all requests with the provided credentials and use `https://api.ashbyhq.com` as the base URL. Please note that Ashby uses an RPC-style API. Please check [the Ashby API documentation](https://developers.ashbyhq.com/reference/introduction) for details on how to use it.| # |Asymbl|`asymbl/v63`|We use `https://\{subdomain\}.my.salesforce.com` as the base URL. Find the official docs [here](https://asymblinc.github.io/ats/ats.html).| + # |Atlas|`atlas/v1`|We use `https://api.recruitwithatlas.com/api/v1/` as the base URL. Find the official docs [here](https://api.recruitwithatlas.com/api/v1/docs/).| # |Avature|`avature/custom-api`|Avatures's Custom API. Call `Get /openapi` to retrieve the specific custom API schema. We automatically authenticate all requests and use the instance specific custom API URL as the base URL.| # |Avionté|`avionte/front-office-v1`|Avionte's API. We automatically authenticate all requests and use `https://api.avionte.com/front-office/v1` as the base URL. Documentation for the BOLD Front Office API: https://developer.avionte.com/reference/get-all-talent-tags| # |BambooHR|`bamboohr/v1`|BambooHR's [API](https://documentation.bamboohr.com/reference/get-employee). We automatically authenticate all requests using the customer credentials `https://api.bamboohr.com/api/gateway.php/\{subdomain\}/v1` as the base URL.| @@ -359,6 +360,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Docebo|`docebo/api`|Docebo [API](https://developer.docebo.com). We automatically handle authentication and use `https://\{subdomain\}.docebosaas.com` as the base URL.| # |Eightfold|`eightfold/api`|Eightfold's [API](https://apidocs.eightfold.ai/). We automatically authenticate all requests and use `https://apiv2.\{region\}/api/v2/core/` as the base URL.| # |Employment Hero|`employmenthero/default`|EmploymentHero [API](https://developer.employmenthero.com/api-references/#icon-book-open-introduction). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.employmenthero.com/api` as the base URL.| + # |Emply People|`emplypeople/v2`|We use `https://api.emply.com/v2` as the base URL. Find the official docs [here](https://api.emply.com/v2/index.html).| # |Eploy|`eploy/api`|Eploy's [API](https://www.eploy.com/resources/developers/api-documentation/). We automatically authenticate all requests. The base URL is `https://\{hostname\}/api`, where `\{hostname\}` is either `\{subdomain\}.eploy.net` or your full custom hostname when applicable.| # |eRecruiter|`erecruiter/api`|[eRecruiter's API](https://api.erecruiter.net/swagger/ui/index). We automatically authenticate all requests and use `https://\{domain\}/Api` as the base URL.| # |Eurécia|`eurecia/api`|Eurécia [REST API](https://api.eurecia.com/eurecia/fw/swagger/index.html#/) We automatically authenticate all requests and use `https://\{domain\}/eurecia/rest` as the base URL.| @@ -372,6 +374,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Google Workspace|`googleworkspace/people`|[Googles's API](https://developers.google.com/people/api/rest). We automatically authenticate all requests and use 'https://people.googleapis.com' as the base URL.| # |Greenhouse (V1)|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.| # |Greenhouse (V1)|`greenhouse/harvest`|Greenhouse [Harvest API v1](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v1` as the base URL.| + # |Greenhouse (V3)|`greenhousev3/auth`|We use `https://auth.greenhouse.io` as the base URL. Find the official docs [here](https://harvestdocs.greenhouse.io/docs/harvest-partner-oauth).| # |Greenhouse (V3)|`greenhousev3/harvestv3`|We use `https://harvest.greenhouse.io/v3` as the base URL. Find the official docs [here](https://harvestdocs.greenhouse.io/reference/).| # |Greenhouse Job Board|`greenhousejobboard/boards-api`|[Greenhouse Job Board API](https://developers.greenhouse.io/job-board). We automatically authenticate all requests and use 'https://boards-api.greenhouse.io/v1/boards/\{job_board_token\}' as the base URL. Optionally, you can provide a custom job_board_token to use a different job board.| # |Greenhouse|`greenhouse/harvest-v2`|Greenhouse [Harvest API v2](https://developers.greenhouse.io/harvest.html). We automatically authenticate all requests using the API key and use `https://harvest.greenhouse.io/v2` as the base URL.| @@ -390,6 +393,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |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.| + # |HR WORKS|`hrworks/v3`|HRWorks's v3 [API](https://developers.hrworks.de/), which covers wage and salary data. 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://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.| @@ -458,6 +462,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Phenom|`phenom/rest-api`|The [Phenom API](https://developer.phenom.com/). We automatically authenticate all requests and use `https://api-stg.phenompro.com` as the base URL.| # |Pinpoint|`pinpoint/v1`|Pinpoint's [JSON:API](https://developers.pinpointhq.com/docs). We automatically authenticate all requests using the `X-API-KEY` header and use `https://\{subdomain\}.pinpointhq.com/api/v1` as the base URL.| # |Planday|`planday/api`|Planday's [HR API v1.0](https://openapi.planday.com/api/hr?version=v1.0). We automatically authenticate all requests and use `https://openapi.planday.com` as the base URL.| + # |ReachMee|`reachmee/reachmee`|[ReachMee API](https://developer.talentech.io/api-details#api=reachmee-api). We automatically authenticate all requests and use `https://api.talentech.io/reachmee/` as the base URL.| # |Recruit CRM|`recruitcrm/api`|We use `https://api.recruitcrm.io` as the base URL. Find the official docs [here](https://docs.recruitcrm.io/docs/rcrm-api-reference/ZG9jOjMyNzk0NA-getting-started).| # |RecruiterFlow|`recruiterflow/v1`|RecruiterFlow API [docs](https://docs.recruiterflow.com/). We automatically authenticate all requests using the RF-Api-Key header and use `https://api.recruiterflow.com` as the base URL.| # |Remote|`remotecom/default`|Remote's [API](https://remote.com/resources/api/getting-started). We automatically authenticate all requests using provided credentials. The base URL is `https://gateway.remote.com/v1` for production API keys (prefixed `ra_live_`), or `https://gateway.remote-sandbox.com/v1` for sandbox API keys.| @@ -470,6 +475,9 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |SD Worx|`sdworx/default`|SD Worx's [OData API](https://apistaging.cobra.sdworx.com/Resources). We automatically authenticate all requests using the client ID and secret and use `\{api_url\}` as the base URL.| # |Silae|`silae/rest`|[Silae's REST API](https://silae-api.document360.io/docs). We automatically authenticate all requests and use 'https://payroll-api.silae.fr/payroll' as the base URL.| # |Simployer|`simployer/v1`|[AlexisHR's v1 API](https://docs.alexishr.com/) We automatically authenticate all requests and use `https://\{subdomain\}.alexishr.com` as base URL.| + # |Skello|`skello/svcemployees`|Skello's [Service Employees API](https://swagger.skello.io/?urls.primaryName=Public%20SvcEmployees%20Docs). We automatically authenticate all requests and use `https://svc-employees.skello.io` as the base URL. We also fill in the required `organisationId` query param, which is derived from your API key.| + # |Skello|`skello/svcpunch`|Skello's [Service Punch API](https://swagger.skello.io/?urls.primaryName=Public%20SvcPunch%20Docs). We automatically authenticate all requests and use `https://svc-punch.skello.io` as the base URL.| + # |Skello|`skello/svcshops`|Skello's [Service Shops API](https://swagger.skello.io/?urls.primaryName=Public%20SvcShops%20Docs). We automatically authenticate all requests and use `https://svc-shops.skello.io` as the base URL. We also fill in the required `organisationId` query param, which is derived from your API key.| # |SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using OAuth and use `https://api.smartrecruiters.com` as the base URL.| # |SmartRecruiters|`smartrecruiters/default`|Smartrecruiters [API](https://developers.smartrecruiters.com/reference/apply-api). We automatically authenticate all requests using the credentials supplied by the customer and use `https://api.smartrecruiters.com` as the base URL.| # |Softgarden|`softgarden/apply-api`|[Softgarden's Apply API](https://dev.softgarden.de/apply-api/). We automatically authenticate all requests and use 'https://jobdb.softgarden.de/jobdb/public' as base URL.| @@ -478,6 +486,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Spott|`spott/protected`|The [Spott API](https://docs.gospott.com). We automatically authenticate all requests and use `https://api.gospott.com` as the base URL.| # |Sympa|`sympa/api`|Sympa's [API](https://documenter.getpostman.com/view/33639379/2sA3kXG1vX#intro). We automatically authenticate all requests and use `https://api.sympahr.net/api/` as the base URL.| # |Taleez|`taleez/0`|[Taleez's API](https://api.taleez.com/swagger-ui/index.html). We automatically authenticate all requests and use `https://api.taleez.com/0` as the base URL.| + # |Talent360|`talent360/v3`|We use `https://api.talent360.io/V3` as the base URL. Find the official docs [here](https://api-doc.talent360.io/).| # |Talention|`talention/v1`|Talention's API. We automatically authenticate all requests and use `https://\{api_domain\}/tms/\{account_id\}/external/api/1.0` as the base URL. Documentation is provided privately by Talention. Contact Kombo support for assistance with specific endpoints.| # |TalentLMS|`talentlms/v2`|We use `https://\{subdomain\}.talentlms.com/api/v2` as the base URL.| # |Teamtailor Job Boards|`teamtailorjobboards/direct-apply`|Teamtailor's [Job Board Direct Apply API](https://partner.teamtailor.com/job_boards/direct_apply/#direct-apply). We automatically authenticate all requests and use `https://5qbn6o9x4h.execute-api.eu-west-1.amazonaws.com/production` as the base URL. All requests are automatically signed with HMAC-SHA256 signature.| @@ -502,6 +511,7 @@ def send_passthrough_request(body:, tool:, api:, integration_id: nil, timeout_ms # |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., "v1", "v2"); if omitted, it defaults to "v1".| # |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).| # |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.| + # |Zellis|`zellis/api`|Zellis Intelligence Platform [OData API](https://apiportal.hcm.zellis.com/). We automatically authenticate all requests using the provided credentials and use `https://api.hcm.zellis.com/\{customer_code\}/external/odata/v1` as the base URL.| # |Zelt|`zelt/partner`|Zelt's [Partner API](https://go.zelt.app/apiv2/swagger). We automatically authenticate all requests using the connected OAuth credentials and use `https://go.zelt.app/apiv2/partner` as the base URL.| # |Zoho Recruit|`zohorecruit/v2`|Zoho Recruit's [V2 API](https://www.zoho.com/recruit/developer-guide/apiv2/modules-api.html). We automatically authenticate all requests and use `https://recruit.\{domain\}/recruit/v2` as the base URL.| # |Zvoove Recruit|`zvooverecruit/applicants`|[Zvoove Recruit's Applicants API](https://api.zvoove.com/docs/). We automatically authenticate all requests using the applicants API key and use 'https://\{domain\}/api/public' as base URL.| diff --git a/lib/kombo/hris.rb b/lib/kombo/hris.rb index 4b4003ff..082b49d4 100644 --- a/lib/kombo/hris.rb +++ b/lib/kombo/hris.rb @@ -2924,6 +2924,328 @@ def get_staffing_entities(integration_id: nil, cursor: nil, page_size: nil, upda end + return response + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + else + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError) + obj.raw_response = http_response + raise obj + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + end + end + + + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayRunsResponse) } + def get_hris_pay_runs(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, timeout_ms: nil, http_headers: nil) + # get_hris_pay_runs - Pay Runs + # Retrieve all pay runs for all legal entities, across all time. + # + # A pay run represents one payroll cycle for a legal entity, covering a single pay period and grouping the payslips paid out through it. Use this endpoint to reconcile payroll periods and read the totals paid out across each run. Filter by `legal_entity_ids` to scope the results to specific legal entities. + # + # Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + request = Models::Operations::GetHrisPayRunsRequest.new( + integration_id: integration_id, + cursor: cursor, + page_size: page_size, + updated_after: updated_after, + include_deleted: include_deleted, + ignore_unsupported_filters: ignore_unsupported_filters, + ids: ids, + remote_ids: remote_ids, + legal_entity_ids: legal_entity_ids + ) + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/hris/pay-runs" + headers = Utils.get_headers(request, @sdk_configuration.globals) + headers = T.cast(headers, T::Hash[String, String]) + query_params = Utils.get_query_params(Models::Operations::GetHrisPayRunsRequest, request, nil, @sdk_configuration.globals) + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + security = @sdk_configuration.security_source&.call + + timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil? + timeout ||= @sdk_configuration.timeout + + + connection = @sdk_configuration.client + + hook_ctx = SDKHooks::HookContext.new( + config: @sdk_configuration, + base_url: base_url, + oauth2_scopes: nil, + operation_id: 'GetHrisPayRuns', + security_source: @sdk_configuration.security_source + ) + + error = T.let(nil, T.nilable(StandardError)) + http_response = T.let(nil, T.nilable(Faraday::Response)) + + + begin + http_response = T.must(connection).get(url) do |req| + req.headers.merge!(headers) + req.options.timeout = timeout unless timeout.nil? + req.params = query_params + Utils.configure_request_security(req, security) + http_headers&.each do |key, value| + req.headers[key.to_s] = value + end + + @sdk_configuration.hooks.before_request( + hook_ctx: SDKHooks::BeforeRequestHookContext.new( + hook_ctx: hook_ctx + ), + request: req + ) + end + rescue StandardError => e + error = e + ensure + if http_response.nil? || Utils.error_status?(http_response.status) + http_response = @sdk_configuration.hooks.after_error( + error: error, + hook_ctx: SDKHooks::AfterErrorHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + else + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + end + + if http_response.nil? + raise error if !error.nil? + raise 'no response' + end + end + + content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream') + if Utils.match_status_code(http_response.status, ['200']) + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayRunsPositiveResponse) + response = Models::Operations::GetHrisPayRunsResponse.new( + status_code: http_response.status, + content_type: content_type, + raw_response: http_response, + get_hris_pay_runs_positive_response: T.unsafe(obj) + ) + sdk = self + + response.next_page = proc do + next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search + if next_cursor.nil? + next nil + else + next_cursor = next_cursor[0] + if next_cursor.nil? + next nil + end + end + + sdk.get_hris_pay_runs( + integration_id: request.integration_id, + cursor: next_cursor, + page_size: request.page_size, + updated_after: request.updated_after, + include_deleted: request.include_deleted, + ignore_unsupported_filters: request.ignore_unsupported_filters, + ids: request.ids, + remote_ids: request.remote_ids, + legal_entity_ids: request.legal_entity_ids, + http_headers: http_headers + ) + end + + + return response + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + else + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Errors::KomboHrisError) + obj.raw_response = http_response + raise obj + else + raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' + end + end + end + + + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), page_size: T.nilable(::Integer), updated_after: T.nilable(::DateTime), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), employee_ids: T.nilable(T::Array[::String]), payrun_ids: T.nilable(T::Array[::String]), timeout_ms: T.nilable(Integer), http_headers: T.nilable(T::Hash[T.any(String, Symbol), String])).returns(Models::Operations::GetHrisPayslipsResponse) } + def get_hris_payslips(integration_id: nil, cursor: nil, page_size: nil, updated_after: nil, include_deleted: nil, ignore_unsupported_filters: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, employee_ids: nil, payrun_ids: nil, timeout_ms: nil, http_headers: nil) + # get_hris_payslips - Payslips + # Retrieve all payslips for all employees, across all time. + # + # A payslip is the individual pay statement an employee receives for one pay run, detailing what they were paid. Each payslip embeds the `employee` it belongs to and the `pay_run` it was paid out through, its `totals`, and the `line_items` that make it up (earnings, deductions, and contributions). Filter by `employee_ids`, `payrun_ids`, or `legal_entity_ids` to narrow the results. + # + # Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: `(id IN ids) AND (remote_id IN remote_ids)` + request = Models::Operations::GetHrisPayslipsRequest.new( + integration_id: integration_id, + cursor: cursor, + page_size: page_size, + updated_after: updated_after, + include_deleted: include_deleted, + ignore_unsupported_filters: ignore_unsupported_filters, + ids: ids, + remote_ids: remote_ids, + legal_entity_ids: legal_entity_ids, + employee_ids: employee_ids, + payrun_ids: payrun_ids + ) + url, params = @sdk_configuration.get_server_details + base_url = Utils.template_url(url, params) + url = "#{base_url}/hris/payslips" + headers = Utils.get_headers(request, @sdk_configuration.globals) + headers = T.cast(headers, T::Hash[String, String]) + query_params = Utils.get_query_params(Models::Operations::GetHrisPayslipsRequest, request, nil, @sdk_configuration.globals) + headers['Accept'] = 'application/json' + headers['user-agent'] = @sdk_configuration.user_agent + + security = @sdk_configuration.security_source&.call + + timeout = (timeout_ms.to_f / 1000) unless timeout_ms.nil? + timeout ||= @sdk_configuration.timeout + + + connection = @sdk_configuration.client + + hook_ctx = SDKHooks::HookContext.new( + config: @sdk_configuration, + base_url: base_url, + oauth2_scopes: nil, + operation_id: 'GetHrisPayslips', + security_source: @sdk_configuration.security_source + ) + + error = T.let(nil, T.nilable(StandardError)) + http_response = T.let(nil, T.nilable(Faraday::Response)) + + + begin + http_response = T.must(connection).get(url) do |req| + req.headers.merge!(headers) + req.options.timeout = timeout unless timeout.nil? + req.params = query_params + Utils.configure_request_security(req, security) + http_headers&.each do |key, value| + req.headers[key.to_s] = value + end + + @sdk_configuration.hooks.before_request( + hook_ctx: SDKHooks::BeforeRequestHookContext.new( + hook_ctx: hook_ctx + ), + request: req + ) + end + rescue StandardError => e + error = e + ensure + if http_response.nil? || Utils.error_status?(http_response.status) + http_response = @sdk_configuration.hooks.after_error( + error: error, + hook_ctx: SDKHooks::AfterErrorHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + else + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + end + + if http_response.nil? + raise error if !error.nil? + raise 'no response' + end + end + + content_type = http_response.headers.fetch('Content-Type', 'application/octet-stream') + if Utils.match_status_code(http_response.status, ['200']) + if Utils.match_content_type(content_type, 'application/json') + http_response = @sdk_configuration.hooks.after_success( + hook_ctx: SDKHooks::AfterSuccessHookContext.new( + hook_ctx: hook_ctx + ), + response: http_response + ) + response_data = http_response.env.response_body + obj = Crystalline.unmarshal_json(JSON.parse(response_data), Models::Shared::GetHrisPayslipsPositiveResponse) + response = Models::Operations::GetHrisPayslipsResponse.new( + status_code: http_response.status, + content_type: content_type, + raw_response: http_response, + get_hris_payslips_positive_response: T.unsafe(obj) + ) + sdk = self + + response.next_page = proc do + next_cursor = Janeway.enum_for('$.data.next', JSON.parse(response_data)).search + if next_cursor.nil? + next nil + else + next_cursor = next_cursor[0] + if next_cursor.nil? + next nil + end + end + + sdk.get_hris_payslips( + integration_id: request.integration_id, + cursor: next_cursor, + page_size: request.page_size, + updated_after: request.updated_after, + include_deleted: request.include_deleted, + ignore_unsupported_filters: request.ignore_unsupported_filters, + ids: request.ids, + remote_ids: request.remote_ids, + legal_entity_ids: request.legal_entity_ids, + employee_ids: request.employee_ids, + payrun_ids: request.payrun_ids, + http_headers: http_headers + ) + end + + return response else raise ::Kombo::Models::Errors::APIError.new(status_code: http_response.status, body: http_response.env.response_body, raw_response: http_response), 'Unknown content type received' diff --git a/lib/kombo/models/operations.rb b/lib/kombo/models/operations.rb index d6fb2ca5..c20d4ac3 100644 --- a/lib/kombo/models/operations.rb +++ b/lib/kombo/models/operations.rb @@ -38,6 +38,8 @@ module Operations autoload :GetAtsRejectionReasonsResponse, 'kombo/models/operations/getatsrejectionreasons_response.rb' autoload :GetAtsRolesRequest, 'kombo/models/operations/getatsroles_request.rb' autoload :GetAtsRolesResponse, 'kombo/models/operations/getatsroles_response.rb' + autoload :GetAtsScorecardsRequest, 'kombo/models/operations/getatsscorecards_request.rb' + autoload :GetAtsScorecardsResponse, 'kombo/models/operations/getatsscorecards_response.rb' autoload :GetAtsTagsRequest, 'kombo/models/operations/getatstags_request.rb' autoload :GetAtsTagsResponse, 'kombo/models/operations/getatstags_response.rb' autoload :GetAtsUsersRequest, 'kombo/models/operations/getatsusers_request.rb' @@ -63,6 +65,10 @@ module Operations autoload :GetHrisLegalEntitiesResponse, 'kombo/models/operations/gethrislegalentities_response.rb' autoload :GetHrisLocationsRequest, 'kombo/models/operations/gethrislocations_request.rb' autoload :GetHrisLocationsResponse, 'kombo/models/operations/gethrislocations_response.rb' + autoload :GetHrisPayRunsRequest, 'kombo/models/operations/gethrispayruns_request.rb' + autoload :GetHrisPayRunsResponse, 'kombo/models/operations/gethrispayruns_response.rb' + autoload :GetHrisPayslipsRequest, 'kombo/models/operations/gethrispayslips_request.rb' + autoload :GetHrisPayslipsResponse, 'kombo/models/operations/gethrispayslips_response.rb' autoload :GetHrisPerformanceReviewCyclesRequest, 'kombo/models/operations/gethrisperformancereviewcycles_request.rb' autoload :GetHrisPerformanceReviewCyclesResponse, 'kombo/models/operations/gethrisperformancereviewcycles_response.rb' autoload :GetHrisPerformanceReviewsRequest, 'kombo/models/operations/gethrisperformancereviews_request.rb' diff --git a/lib/kombo/models/operations/getatsscorecards_request.rb b/lib/kombo/models/operations/getatsscorecards_request.rb new file mode 100644 index 00000000..d3c0d207 --- /dev/null +++ b/lib/kombo/models/operations/getatsscorecards_request.rb @@ -0,0 +1,83 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetAtsScorecardsRequest + extend T::Sig + include Crystalline::MetadataFields + + # ID of the integration you want to interact with. + field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } } + # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. + field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } } + # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged. + # + # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. + # + # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). + # + # 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 | + # | `interview` | ✗ 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._ + field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } } + # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. + field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of remote IDs. + field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of candidate IDs. Prefer filtering by `candidate_ids` when you want to download the full interview feedback available for a candidate, across all their applications. + field :candidate_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'candidate_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of application IDs. We will only return scorecards that belong to _any_ of these applications. + field :application_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'application_ids', 'style': 'form', 'explode': false } } + # The number of results to return per page. Maximum is 250. + field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } } + # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. + field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } } + # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. + field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } } + + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), candidate_ids: T.nilable(T::Array[::String]), application_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void } + def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, candidate_ids: nil, application_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + @integration_id = integration_id + @cursor = cursor + @updated_after = updated_after + @ids = ids + @remote_ids = remote_ids + @candidate_ids = candidate_ids + @application_ids = application_ids + @page_size = page_size + @include_deleted = include_deleted + @ignore_unsupported_filters = ignore_unsupported_filters + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @integration_id == other.integration_id + return false unless @cursor == other.cursor + return false unless @updated_after == other.updated_after + return false unless @ids == other.ids + return false unless @remote_ids == other.remote_ids + return false unless @candidate_ids == other.candidate_ids + return false unless @application_ids == other.application_ids + return false unless @page_size == other.page_size + return false unless @include_deleted == other.include_deleted + return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters + true + end + end + end + end +end diff --git a/lib/kombo/models/operations/getatsscorecards_request.rbi b/lib/kombo/models/operations/getatsscorecards_request.rbi new file mode 100644 index 00000000..8ed02b5c --- /dev/null +++ b/lib/kombo/models/operations/getatsscorecards_request.rbi @@ -0,0 +1,31 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetAtsScorecardsRequest + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetAtsScorecardsRequest + def integration_id(); end + def integration_id=(str_); end + def cursor(); end + def cursor=(str_); end + def updated_after(); end + def updated_after=(str_); end + def ids(); end + def ids=(str_); end + def remote_ids(); end + def remote_ids=(str_); end + def candidate_ids(); end + def candidate_ids=(str_); end + def application_ids(); end + def application_ids=(str_); end + def page_size(); end + def page_size=(str_); end + def include_deleted(); end + def include_deleted=(str_); end + def ignore_unsupported_filters(); end + def ignore_unsupported_filters=(str_); end +end diff --git a/lib/kombo/models/operations/getatsscorecards_response.rb b/lib/kombo/models/operations/getatsscorecards_response.rb new file mode 100644 index 00000000..716893d6 --- /dev/null +++ b/lib/kombo/models/operations/getatsscorecards_response.rb @@ -0,0 +1,56 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetAtsScorecardsResponse + extend T::Sig + include Crystalline::MetadataFields + sig { returns(T.proc.returns(T.nilable(GetAtsScorecardsResponse))) } + attr_accessor :next_page + + # HTTP response content type for this operation + field :content_type, ::String + # HTTP response status code for this operation + field :status_code, ::Integer + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # GET /ats/scorecards Positive response + field :get_ats_scorecards_positive_response, Crystalline::Nilable.new(Models::Shared::GetAtsScorecardsPositiveResponse) + + sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_ats_scorecards_positive_response: T.nilable(Models::Shared::GetAtsScorecardsPositiveResponse)).void } + def initialize(content_type:, status_code:, raw_response:, get_ats_scorecards_positive_response: nil) + @content_type = content_type + @status_code = status_code + @raw_response = raw_response + @get_ats_scorecards_positive_response = get_ats_scorecards_positive_response + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @content_type == other.content_type + return false unless @status_code == other.status_code + return false unless @raw_response == other.raw_response + return false unless @get_ats_scorecards_positive_response == other.get_ats_scorecards_positive_response + true + end + + def each + page = self + loop do + yield page + next_page = page.next_page.call if page.next_page + break if next_page.nil? + page = T.must(next_page) + end + end + end + end + end +end diff --git a/lib/kombo/models/operations/getatsscorecards_response.rbi b/lib/kombo/models/operations/getatsscorecards_response.rbi new file mode 100644 index 00000000..4adf8d51 --- /dev/null +++ b/lib/kombo/models/operations/getatsscorecards_response.rbi @@ -0,0 +1,19 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetAtsScorecardsResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetAtsScorecardsResponse + def content_type(); end + def content_type=(str_); end + def status_code(); end + def status_code=(str_); end + def raw_response(); end + def raw_response=(str_); end + def get_ats_scorecards_positive_response(); end + def get_ats_scorecards_positive_response=(str_); end +end diff --git a/lib/kombo/models/operations/gethrispayruns_request.rb b/lib/kombo/models/operations/gethrispayruns_request.rb new file mode 100644 index 00000000..1f54aa9d --- /dev/null +++ b/lib/kombo/models/operations/gethrispayruns_request.rb @@ -0,0 +1,70 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetHrisPayRunsRequest + extend T::Sig + include Crystalline::MetadataFields + + # ID of the integration you want to interact with. + field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } } + # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. + field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } } + # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged. + # + # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. + # + # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). + # + # For this endpoint, only changes to the returned record itself are considered. + field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } } + # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. + field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of remote IDs. + field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of legal entity IDs. + field :legal_entity_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'legal_entity_ids', 'style': 'form', 'explode': false } } + # The number of results to return per page. Maximum is 250. + field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } } + # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. + field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } } + # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. + field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } } + + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void } + def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + @integration_id = integration_id + @cursor = cursor + @updated_after = updated_after + @ids = ids + @remote_ids = remote_ids + @legal_entity_ids = legal_entity_ids + @page_size = page_size + @include_deleted = include_deleted + @ignore_unsupported_filters = ignore_unsupported_filters + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @integration_id == other.integration_id + return false unless @cursor == other.cursor + return false unless @updated_after == other.updated_after + return false unless @ids == other.ids + return false unless @remote_ids == other.remote_ids + return false unless @legal_entity_ids == other.legal_entity_ids + return false unless @page_size == other.page_size + return false unless @include_deleted == other.include_deleted + return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters + true + end + end + end + end +end diff --git a/lib/kombo/models/operations/gethrispayruns_request.rbi b/lib/kombo/models/operations/gethrispayruns_request.rbi new file mode 100644 index 00000000..d9a644b9 --- /dev/null +++ b/lib/kombo/models/operations/gethrispayruns_request.rbi @@ -0,0 +1,29 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetHrisPayRunsRequest + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetHrisPayRunsRequest + def integration_id(); end + def integration_id=(str_); end + def cursor(); end + def cursor=(str_); end + def updated_after(); end + def updated_after=(str_); end + def ids(); end + def ids=(str_); end + def remote_ids(); end + def remote_ids=(str_); end + def legal_entity_ids(); end + def legal_entity_ids=(str_); end + def page_size(); end + def page_size=(str_); end + def include_deleted(); end + def include_deleted=(str_); end + def ignore_unsupported_filters(); end + def ignore_unsupported_filters=(str_); end +end diff --git a/lib/kombo/models/operations/gethrispayruns_response.rb b/lib/kombo/models/operations/gethrispayruns_response.rb new file mode 100644 index 00000000..0de0a206 --- /dev/null +++ b/lib/kombo/models/operations/gethrispayruns_response.rb @@ -0,0 +1,56 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetHrisPayRunsResponse + extend T::Sig + include Crystalline::MetadataFields + sig { returns(T.proc.returns(T.nilable(GetHrisPayRunsResponse))) } + attr_accessor :next_page + + # HTTP response content type for this operation + field :content_type, ::String + # HTTP response status code for this operation + field :status_code, ::Integer + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # GET /hris/pay-runs Positive response + field :get_hris_pay_runs_positive_response, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponse) + + sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_hris_pay_runs_positive_response: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponse)).void } + def initialize(content_type:, status_code:, raw_response:, get_hris_pay_runs_positive_response: nil) + @content_type = content_type + @status_code = status_code + @raw_response = raw_response + @get_hris_pay_runs_positive_response = get_hris_pay_runs_positive_response + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @content_type == other.content_type + return false unless @status_code == other.status_code + return false unless @raw_response == other.raw_response + return false unless @get_hris_pay_runs_positive_response == other.get_hris_pay_runs_positive_response + true + end + + def each + page = self + loop do + yield page + next_page = page.next_page.call if page.next_page + break if next_page.nil? + page = T.must(next_page) + end + end + end + end + end +end diff --git a/lib/kombo/models/operations/gethrispayruns_response.rbi b/lib/kombo/models/operations/gethrispayruns_response.rbi new file mode 100644 index 00000000..c28fe0fa --- /dev/null +++ b/lib/kombo/models/operations/gethrispayruns_response.rbi @@ -0,0 +1,19 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetHrisPayRunsResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetHrisPayRunsResponse + def content_type(); end + def content_type=(str_); end + def status_code(); end + def status_code=(str_); end + def raw_response(); end + def raw_response=(str_); end + def get_hris_pay_runs_positive_response(); end + def get_hris_pay_runs_positive_response=(str_); end +end diff --git a/lib/kombo/models/operations/gethrispayslips_request.rb b/lib/kombo/models/operations/gethrispayslips_request.rb new file mode 100644 index 00000000..70caba56 --- /dev/null +++ b/lib/kombo/models/operations/gethrispayslips_request.rb @@ -0,0 +1,87 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetHrisPayslipsRequest + extend T::Sig + include Crystalline::MetadataFields + + # ID of the integration you want to interact with. + field :integration_id, Crystalline::Nilable.new(::String), { 'header': { 'field_name': 'X-Integration-Id', 'style': 'simple', 'explode': false } } + # An optional cursor string used for pagination. This can be retrieved from the `next` property of the previous page response. + field :cursor, Crystalline::Nilable.new(::String), { 'query_param': { 'field_name': 'cursor', 'style': 'form', 'explode': true } } + # Filter the entries based on the modification date in format `YYYY-MM-DDTHH:mm:ss.sssZ`. Returns records where either the record itself **OR** its nested data has been updated since this timestamp, even if the record's own `changed_at` field remains unchanged. + # + # If you want to track entry deletion, also set the `include_deleted=true` query parameter, because otherwise, deleted entries will be hidden. + # + # For more details, see [Understanding changed_at vs updated_after Behavior](https://docs.kombo.dev/ats/getting-started/fetching-data#understanding-changed_at-vs-updated_after-behavior). + # + # For this endpoint, `updated_after` matches when the returned record changed, or when related data changed as described below. + # + # | Path | Added/Removed | Linked Record | + # | --- | --- | --- | + # | `employee` | ✗ No | ✗ No | + # | `pay_run` | ✗ No | ✗ No | + # | `line_items` | ✓ Yes | ✓ Yes | + # | `line_items` → `salary_type` | ✗ 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._ + field :updated_after, Crystalline::Nilable.new(::DateTime), { 'query_param': { 'field_name': 'updated_after', 'style': 'form', 'explode': true } } + # Filter by a comma-separated list of IDs such as `222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3`. + field :ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of remote IDs. + field :remote_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'remote_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of legal entity IDs. + field :legal_entity_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'legal_entity_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of employee IDs. + field :employee_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'employee_ids', 'style': 'form', 'explode': false } } + # Filter by a comma-separated list of payrun IDs. + field :payrun_ids, Crystalline::Nilable.new(Crystalline::Array.new(::String)), { 'query_param': { 'field_name': 'payrun_ids', 'style': 'form', 'explode': false } } + # The number of results to return per page. Maximum is 250. + field :page_size, Crystalline::Nilable.new(::Integer), { 'query_param': { 'field_name': 'page_size', 'style': 'form', 'explode': true } } + # By default, deleted entries are not returned. Use the `include_deleted` query param to include deleted entries too. + field :include_deleted, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'include_deleted', 'style': 'form', 'explode': true } } + # When set to `true`, filters targeting fields not supported by this integration will be ignored instead of filtering out all results. + field :ignore_unsupported_filters, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'query_param': { 'field_name': 'ignore_unsupported_filters', 'style': 'form', 'explode': true } } + + sig { params(integration_id: T.nilable(::String), cursor: T.nilable(::String), updated_after: T.nilable(::DateTime), ids: T.nilable(T::Array[::String]), remote_ids: T.nilable(T::Array[::String]), legal_entity_ids: T.nilable(T::Array[::String]), employee_ids: T.nilable(T::Array[::String]), payrun_ids: T.nilable(T::Array[::String]), page_size: T.nilable(::Integer), include_deleted: T.nilable(T::Boolean), ignore_unsupported_filters: T.nilable(T::Boolean)).void } + def initialize(integration_id: nil, cursor: nil, updated_after: nil, ids: nil, remote_ids: nil, legal_entity_ids: nil, employee_ids: nil, payrun_ids: nil, page_size: 100, include_deleted: false, ignore_unsupported_filters: false) + @integration_id = integration_id + @cursor = cursor + @updated_after = updated_after + @ids = ids + @remote_ids = remote_ids + @legal_entity_ids = legal_entity_ids + @employee_ids = employee_ids + @payrun_ids = payrun_ids + @page_size = page_size + @include_deleted = include_deleted + @ignore_unsupported_filters = ignore_unsupported_filters + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @integration_id == other.integration_id + return false unless @cursor == other.cursor + return false unless @updated_after == other.updated_after + return false unless @ids == other.ids + return false unless @remote_ids == other.remote_ids + return false unless @legal_entity_ids == other.legal_entity_ids + return false unless @employee_ids == other.employee_ids + return false unless @payrun_ids == other.payrun_ids + return false unless @page_size == other.page_size + return false unless @include_deleted == other.include_deleted + return false unless @ignore_unsupported_filters == other.ignore_unsupported_filters + true + end + end + end + end +end diff --git a/lib/kombo/models/operations/gethrispayslips_request.rbi b/lib/kombo/models/operations/gethrispayslips_request.rbi new file mode 100644 index 00000000..66f13dcf --- /dev/null +++ b/lib/kombo/models/operations/gethrispayslips_request.rbi @@ -0,0 +1,33 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetHrisPayslipsRequest + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetHrisPayslipsRequest + def integration_id(); end + def integration_id=(str_); end + def cursor(); end + def cursor=(str_); end + def updated_after(); end + def updated_after=(str_); end + def ids(); end + def ids=(str_); end + def remote_ids(); end + def remote_ids=(str_); end + def legal_entity_ids(); end + def legal_entity_ids=(str_); end + def employee_ids(); end + def employee_ids=(str_); end + def payrun_ids(); end + def payrun_ids=(str_); end + def page_size(); end + def page_size=(str_); end + def include_deleted(); end + def include_deleted=(str_); end + def ignore_unsupported_filters(); end + def ignore_unsupported_filters=(str_); end +end diff --git a/lib/kombo/models/operations/gethrispayslips_response.rb b/lib/kombo/models/operations/gethrispayslips_response.rb new file mode 100644 index 00000000..42f190d6 --- /dev/null +++ b/lib/kombo/models/operations/gethrispayslips_response.rb @@ -0,0 +1,56 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Operations + + class GetHrisPayslipsResponse + extend T::Sig + include Crystalline::MetadataFields + sig { returns(T.proc.returns(T.nilable(GetHrisPayslipsResponse))) } + attr_accessor :next_page + + # HTTP response content type for this operation + field :content_type, ::String + # HTTP response status code for this operation + field :status_code, ::Integer + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + # GET /hris/payslips Positive response + field :get_hris_payslips_positive_response, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponse) + + sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response, get_hris_payslips_positive_response: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponse)).void } + def initialize(content_type:, status_code:, raw_response:, get_hris_payslips_positive_response: nil) + @content_type = content_type + @status_code = status_code + @raw_response = raw_response + @get_hris_payslips_positive_response = get_hris_payslips_positive_response + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @content_type == other.content_type + return false unless @status_code == other.status_code + return false unless @raw_response == other.raw_response + return false unless @get_hris_payslips_positive_response == other.get_hris_payslips_positive_response + true + end + + def each + page = self + loop do + yield page + next_page = page.next_page.call if page.next_page + break if next_page.nil? + page = T.must(next_page) + end + end + end + end + end +end diff --git a/lib/kombo/models/operations/gethrispayslips_response.rbi b/lib/kombo/models/operations/gethrispayslips_response.rbi new file mode 100644 index 00000000..f5463893 --- /dev/null +++ b/lib/kombo/models/operations/gethrispayslips_response.rbi @@ -0,0 +1,19 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Operations::GetHrisPayslipsResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Operations::GetHrisPayslipsResponse + def content_type(); end + def content_type=(str_); end + def status_code(); end + def status_code=(str_); end + def raw_response(); end + def raw_response=(str_); end + def get_hris_payslips_positive_response(); end + def get_hris_payslips_positive_response=(str_); end +end diff --git a/lib/kombo/models/shared.rb b/lib/kombo/models/shared.rb index 2491d54c..1d0d9cf5 100644 --- a/lib/kombo/models/shared.rb +++ b/lib/kombo/models/shared.rb @@ -139,12 +139,15 @@ module Shared autoload :GetAtsJobsPositiveResponseHiringTeam, 'kombo/models/shared/getatsjobspositiveresponse_hiring_team.rb' autoload :GetAtsJobsPositiveResponseHiringTeamRole, 'kombo/models/shared/getatsjobspositiveresponse_hiring_team_role.rb' autoload :GetAtsJobsPositiveResponseLocation, 'kombo/models/shared/getatsjobspositiveresponse_location.rb' + autoload :GetAtsJobsPositiveResponseOption1, 'kombo/models/shared/getatsjobspositiveresponse_option_1.rb' + autoload :GetAtsJobsPositiveResponseOption2, 'kombo/models/shared/getatsjobspositiveresponse_option_2.rb' autoload :GetAtsJobsPositiveResponseResult, 'kombo/models/shared/getatsjobspositiveresponse_result.rb' autoload :GetAtsJobsPositiveResponseScope, 'kombo/models/shared/getatsjobspositiveresponse_scope.rb' autoload :GetAtsJobsPositiveResponseStatus, 'kombo/models/shared/getatsjobspositiveresponse_status.rb' autoload :GetAtsJobsPositiveResponseUnifiedType, 'kombo/models/shared/getatsjobspositiveresponse_unified_type.rb' autoload :GetAtsJobsPositiveResponseVisibility, 'kombo/models/shared/getatsjobspositiveresponse_visibility.rb' autoload :GetAtsNotesPositiveResponse, 'kombo/models/shared/getatsnotespositiveresponse.rb' + autoload :GetAtsNotesPositiveResponseAuthor, 'kombo/models/shared/getatsnotespositiveresponse_author.rb' autoload :GetAtsNotesPositiveResponseData, 'kombo/models/shared/getatsnotespositiveresponse_data.rb' autoload :GetAtsNotesPositiveResponseResult, 'kombo/models/shared/getatsnotespositiveresponse_result.rb' autoload :GetAtsOffersPositiveResponse, 'kombo/models/shared/getatsofferspositiveresponse.rb' @@ -163,6 +166,14 @@ module Shared autoload :GetAtsRolesPositiveResponseResult, 'kombo/models/shared/getatsrolespositiveresponse_result.rb' autoload :GetAtsRolesPositiveResponseScope, 'kombo/models/shared/getatsrolespositiveresponse_scope.rb' autoload :GetAtsRolesPositiveResponseUnifiedType, 'kombo/models/shared/getatsrolespositiveresponse_unified_type.rb' + autoload :GetAtsScorecardsPositiveResponse, 'kombo/models/shared/getatsscorecardspositiveresponse.rb' + autoload :GetAtsScorecardsPositiveResponseAnswer1, 'kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb' + autoload :GetAtsScorecardsPositiveResponseAnswer2, 'kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb' + autoload :GetAtsScorecardsPositiveResponseAuthor, 'kombo/models/shared/getatsscorecardspositiveresponse_author.rb' + autoload :GetAtsScorecardsPositiveResponseData, 'kombo/models/shared/getatsscorecardspositiveresponse_data.rb' + autoload :GetAtsScorecardsPositiveResponseOption1, 'kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb' + autoload :GetAtsScorecardsPositiveResponseOption2, 'kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb' + autoload :GetAtsScorecardsPositiveResponseResult, 'kombo/models/shared/getatsscorecardspositiveresponse_result.rb' autoload :GetAtsTagsPositiveResponse, 'kombo/models/shared/getatstagspositiveresponse.rb' autoload :GetAtsTagsPositiveResponseData, 'kombo/models/shared/getatstagspositiveresponse_data.rb' autoload :GetAtsTagsPositiveResponseResult, 'kombo/models/shared/getatstagspositiveresponse_result.rb' @@ -243,6 +254,20 @@ module Shared autoload :GetHrisLocationsPositiveResponseAddress, 'kombo/models/shared/gethrislocationspositiveresponse_address.rb' autoload :GetHrisLocationsPositiveResponseData, 'kombo/models/shared/gethrislocationspositiveresponse_data.rb' autoload :GetHrisLocationsPositiveResponseResult, 'kombo/models/shared/gethrislocationspositiveresponse_result.rb' + autoload :GetHrisPayRunsPositiveResponse, 'kombo/models/shared/gethrispayrunspositiveresponse.rb' + autoload :GetHrisPayRunsPositiveResponseData, 'kombo/models/shared/gethrispayrunspositiveresponse_data.rb' + autoload :GetHrisPayRunsPositiveResponseGrossPay, 'kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb' + autoload :GetHrisPayRunsPositiveResponseNetPay, 'kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb' + autoload :GetHrisPayRunsPositiveResponsePaidAmount, 'kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb' + autoload :GetHrisPayRunsPositiveResponseResult, 'kombo/models/shared/gethrispayrunspositiveresponse_result.rb' + autoload :GetHrisPayRunsPositiveResponseTotals, 'kombo/models/shared/gethrispayrunspositiveresponse_totals.rb' + autoload :GetHrisPayslipsPositiveResponse, 'kombo/models/shared/gethrispayslipspositiveresponse.rb' + autoload :GetHrisPayslipsPositiveResponseData, 'kombo/models/shared/gethrispayslipspositiveresponse_data.rb' + autoload :GetHrisPayslipsPositiveResponseGrossPay, 'kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb' + autoload :GetHrisPayslipsPositiveResponseNetPay, 'kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb' + autoload :GetHrisPayslipsPositiveResponsePaidAmount, 'kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb' + autoload :GetHrisPayslipsPositiveResponseResult, 'kombo/models/shared/gethrispayslipspositiveresponse_result.rb' + autoload :GetHrisPayslipsPositiveResponseTotals, 'kombo/models/shared/gethrispayslipspositiveresponse_totals.rb' autoload :GetHrisPerformanceReviewCyclesPositiveResponse, 'kombo/models/shared/gethrisperformancereviewcyclespositiveresponse.rb' autoload :GetHrisPerformanceReviewCyclesPositiveResponseData, 'kombo/models/shared/gethrisperformancereviewcyclespositiveresponse_data.rb' autoload :GetHrisPerformanceReviewCyclesPositiveResponseResult, 'kombo/models/shared/gethrisperformancereviewcyclespositiveresponse_result.rb' @@ -332,6 +357,12 @@ module Shared autoload :IntegrationStateChangedWebhookPayloadIntegrationCategory, 'kombo/models/shared/integrationstatechangedwebhookpayload_integration_category.rb' autoload :IntegrationStateChangedWebhookPayloadSetupStatus, 'kombo/models/shared/integrationstatechangedwebhookpayload_setup_status.rb' autoload :IntegrationStateChangedWebhookPayloadType, 'kombo/models/shared/integrationstatechangedwebhookpayload_type.rb' + autoload :IssueStatusChangedWebhookPayload, 'kombo/models/shared/issuestatuschangedwebhookpayload.rb' + autoload :IssueStatusChangedWebhookPayloadCategory, 'kombo/models/shared/issuestatuschangedwebhookpayload_category.rb' + autoload :IssueStatusChangedWebhookPayloadData, 'kombo/models/shared/issuestatuschangedwebhookpayload_data.rb' + autoload :IssueStatusChangedWebhookPayloadEndUser, 'kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb' + autoload :IssueStatusChangedWebhookPayloadStatus, 'kombo/models/shared/issuestatuschangedwebhookpayload_status.rb' + autoload :IssueStatusChangedWebhookPayloadType, 'kombo/models/shared/issuestatuschangedwebhookpayload_type.rb' autoload :KomboAtsErrorCode, 'kombo/models/shared/komboatserror_code.rb' autoload :KomboAtsErrorError, 'kombo/models/shared/komboatserror_error.rb' autoload :KomboAtsErrorStatus, 'kombo/models/shared/komboatserror_status.rb' @@ -814,15 +845,16 @@ module Shared autoload :SyncFinishedWebhookPayloadType, 'kombo/models/shared/syncfinishedwebhookpayload_type.rb' autoload :A3innuvanomina, 'kombo/models/shared/a3innuvanomina.rb' autoload :Afas, 'kombo/models/shared/afas.rb' + autoload :Amount, 'kombo/models/shared/amount.rb' autoload :Assets, 'kombo/models/shared/assets.rb' autoload :Attribute, 'kombo/models/shared/attribute.rb' autoload :AttributeSubResult, 'kombo/models/shared/attribute_subresult.rb' autoload :AttributeText, 'kombo/models/shared/attribute_text.rb' autoload :AttributeStatus, 'kombo/models/shared/attribute_status.rb' - autoload :Author, 'kombo/models/shared/author.rb' autoload :BankAccount, 'kombo/models/shared/bank_account.rb' autoload :BenefitTypeId, 'kombo/models/shared/benefit_type_id.rb' autoload :Break, 'kombo/models/shared/break_.rb' + autoload :Change, 'kombo/models/shared/change.rb' autoload :ChangedModel, 'kombo/models/shared/changed_model.rb' autoload :ContentType, 'kombo/models/shared/content_type.rb' autoload :Coverage, 'kombo/models/shared/coverage.rb' @@ -833,6 +865,7 @@ module Shared autoload :Document, 'kombo/models/shared/document.rb' autoload :DomesticBankRouting, 'kombo/models/shared/domestic_bank_routing.rb' autoload :DomesticBankRoutingType, 'kombo/models/shared/domestic_bank_routing_type.rb' + autoload :Employee, 'kombo/models/shared/employee.rb' autoload :Employment, 'kombo/models/shared/employment.rb' autoload :EmploymentEmploymentType, 'kombo/models/shared/employment_employment_type.rb' autoload :EmploymentStatus, 'kombo/models/shared/employment_status.rb' @@ -856,13 +889,16 @@ module Shared autoload :Headers, 'kombo/models/shared/headers.rb' autoload :HomeAddress, 'kombo/models/shared/home_address.rb' autoload :ImportedId, 'kombo/models/shared/imported_id.rb' + autoload :Integration, 'kombo/models/shared/integration.rb' autoload :IntegrationTool, 'kombo/models/shared/integration_tool.rb' autoload :Interview, 'kombo/models/shared/interview.rb' + autoload :Issue, 'kombo/models/shared/issue.rb' autoload :JobPosting, 'kombo/models/shared/job_posting.rb' autoload :JobPostingStatus, 'kombo/models/shared/job_posting_status.rb' autoload :JobPostingVisibility, 'kombo/models/shared/job_posting_visibility.rb' autoload :JobRole, 'kombo/models/shared/job_role.rb' autoload :LegalEntityAddress, 'kombo/models/shared/legal_entity_address.rb' + autoload :LineItem, 'kombo/models/shared/line_item.rb' autoload :Manager, 'kombo/models/shared/manager.rb' autoload :ManagerEmploymentStatus, 'kombo/models/shared/manager_employment_status.rb' autoload :MaritalStatus, 'kombo/models/shared/marital_status.rb' @@ -872,9 +908,8 @@ module Shared autoload :Name, 'kombo/models/shared/name.rb' autoload :Offer, 'kombo/models/shared/offer.rb' autoload :OfferStatus, 'kombo/models/shared/offer_status.rb' - autoload :Option1, 'kombo/models/shared/option_1.rb' - autoload :Option2, 'kombo/models/shared/option_2.rb' autoload :OrderedOption, 'kombo/models/shared/ordered_option.rb' + autoload :PayRun, 'kombo/models/shared/pay_run.rb' autoload :Prehire, 'kombo/models/shared/prehire.rb' autoload :ProficiencyScale, 'kombo/models/shared/proficiency_scale.rb' autoload :ProficiencyScaleNumeric, 'kombo/models/shared/proficiency_scale_numeric.rb' @@ -892,6 +927,13 @@ module Shared autoload :QaStatus, 'kombo/models/shared/qa_status.rb' autoload :ReadModelScopeConfigSetting, 'kombo/models/shared/read_model_scope_config_setting.rb' autoload :RemoteWorkStatus, 'kombo/models/shared/remote_work_status.rb' + autoload :Response, 'kombo/models/shared/response.rb' + autoload :ResultBoolean, 'kombo/models/shared/result_boolean.rb' + autoload :ResultDate, 'kombo/models/shared/result_date.rb' + autoload :ResultMultiSelect, 'kombo/models/shared/result_multiselect.rb' + autoload :ResultNumber, 'kombo/models/shared/result_number.rb' + autoload :ResultSingleSelect, 'kombo/models/shared/result_singleselect.rb' + autoload :ResultText, 'kombo/models/shared/result_text.rb' autoload :ReviewCycle, 'kombo/models/shared/review_cycle.rb' autoload :Reviewee, 'kombo/models/shared/reviewee.rb' autoload :Reviewer, 'kombo/models/shared/reviewer.rb' diff --git a/lib/kombo/models/shared/amount.rb b/lib/kombo/models/shared/amount.rb new file mode 100644 index 00000000..99a72395 --- /dev/null +++ b/lib/kombo/models/shared/amount.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The amount of the line item. + class Amount + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/amount.rbi b/lib/kombo/models/shared/amount.rbi new file mode 100644 index 00000000..840cf72e --- /dev/null +++ b/lib/kombo/models/shared/amount.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Amount + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Amount + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/change.rb b/lib/kombo/models/shared/change.rb new file mode 100644 index 00000000..81ef1cbb --- /dev/null +++ b/lib/kombo/models/shared/change.rb @@ -0,0 +1,19 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # Change - Why this webhook was sent: the issue was raised or resolved. + class Change < T::Enum + enums do + RAISED = new('raised') + RESOLVED = new('resolved') + end + end + end + end +end diff --git a/lib/kombo/models/shared/change.rbi b/lib/kombo/models/shared/change.rbi new file mode 100644 index 00000000..cba0b5dd --- /dev/null +++ b/lib/kombo/models/shared/change.rbi @@ -0,0 +1,11 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Change + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Change +end diff --git a/lib/kombo/models/shared/employee.rb b/lib/kombo/models/shared/employee.rb new file mode 100644 index 00000000..e25bbd33 --- /dev/null +++ b/lib/kombo/models/shared/employee.rb @@ -0,0 +1,57 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The employee that the payslip is for. + class Employee + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The employee’s first name. + field :first_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('first_name'), required: true } } + # The employee’s last name. + field :last_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('last_name'), required: true } } + # The employee’s full name, including any middle names. Not all HR systems provide an explicit display name, so we recommend falling back to `first_name` and `last_name`. + field :display_full_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('display_full_name'), required: true } } + # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # The employee’s work email address. If the email address is invalid, we will set this to `null`. + field :work_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('work_email') } } + + sig { params(id: ::String, remote_id: ::String, first_name: T.nilable(::String), last_name: T.nilable(::String), display_full_name: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime), work_email: T.nilable(::String)).void } + def initialize(id:, remote_id:, first_name: nil, last_name: nil, display_full_name: nil, remote_deleted_at: nil, work_email: nil) + @id = id + @remote_id = remote_id + @first_name = first_name + @last_name = last_name + @display_full_name = display_full_name + @remote_deleted_at = remote_deleted_at + @work_email = work_email + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @first_name == other.first_name + return false unless @last_name == other.last_name + return false unless @display_full_name == other.display_full_name + return false unless @remote_deleted_at == other.remote_deleted_at + return false unless @work_email == other.work_email + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/employee.rbi b/lib/kombo/models/shared/employee.rbi new file mode 100644 index 00000000..39cdb39d --- /dev/null +++ b/lib/kombo/models/shared/employee.rbi @@ -0,0 +1,25 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Employee + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Employee + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def first_name(); end + def first_name=(str_); end + def last_name(); end + def last_name=(str_); end + def display_full_name(); end + def display_full_name=(str_); end + def remote_deleted_at(); end + def remote_deleted_at=(str_); end + def work_email(); end + def work_email=(str_); end +end diff --git a/lib/kombo/models/shared/format_multiselect.rb b/lib/kombo/models/shared/format_multiselect.rb index e1c2a07f..af0811e8 100644 --- a/lib/kombo/models/shared/format_multiselect.rb +++ b/lib/kombo/models/shared/format_multiselect.rb @@ -13,11 +13,11 @@ class FormatMultiSelect include Crystalline::MetadataFields - field :options, Crystalline::Array.new(Models::Shared::Option2), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } + field :options, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseOption2), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } - sig { params(options: T::Array[Models::Shared::Option2], type: ::String).void } + sig { params(options: T::Array[Models::Shared::GetAtsJobsPositiveResponseOption2], type: ::String).void } def initialize(options:, type: 'MULTI_SELECT') @options = options unless type == 'MULTI_SELECT' diff --git a/lib/kombo/models/shared/format_singleselect.rb b/lib/kombo/models/shared/format_singleselect.rb index e6cb7f4b..823fa35c 100644 --- a/lib/kombo/models/shared/format_singleselect.rb +++ b/lib/kombo/models/shared/format_singleselect.rb @@ -13,13 +13,13 @@ class FormatSingleSelect include Crystalline::MetadataFields - field :options, Crystalline::Array.new(Models::Shared::Option1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } + field :options, Crystalline::Array.new(Models::Shared::GetAtsJobsPositiveResponseOption1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } field :display_type, Crystalline::Nilable.new(Models::Shared::DisplayType3), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('display_type'), 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::DisplayType3, true) } } - sig { params(options: T::Array[Models::Shared::Option1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void } + sig { params(options: T::Array[Models::Shared::GetAtsJobsPositiveResponseOption1], type: ::String, display_type: T.nilable(Models::Shared::DisplayType3)).void } def initialize(options:, type: 'SINGLE_SELECT', display_type: nil) @options = options unless type == 'SINGLE_SELECT' diff --git a/lib/kombo/models/shared/option_1.rb b/lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rb similarity index 96% rename from lib/kombo/models/shared/option_1.rb rename to lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rb index 07d31a9d..34616ead 100644 --- a/lib/kombo/models/shared/option_1.rb +++ b/lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rb @@ -8,7 +8,7 @@ module Kombo module Models module Shared - class Option1 + class GetAtsJobsPositiveResponseOption1 extend T::Sig include Crystalline::MetadataFields diff --git a/lib/kombo/models/shared/option_2.rbi b/lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rbi similarity index 65% rename from lib/kombo/models/shared/option_2.rbi rename to lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rbi index 887fbc4c..04341cc8 100644 --- a/lib/kombo/models/shared/option_2.rbi +++ b/lib/kombo/models/shared/getatsjobspositiveresponse_option_1.rbi @@ -2,12 +2,12 @@ # frozen_string_literal: true -class Kombo::Models::Shared::Option2 +class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption1 extend ::Crystalline::MetadataFields::ClassMethods end -class Kombo::Models::Shared::Option2 +class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption1 def id(); end def id=(str_); end def name(); end diff --git a/lib/kombo/models/shared/option_2.rb b/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rb similarity index 96% rename from lib/kombo/models/shared/option_2.rb rename to lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rb index ebdc9b2e..f8d1a59e 100644 --- a/lib/kombo/models/shared/option_2.rb +++ b/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rb @@ -8,7 +8,7 @@ module Kombo module Models module Shared - class Option2 + class GetAtsJobsPositiveResponseOption2 extend T::Sig include Crystalline::MetadataFields diff --git a/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi b/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi new file mode 100644 index 00000000..797f56c9 --- /dev/null +++ b/lib/kombo/models/shared/getatsjobspositiveresponse_option_2.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption2 + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsJobsPositiveResponseOption2 + def id(); end + def id=(str_); end + def name(); end + def name=(str_); end + def remote_id(); end + def remote_id=(str_); end +end diff --git a/lib/kombo/models/shared/author.rb b/lib/kombo/models/shared/getatsnotespositiveresponse_author.rb similarity index 98% rename from lib/kombo/models/shared/author.rb rename to lib/kombo/models/shared/getatsnotespositiveresponse_author.rb index 5a8c21ae..1c5955f3 100644 --- a/lib/kombo/models/shared/author.rb +++ b/lib/kombo/models/shared/getatsnotespositiveresponse_author.rb @@ -8,7 +8,7 @@ module Kombo module Models module Shared - class Author + class GetAtsNotesPositiveResponseAuthor extend T::Sig include Crystalline::MetadataFields diff --git a/lib/kombo/models/shared/author.rbi b/lib/kombo/models/shared/getatsnotespositiveresponse_author.rbi similarity index 73% rename from lib/kombo/models/shared/author.rbi rename to lib/kombo/models/shared/getatsnotespositiveresponse_author.rbi index 86c7a905..6c9bfdbd 100644 --- a/lib/kombo/models/shared/author.rbi +++ b/lib/kombo/models/shared/getatsnotespositiveresponse_author.rbi @@ -2,12 +2,12 @@ # frozen_string_literal: true -class Kombo::Models::Shared::Author +class Kombo::Models::Shared::GetAtsNotesPositiveResponseAuthor extend ::Crystalline::MetadataFields::ClassMethods end -class Kombo::Models::Shared::Author +class Kombo::Models::Shared::GetAtsNotesPositiveResponseAuthor def id(); end def id=(str_); end def remote_id(); end diff --git a/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb b/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb index dd0d1299..51cc74d6 100644 --- a/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb +++ b/lib/kombo/models/shared/getatsnotespositiveresponse_result.rb @@ -41,9 +41,9 @@ class GetAtsNotesPositiveResponseResult # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } - field :author, Crystalline::Nilable.new(Models::Shared::Author), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author'), required: true } } + field :author, Crystalline::Nilable.new(Models::Shared::GetAtsNotesPositiveResponseAuthor), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author'), required: true } } - sig { params(id: ::String, remote_id: ::String, candidate_id: ::String, changed_at: ::DateTime, application_id: T.nilable(::String), author_id: T.nilable(::String), title: T.nilable(::String), content_html: T.nilable(::String), is_private: T.nilable(T::Boolean), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), author: T.nilable(Models::Shared::Author)).void } + sig { params(id: ::String, remote_id: ::String, candidate_id: ::String, changed_at: ::DateTime, application_id: T.nilable(::String), author_id: T.nilable(::String), title: T.nilable(::String), content_html: T.nilable(::String), is_private: T.nilable(T::Boolean), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), author: T.nilable(Models::Shared::GetAtsNotesPositiveResponseAuthor)).void } def initialize(id:, remote_id:, candidate_id:, changed_at:, application_id: nil, author_id: nil, title: nil, content_html: nil, is_private: nil, remote_created_at: nil, remote_updated_at: nil, remote_deleted_at: nil, author: nil) @id = id @remote_id = remote_id diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb new file mode 100644 index 00000000..139f863e --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse.rb @@ -0,0 +1,39 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponse + extend T::Sig + include Crystalline::MetadataFields + + + field :data, Models::Shared::GetAtsScorecardsPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } } + + field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } } + + sig { params(data: Models::Shared::GetAtsScorecardsPositiveResponseData, status: ::String).void } + def initialize(data:, status: 'success') + @data = data + unless status == 'success' + raise ArgumentError, 'Invalid value for status' + end + @status = 'success' + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @data == other.data + return false unless @status == other.status + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi new file mode 100644 index 00000000..247c1525 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponse + def data(); end + def data=(str_); end + def status(); end + def status=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb new file mode 100644 index 00000000..0f2b3c0a --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The id and label of the selected option. + class GetAtsScorecardsPositiveResponseAnswer1 + extend T::Sig + include Crystalline::MetadataFields + + # The option as the interviewer sees it, e.g. "Strong Hire". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String)).void } + def initialize(label:, remote_id: nil) + @label = label + @remote_id = remote_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi new file mode 100644 index 00000000..ea3df354 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_1.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer1 + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer1 + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb new file mode 100644 index 00000000..e143b22f --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseAnswer2 + extend T::Sig + include Crystalline::MetadataFields + + # The option as the interviewer sees it, e.g. "Strong Hire". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String)).void } + def initialize(label:, remote_id: nil) + @label = label + @remote_id = remote_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi new file mode 100644 index 00000000..da2fcd55 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_answer_2.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer2 + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAnswer2 + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb new file mode 100644 index 00000000..f78c5515 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rb @@ -0,0 +1,48 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseAuthor + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # First name of the user. + field :first_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('first_name'), required: true } } + # Last name of the user. + field :last_name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('last_name'), required: true } } + # Email of the user. If the email address is invalid, it will be set to null. + field :email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('email') } } + + sig { params(id: ::String, remote_id: T.nilable(::String), first_name: T.nilable(::String), last_name: T.nilable(::String), email: T.nilable(::String)).void } + def initialize(id:, remote_id: nil, first_name: nil, last_name: nil, email: nil) + @id = id + @remote_id = remote_id + @first_name = first_name + @last_name = last_name + @email = email + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @first_name == other.first_name + return false unless @last_name == other.last_name + return false unless @email == other.email + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi new file mode 100644 index 00000000..bc119b54 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_author.rbi @@ -0,0 +1,21 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAuthor + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseAuthor + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def first_name(); end + def first_name=(str_); end + def last_name(); end + def last_name=(str_); end + def email(); end + def email=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb new file mode 100644 index 00000000..3d153f25 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseData + extend T::Sig + include Crystalline::MetadataFields + + + field :results, Crystalline::Array.new(Models::Shared::GetAtsScorecardsPositiveResponseResult), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('results'), required: true } } + # Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. + field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('next'), required: true } } + + sig { params(results: T::Array[Models::Shared::GetAtsScorecardsPositiveResponseResult], next_: T.nilable(::String)).void } + def initialize(results:, next_: nil) + @results = results + @next_ = next_ + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @results == other.results + return false unless @next_ == other.next_ + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi new file mode 100644 index 00000000..9c7c3476 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_data.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseData + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseData + def results(); end + def results=(str_); end + def next_(); end + def next_=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb new file mode 100644 index 00000000..d9fea119 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseOption1 + extend T::Sig + include Crystalline::MetadataFields + + # The option as the interviewer sees it, e.g. "Strong Hire". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String)).void } + def initialize(label:, remote_id: nil) + @label = label + @remote_id = remote_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi new file mode 100644 index 00000000..0c1d1b36 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_1.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseOption1 + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseOption1 + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb new file mode 100644 index 00000000..699b7853 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseOption2 + extend T::Sig + include Crystalline::MetadataFields + + # The option as the interviewer sees it, e.g. "Strong Hire". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # The ID of this option in the remote system, e.g. `strong_hire`. `null` when the system identifies the option only by its label. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String)).void } + def initialize(label:, remote_id: nil) + @label = label + @remote_id = remote_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi new file mode 100644 index 00000000..5aa136f4 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_option_2.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseOption2 + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseOption2 + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb b/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb new file mode 100644 index 00000000..7a93e85b --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rb @@ -0,0 +1,80 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetAtsScorecardsPositiveResponseResult + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # The Kombo ID of the candidate this scorecard evaluates. + field :candidate_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('candidate_id'), required: true } } + # The Kombo ID of the application this scorecard belongs to. + field :application_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('application_id'), required: true } } + # The Kombo ID of the interview this scorecard was submitted against. + field :interview_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('interview_id'), required: true } } + # The Kombo ID of the user this evaluation belongs to. Where the ATS distinguishes who submitted the scorecard from whose review it is, this is the source of the opinion (the user whose evaluation it is, not whoever entered it). The ID can be used to retrieve the user from the `get users` endpoint. + field :author_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author_id'), required: true } } + # 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 + field :remote_created_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_created_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # 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 + field :remote_updated_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_updated_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + + field :author, Crystalline::Nilable.new(Models::Shared::GetAtsScorecardsPositiveResponseAuthor), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('author'), required: true } } + # Every question on the scorecard, together with its definition and the answer submitted by the interviewer. + field :responses, Crystalline::Nilable.new(Crystalline::Array.new(Crystalline::Union.new(Models::Shared::ResultText, Models::Shared::ResultSingleSelect, Models::Shared::ResultMultiSelect, Models::Shared::ResultBoolean, Models::Shared::ResultNumber, Models::Shared::ResultDate))), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('responses') } } + + sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, candidate_id: T.nilable(::String), application_id: T.nilable(::String), interview_id: T.nilable(::String), author_id: T.nilable(::String), remote_created_at: T.nilable(::DateTime), remote_updated_at: T.nilable(::DateTime), remote_deleted_at: T.nilable(::DateTime), author: T.nilable(Models::Shared::GetAtsScorecardsPositiveResponseAuthor), responses: T.nilable(T::Array[T.any(Models::Shared::ResultText, Models::Shared::ResultSingleSelect, Models::Shared::ResultMultiSelect, Models::Shared::ResultBoolean, Models::Shared::ResultNumber, Models::Shared::ResultDate)])).void } + def initialize(id:, remote_id:, changed_at:, candidate_id: nil, application_id: nil, interview_id: nil, author_id: nil, remote_created_at: nil, remote_updated_at: nil, remote_deleted_at: nil, author: nil, responses: nil) + @id = id + @remote_id = remote_id + @changed_at = changed_at + @candidate_id = candidate_id + @application_id = application_id + @interview_id = interview_id + @author_id = author_id + @remote_created_at = remote_created_at + @remote_updated_at = remote_updated_at + @remote_deleted_at = remote_deleted_at + @author = author + @responses = responses + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @changed_at == other.changed_at + return false unless @candidate_id == other.candidate_id + return false unless @application_id == other.application_id + return false unless @interview_id == other.interview_id + return false unless @author_id == other.author_id + return false unless @remote_created_at == other.remote_created_at + return false unless @remote_updated_at == other.remote_updated_at + return false unless @remote_deleted_at == other.remote_deleted_at + return false unless @author == other.author + return false unless @responses == other.responses + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi b/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi new file mode 100644 index 00000000..0cba34d7 --- /dev/null +++ b/lib/kombo/models/shared/getatsscorecardspositiveresponse_result.rbi @@ -0,0 +1,35 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseResult + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetAtsScorecardsPositiveResponseResult + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def changed_at(); end + def changed_at=(str_); end + def candidate_id(); end + def candidate_id=(str_); end + def application_id(); end + def application_id=(str_); end + def interview_id(); end + def interview_id=(str_); end + def author_id(); end + def author_id=(str_); end + def remote_created_at(); end + def remote_created_at=(str_); end + def remote_updated_at(); end + def remote_updated_at=(str_); end + def remote_deleted_at(); end + def remote_deleted_at=(str_); end + def author(); end + def author=(str_); end + def responses(); end + def responses=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb new file mode 100644 index 00000000..e9c184be --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse.rb @@ -0,0 +1,39 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayRunsPositiveResponse + extend T::Sig + include Crystalline::MetadataFields + + + field :data, Models::Shared::GetHrisPayRunsPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } } + + field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } } + + sig { params(data: Models::Shared::GetHrisPayRunsPositiveResponseData, status: ::String).void } + def initialize(data:, status: 'success') + @data = data + unless status == 'success' + raise ArgumentError, 'Invalid value for status' + end + @status = 'success' + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @data == other.data + return false unless @status == other.status + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi new file mode 100644 index 00000000..85a1cec3 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponse + def data(); end + def data=(str_); end + def status(); end + def status=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb new file mode 100644 index 00000000..a94bdede --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayRunsPositiveResponseData + extend T::Sig + include Crystalline::MetadataFields + + + field :results, Crystalline::Array.new(Models::Shared::GetHrisPayRunsPositiveResponseResult), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('results'), required: true } } + # Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. + field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('next'), required: true } } + + sig { params(results: T::Array[Models::Shared::GetHrisPayRunsPositiveResponseResult], next_: T.nilable(::String)).void } + def initialize(results:, next_: nil) + @results = results + @next_ = next_ + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @results == other.results + return false unless @next_ == other.next_ + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi new file mode 100644 index 00000000..7ac24e7c --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_data.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseData + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseData + def results(); end + def results=(str_); end + def next_(); end + def next_=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb new file mode 100644 index 00000000..0f37bdc7 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The total gross pay for the pay run, before taxes and after gross deductions. + class GetHrisPayRunsPositiveResponseGrossPay + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi new file mode 100644 index 00000000..f184bed1 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_gross_pay.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseGrossPay + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseGrossPay + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb new file mode 100644 index 00000000..b31ac3dd --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The total net pay for the pay run, after taxes have been applied to the gross pay. + class GetHrisPayRunsPositiveResponseNetPay + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi new file mode 100644 index 00000000..6bbab816 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_net_pay.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseNetPay + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseNetPay + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb new file mode 100644 index 00000000..1256fd7d --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The total amount paid out through the pay run. This value accounts for net earnings and deductions. + class GetHrisPayRunsPositiveResponsePaidAmount + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi new file mode 100644 index 00000000..7d403d93 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_paid_amount.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb new file mode 100644 index 00000000..9c9f4706 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rb @@ -0,0 +1,62 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayRunsPositiveResponseResult + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + + field :totals, Models::Shared::GetHrisPayRunsPositiveResponseTotals, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('totals'), required: true } } + # The start date of the pay run, as a calendar date (`yyyy-MM-dd`). + field :start_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('start_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } } + # The end date of the pay run, as a calendar date (`yyyy-MM-dd`). + field :end_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('end_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } } + # The Kombo ID of the pay run’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. + field :legal_entity_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entity_id'), required: true } } + # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + + sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayRunsPositiveResponseTotals, start_date: T.nilable(::Date), end_date: T.nilable(::Date), legal_entity_id: T.nilable(::String), remote_deleted_at: T.nilable(::DateTime)).void } + def initialize(id:, remote_id:, changed_at:, totals:, start_date: nil, end_date: nil, legal_entity_id: nil, remote_deleted_at: nil) + @id = id + @remote_id = remote_id + @changed_at = changed_at + @totals = totals + @start_date = start_date + @end_date = end_date + @legal_entity_id = legal_entity_id + @remote_deleted_at = remote_deleted_at + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @changed_at == other.changed_at + return false unless @totals == other.totals + return false unless @start_date == other.start_date + return false unless @end_date == other.end_date + return false unless @legal_entity_id == other.legal_entity_id + return false unless @remote_deleted_at == other.remote_deleted_at + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi new file mode 100644 index 00000000..0d000994 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_result.rbi @@ -0,0 +1,27 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseResult + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseResult + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def changed_at(); end + def changed_at=(str_); end + def totals(); end + def totals=(str_); end + def start_date(); end + def start_date=(str_); end + def end_date(); end + def end_date=(str_); end + def legal_entity_id(); end + def legal_entity_id=(str_); end + def remote_deleted_at(); end + def remote_deleted_at=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb b/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb new file mode 100644 index 00000000..2207f753 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayRunsPositiveResponseTotals + extend T::Sig + include Crystalline::MetadataFields + + # The total gross pay for the pay run, before taxes and after gross deductions. + field :gross_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponseGrossPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('gross_pay') } } + # The total net pay for the pay run, after taxes have been applied to the gross pay. + field :net_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponseNetPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay') } } + # The total amount paid out through the pay run. This value accounts for net earnings and deductions. + field :paid_amount, Crystalline::Nilable.new(Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount') } } + + sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayRunsPositiveResponsePaidAmount)).void } + def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil) + @gross_pay = gross_pay + @net_pay = net_pay + @paid_amount = paid_amount + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @gross_pay == other.gross_pay + return false unless @net_pay == other.net_pay + return false unless @paid_amount == other.paid_amount + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi b/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi new file mode 100644 index 00000000..67ffb0b5 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayrunspositiveresponse_totals.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseTotals + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayRunsPositiveResponseTotals + def gross_pay(); end + def gross_pay=(str_); end + def net_pay(); end + def net_pay=(str_); end + def paid_amount(); end + def paid_amount=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb new file mode 100644 index 00000000..72e53ba7 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse.rb @@ -0,0 +1,39 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayslipsPositiveResponse + extend T::Sig + include Crystalline::MetadataFields + + + field :data, Models::Shared::GetHrisPayslipsPositiveResponseData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } } + + field :status, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true } } + + sig { params(data: Models::Shared::GetHrisPayslipsPositiveResponseData, status: ::String).void } + def initialize(data:, status: 'success') + @data = data + unless status == 'success' + raise ArgumentError, 'Invalid value for status' + end + @status = 'success' + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @data == other.data + return false unless @status == other.status + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi new file mode 100644 index 00000000..a34c2e9f --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponse + def data(); end + def data=(str_); end + def status(); end + def status=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb new file mode 100644 index 00000000..d1647d30 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayslipsPositiveResponseData + extend T::Sig + include Crystalline::MetadataFields + + + field :results, Crystalline::Array.new(Models::Shared::GetHrisPayslipsPositiveResponseResult), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('results'), required: true } } + # Cursor string that can be passed to the `cursor` query parameter to get the next page. If this is `null`, then there are no more pages. + field :next_, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('next'), required: true } } + + sig { params(results: T::Array[Models::Shared::GetHrisPayslipsPositiveResponseResult], next_: T.nilable(::String)).void } + def initialize(results:, next_: nil) + @results = results + @next_ = next_ + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @results == other.results + return false unless @next_ == other.next_ + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi new file mode 100644 index 00000000..f8a8b58f --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_data.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseData + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseData + def results(); end + def results=(str_); end + def next_(); end + def next_=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb new file mode 100644 index 00000000..fa43668a --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The total gross pay for the payslip, before taxes and after gross deductions. + class GetHrisPayslipsPositiveResponseGrossPay + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi new file mode 100644 index 00000000..3f8bea68 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_gross_pay.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseGrossPay + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseGrossPay + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb new file mode 100644 index 00000000..d4ddf1f8 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The total net pay for the payslip, after taxes have been applied to the gross pay. + class GetHrisPayslipsPositiveResponseNetPay + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi new file mode 100644 index 00000000..02f43a6e --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_net_pay.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseNetPay + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseNetPay + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb new file mode 100644 index 00000000..e08bfeb1 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions. + class GetHrisPayslipsPositiveResponsePaidAmount + extend T::Sig + include Crystalline::MetadataFields + + # The [ISO 4217 currency code](https://www.iso.org/iso-4217-currency-codes.html) the value is denominated in. + field :currency, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('currency'), required: true } } + # The monetary value. + field :value, ::Float, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('value'), required: true } } + + sig { params(currency: ::String, value: ::Float).void } + def initialize(currency:, value:) + @currency = currency + @value = value + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @currency == other.currency + return false unless @value == other.value + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi new file mode 100644 index 00000000..9888befc --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_paid_amount.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount + def currency(); end + def currency=(str_); end + def value(); end + def value=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb new file mode 100644 index 00000000..71eb28eb --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rb @@ -0,0 +1,62 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayslipsPositiveResponseResult + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The timestamp when this specific record was last modified. This field only updates when properties directly on this record change, NOT when related or nested models change. For filtering that considers nested data changes, use the `updated_after` parameter which will return records when either the record itself OR its related models have been updated. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :changed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('changed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + + field :totals, Models::Shared::GetHrisPayslipsPositiveResponseTotals, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('totals'), required: true } } + # The employee that the payslip is for. + field :employee, Models::Shared::Employee, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('employee'), required: true } } + # The individual earnings, deductions, and contributions that make up the payslip. + field :line_items, Crystalline::Array.new(Models::Shared::LineItem), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('line_items'), required: true } } + # The date and time the object was deleted in the remote system. Objects are automatically marked as deleted when Kombo can't retrieve them from the remote system anymore. Kombo will also anonymize entries 14 days after they disappear. + # https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString + field :remote_deleted_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_deleted_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # The pay run the payslip was paid out through. + field :pay_run, Crystalline::Nilable.new(Models::Shared::PayRun), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('pay_run'), required: true } } + + sig { params(id: ::String, remote_id: ::String, changed_at: ::DateTime, totals: Models::Shared::GetHrisPayslipsPositiveResponseTotals, employee: Models::Shared::Employee, line_items: T::Array[Models::Shared::LineItem], remote_deleted_at: T.nilable(::DateTime), pay_run: T.nilable(Models::Shared::PayRun)).void } + def initialize(id:, remote_id:, changed_at:, totals:, employee:, line_items:, remote_deleted_at: nil, pay_run: nil) + @id = id + @remote_id = remote_id + @changed_at = changed_at + @totals = totals + @employee = employee + @line_items = line_items + @remote_deleted_at = remote_deleted_at + @pay_run = pay_run + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @changed_at == other.changed_at + return false unless @totals == other.totals + return false unless @employee == other.employee + return false unless @line_items == other.line_items + return false unless @remote_deleted_at == other.remote_deleted_at + return false unless @pay_run == other.pay_run + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi new file mode 100644 index 00000000..3372b5b2 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_result.rbi @@ -0,0 +1,27 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseResult + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseResult + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def changed_at(); end + def changed_at=(str_); end + def totals(); end + def totals=(str_); end + def employee(); end + def employee=(str_); end + def line_items(); end + def line_items=(str_); end + def remote_deleted_at(); end + def remote_deleted_at=(str_); end + def pay_run(); end + def pay_run=(str_); end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb b/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb new file mode 100644 index 00000000..79d7e561 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class GetHrisPayslipsPositiveResponseTotals + extend T::Sig + include Crystalline::MetadataFields + + # The total gross pay for the payslip, before taxes and after gross deductions. + field :gross_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('gross_pay') } } + # The total net pay for the payslip, after taxes have been applied to the gross pay. + field :net_pay, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('net_pay') } } + # The amount of the payslip that was actually paid out to the employee. This value accounts for net earnings and deductions. + field :paid_amount, Crystalline::Nilable.new(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('paid_amount') } } + + sig { params(gross_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseGrossPay), net_pay: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponseNetPay), paid_amount: T.nilable(Models::Shared::GetHrisPayslipsPositiveResponsePaidAmount)).void } + def initialize(gross_pay: nil, net_pay: nil, paid_amount: nil) + @gross_pay = gross_pay + @net_pay = net_pay + @paid_amount = paid_amount + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @gross_pay == other.gross_pay + return false unless @net_pay == other.net_pay + return false unless @paid_amount == other.paid_amount + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi b/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi new file mode 100644 index 00000000..d28587b3 --- /dev/null +++ b/lib/kombo/models/shared/gethrispayslipspositiveresponse_totals.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseTotals + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::GetHrisPayslipsPositiveResponseTotals + def gross_pay(); end + def gross_pay=(str_); end + def net_pay(); end + def net_pay=(str_); end + def paid_amount(); end + def paid_amount=(str_); end +end diff --git a/lib/kombo/models/shared/integration.rb b/lib/kombo/models/shared/integration.rb new file mode 100644 index 00000000..4440b49a --- /dev/null +++ b/lib/kombo/models/shared/integration.rb @@ -0,0 +1,44 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The integration this issue belongs to. `null` for environment-wide issues. + class Integration + extend T::Sig + include Crystalline::MetadataFields + + # The unique identifier of the integration. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The name of the integrated tool (e.g., "personio", "greenhouse"). + field :tool, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('tool'), required: true } } + # The category of the integration (HRIS, ATS, ASSESSMENT, or LMS). + field :category, Models::Shared::IssueStatusChangedWebhookPayloadCategory, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('category'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::IssueStatusChangedWebhookPayloadCategory, false) } } + # Information about the end user who created the integration. + field :end_user, Models::Shared::IssueStatusChangedWebhookPayloadEndUser, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('end_user'), required: true } } + + sig { params(id: ::String, tool: ::String, category: Models::Shared::IssueStatusChangedWebhookPayloadCategory, end_user: Models::Shared::IssueStatusChangedWebhookPayloadEndUser).void } + def initialize(id:, tool:, category:, end_user:) + @id = id + @tool = tool + @category = category + @end_user = end_user + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @tool == other.tool + return false unless @category == other.category + return false unless @end_user == other.end_user + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/integration.rbi b/lib/kombo/models/shared/integration.rbi new file mode 100644 index 00000000..7c6eadde --- /dev/null +++ b/lib/kombo/models/shared/integration.rbi @@ -0,0 +1,19 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Integration + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Integration + def id(); end + def id=(str_); end + def tool(); end + def tool=(str_); end + def category(); end + def category=(str_); end + def end_user(); end + def end_user=(str_); end +end diff --git a/lib/kombo/models/shared/integration_tool.rb b/lib/kombo/models/shared/integration_tool.rb index e6a87d46..664d67e3 100644 --- a/lib/kombo/models/shared/integration_tool.rb +++ b/lib/kombo/models/shared/integration_tool.rb @@ -20,6 +20,7 @@ class IntegrationTool < T::Enum CORNERSTONETALENTLINK = new('cornerstonetalentlink') RECRUITEE = new('recruitee') RECRUITERFLOW = new('recruiterflow') + ATLAS = new('atlas') GREENHOUSE = new('greenhouse') GREENHOUSEV3 = new('greenhousev3') GREENHOUSEJOBBOARD = new('greenhousejobboard') @@ -127,6 +128,7 @@ class IntegrationTool < T::Enum DATABITES = new('databites') PAGEUP = new('pageup') TALENT360 = new('talent360') + EMPLYPEOPLE = new('emplypeople') WORKDAYCUSTOMREPORT = new('workdaycustomreport') WORKDAYCUSTOMREPORTSFTP = new('workdaycustomreportsftp') UKGPROWFM = new('ukgprowfm') @@ -184,6 +186,7 @@ class IntegrationTool < T::Enum BOONDMANAGER = new('boondmanager') HAILEYHR = new('haileyhr') SILAE = new('silae') + SKELLO = new('skello') OYSTERHR = new('oysterhr') KIWIHR = new('kiwihr') SQUARE = new('square') @@ -204,6 +207,7 @@ class IntegrationTool < T::Enum YOUFORCE = new('youforce') NIBELIS = new('nibelis') PEOPLEXD = new('peoplexd') + ZELLIS = new('zellis') SFTP = new('sftp') SFTPFETCH = new('sftpfetch') THREE_HUNDRED_AND_SIXTYLEARNING = new('360learning') diff --git a/lib/kombo/models/shared/issue.rb b/lib/kombo/models/shared/issue.rb new file mode 100644 index 00000000..64d25d36 --- /dev/null +++ b/lib/kombo/models/shared/issue.rb @@ -0,0 +1,56 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class Issue + extend T::Sig + include Crystalline::MetadataFields + + # The unique identifier of the issue. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The issue type, for example `integration.authentication_failed`. Kombo will add more types over time. Treat unknown values as valid and handle them without failing. + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # A short, customer-facing title for this issue type. + field :title, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('title'), required: true } } + # The issue status after this change. + field :status, Models::Shared::IssueStatusChangedWebhookPayloadStatus, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('status'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::IssueStatusChangedWebhookPayloadStatus, false) } } + # What is wrong and how to investigate or fix it. + field :markdown_message, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('markdown_message'), required: true } } + # ISO 8601 timestamp when Kombo first observed this episode of the issue. + field :first_observed_at, ::DateTime, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('first_observed_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + # ISO 8601 timestamp when the issue was resolved. `null` while it is open. + field :resolved_at, Crystalline::Nilable.new(::DateTime), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('resolved_at'), required: true, 'decoder': ::Kombo::Utils.datetime_from_iso_format(false) } } + + sig { params(id: ::String, type: ::String, title: ::String, status: Models::Shared::IssueStatusChangedWebhookPayloadStatus, markdown_message: ::String, first_observed_at: ::DateTime, resolved_at: T.nilable(::DateTime)).void } + def initialize(id:, type:, title:, status:, markdown_message:, first_observed_at:, resolved_at: nil) + @id = id + @type = type + @title = title + @status = status + @markdown_message = markdown_message + @first_observed_at = first_observed_at + @resolved_at = resolved_at + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @type == other.type + return false unless @title == other.title + return false unless @status == other.status + return false unless @markdown_message == other.markdown_message + return false unless @first_observed_at == other.first_observed_at + return false unless @resolved_at == other.resolved_at + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/issue.rbi b/lib/kombo/models/shared/issue.rbi new file mode 100644 index 00000000..04b1e24d --- /dev/null +++ b/lib/kombo/models/shared/issue.rbi @@ -0,0 +1,25 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Issue + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Issue + def id(); end + def id=(str_); end + def type(); end + def type=(str_); end + def title(); end + def title=(str_); end + def status(); end + def status=(str_); end + def markdown_message(); end + def markdown_message=(str_); end + def first_observed_at(); end + def first_observed_at=(str_); end + def resolved_at(); end + def resolved_at=(str_); end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb new file mode 100644 index 00000000..eb83d9a2 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class IssueStatusChangedWebhookPayload + extend T::Sig + include Crystalline::MetadataFields + + # Unique identifier for this webhook event + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # Type of the webhook event + field :type, Models::Shared::IssueStatusChangedWebhookPayloadType, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::IssueStatusChangedWebhookPayloadType, false) } } + + field :data, Models::Shared::IssueStatusChangedWebhookPayloadData, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('data'), required: true } } + + sig { params(id: ::String, type: Models::Shared::IssueStatusChangedWebhookPayloadType, data: Models::Shared::IssueStatusChangedWebhookPayloadData).void } + def initialize(id:, type:, data:) + @id = id + @type = type + @data = data + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @type == other.type + return false unless @data == other.data + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi new file mode 100644 index 00000000..bc34ab07 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayload + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayload + def id(); end + def id=(str_); end + def type(); end + def type=(str_); end + def data(); end + def data=(str_); end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb new file mode 100644 index 00000000..25f013ab --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rb @@ -0,0 +1,21 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # IssueStatusChangedWebhookPayloadCategory - The category of the integration (HRIS, ATS, ASSESSMENT, or LMS). + class IssueStatusChangedWebhookPayloadCategory < T::Enum + enums do + HRIS = new('HRIS') + ATS = new('ATS') + ASSESSMENT = new('ASSESSMENT') + LMS = new('LMS') + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi new file mode 100644 index 00000000..23415b03 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_category.rbi @@ -0,0 +1,11 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadCategory + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadCategory +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb new file mode 100644 index 00000000..0ccbbca6 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class IssueStatusChangedWebhookPayloadData + extend T::Sig + include Crystalline::MetadataFields + + # Why this webhook was sent: the issue was raised or resolved. + field :change, Models::Shared::Change, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('change'), required: true, 'decoder': ::Kombo::Utils.enum_from_string(Models::Shared::Change, false) } } + + field :issue, Models::Shared::Issue, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('issue'), required: true } } + # The integration this issue belongs to. `null` for environment-wide issues. + field :integration, Crystalline::Nilable.new(Models::Shared::Integration), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('integration'), required: true } } + + sig { params(change: Models::Shared::Change, issue: Models::Shared::Issue, integration: T.nilable(Models::Shared::Integration)).void } + def initialize(change:, issue:, integration: nil) + @change = change + @issue = issue + @integration = integration + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @change == other.change + return false unless @issue == other.issue + return false unless @integration == other.integration + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi new file mode 100644 index 00000000..eb47a836 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_data.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadData + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadData + def change(); end + def change=(str_); end + def issue(); end + def issue=(str_); end + def integration(); end + def integration=(str_); end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb new file mode 100644 index 00000000..11e50747 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # Information about the end user who created the integration. + class IssueStatusChangedWebhookPayloadEndUser + extend T::Sig + include Crystalline::MetadataFields + + # The name of the organization that owns the integration. + field :organization_name, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('organization_name'), required: true } } + # The email address of the user who created the integration. + field :creator_email, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('creator_email'), required: true } } + # The unique identifier of the organization in the integrated system. + field :origin_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('origin_id'), required: true } } + + sig { params(organization_name: ::String, creator_email: T.nilable(::String), origin_id: T.nilable(::String)).void } + def initialize(organization_name:, creator_email: nil, origin_id: nil) + @organization_name = organization_name + @creator_email = creator_email + @origin_id = origin_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @organization_name == other.organization_name + return false unless @creator_email == other.creator_email + return false unless @origin_id == other.origin_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi new file mode 100644 index 00000000..70cdc4de --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_end_user.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadEndUser + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadEndUser + def organization_name(); end + def organization_name=(str_); end + def creator_email(); end + def creator_email=(str_); end + def origin_id(); end + def origin_id=(str_); end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb new file mode 100644 index 00000000..4e54f49b --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rb @@ -0,0 +1,19 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # IssueStatusChangedWebhookPayloadStatus - The issue status after this change. + class IssueStatusChangedWebhookPayloadStatus < T::Enum + enums do + OPEN = new('OPEN') + RESOLVED = new('RESOLVED') + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi new file mode 100644 index 00000000..33ecab02 --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_status.rbi @@ -0,0 +1,11 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadStatus + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadStatus +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb new file mode 100644 index 00000000..fc7adc7a --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rb @@ -0,0 +1,18 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # IssueStatusChangedWebhookPayloadType - Type of the webhook event + class IssueStatusChangedWebhookPayloadType < T::Enum + enums do + ISSUE_STATUS_CHANGED = new('issue-status-changed') + end + end + end + end +end diff --git a/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi new file mode 100644 index 00000000..c400270c --- /dev/null +++ b/lib/kombo/models/shared/issuestatuschangedwebhookpayload_type.rbi @@ -0,0 +1,11 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadType + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::IssueStatusChangedWebhookPayloadType +end diff --git a/lib/kombo/models/shared/line_item.rb b/lib/kombo/models/shared/line_item.rb new file mode 100644 index 00000000..306106a2 --- /dev/null +++ b/lib/kombo/models/shared/line_item.rb @@ -0,0 +1,44 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class LineItem + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. For some integrations, this ID can still change if the payslip is edited. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. This value may include the item's position on the payslip, which can change if the payslip is edited. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The name of the salary type. + field :name, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('name'), required: true } } + # The amount of the line item. + field :amount, Crystalline::Nilable.new(Models::Shared::Amount), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('amount') } } + + sig { params(id: ::String, remote_id: ::String, name: T.nilable(::String), amount: T.nilable(Models::Shared::Amount)).void } + def initialize(id:, remote_id:, name: nil, amount: nil) + @id = id + @remote_id = remote_id + @name = name + @amount = amount + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @name == other.name + return false unless @amount == other.amount + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/option_1.rbi b/lib/kombo/models/shared/line_item.rbi similarity index 66% rename from lib/kombo/models/shared/option_1.rbi rename to lib/kombo/models/shared/line_item.rbi index eb27c981..a541ce7c 100644 --- a/lib/kombo/models/shared/option_1.rbi +++ b/lib/kombo/models/shared/line_item.rbi @@ -2,16 +2,18 @@ # frozen_string_literal: true -class Kombo::Models::Shared::Option1 +class Kombo::Models::Shared::LineItem extend ::Crystalline::MetadataFields::ClassMethods end -class Kombo::Models::Shared::Option1 +class Kombo::Models::Shared::LineItem def id(); end def id=(str_); end - def name(); end - def name=(str_); end def remote_id(); end def remote_id=(str_); end + def name(); end + def name=(str_); end + def amount(); end + def amount=(str_); end end diff --git a/lib/kombo/models/shared/name.rb b/lib/kombo/models/shared/name.rb index 868a98d5..93e5606a 100644 --- a/lib/kombo/models/shared/name.rb +++ b/lib/kombo/models/shared/name.rb @@ -27,6 +27,10 @@ class Name < T::Enum HRIS_SKILLS = new('hris_skills') HRIS_SKILL_RATING_PROVIDERS = new('hris_skill_rating_providers') HRIS_EMPLOYEE_SKILL_PROFICIENCY_RATINGS = new('hris_employee_skill_proficiency_ratings') + HRIS_PAY_RUNS = new('hris_pay_runs') + HRIS_PAYSLIPS = new('hris_payslips') + HRIS_SALARY_TYPES = new('hris_salary_types') + HRIS_PAYSLIP_LINE_ITEMS = new('hris_payslip_line_items') ATS_USERS = new('ats_users') ATS_JOBS = new('ats_jobs') ATS_JOB_POSTINGS = new('ats_job_postings') @@ -40,6 +44,7 @@ class Name < T::Enum ATS_REJECTION_REASONS = new('ats_rejection_reasons') ATS_ROLES = new('ats_roles') ATS_NOTES = new('ats_notes') + ATS_SCORECARDS = new('ats_scorecards') LMS_USERS = new('lms_users') LMS_COURSE_PROVIDERS = new('lms_course_providers') LMS_SKILLS = new('lms_skills') diff --git a/lib/kombo/models/shared/pay_run.rb b/lib/kombo/models/shared/pay_run.rb new file mode 100644 index 00000000..d47cd3c0 --- /dev/null +++ b/lib/kombo/models/shared/pay_run.rb @@ -0,0 +1,48 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + # The pay run the payslip was paid out through. + class PayRun + extend T::Sig + include Crystalline::MetadataFields + + # The globally unique ID of this object generated by Kombo. We recommend using this as a stable primary key for syncing. + field :id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('id'), required: true } } + # The raw ID of the object in the remote system. We don't recommend using this as a primary key on your side as it might sometimes be compromised of multiple identifiers if a system doesn't provide a clear primary key. + field :remote_id, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # The start date of the pay run, as a calendar date (`yyyy-MM-dd`). + field :start_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('start_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } } + # The end date of the pay run, as a calendar date (`yyyy-MM-dd`). + field :end_date, Crystalline::Nilable.new(::Date), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('end_date'), required: true, 'decoder': ::Kombo::Utils.date_from_iso_format(false) } } + # The Kombo ID of the pay run’s legal entity. The ID can be used to retrieve the legal entity from the `get legal entities` endpoint. + field :legal_entity_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('legal_entity_id'), required: true } } + + sig { params(id: ::String, remote_id: ::String, start_date: T.nilable(::Date), end_date: T.nilable(::Date), legal_entity_id: T.nilable(::String)).void } + def initialize(id:, remote_id:, start_date: nil, end_date: nil, legal_entity_id: nil) + @id = id + @remote_id = remote_id + @start_date = start_date + @end_date = end_date + @legal_entity_id = legal_entity_id + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @id == other.id + return false unless @remote_id == other.remote_id + return false unless @start_date == other.start_date + return false unless @end_date == other.end_date + return false unless @legal_entity_id == other.legal_entity_id + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/pay_run.rbi b/lib/kombo/models/shared/pay_run.rbi new file mode 100644 index 00000000..9c30f7cb --- /dev/null +++ b/lib/kombo/models/shared/pay_run.rbi @@ -0,0 +1,21 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::PayRun + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::PayRun + def id(); end + def id=(str_); end + def remote_id(); end + def remote_id=(str_); end + def start_date(); end + def start_date=(str_); end + def end_date(); end + def end_date=(str_); end + def legal_entity_id(); end + def legal_entity_id=(str_); end +end diff --git a/lib/kombo/models/shared/response.rb b/lib/kombo/models/shared/response.rb new file mode 100644 index 00000000..db2866f2 --- /dev/null +++ b/lib/kombo/models/shared/response.rb @@ -0,0 +1,27 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class Response + extend T::Sig + include Crystalline::MetadataFields + + + + def initialize; end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/response.rbi b/lib/kombo/models/shared/response.rbi new file mode 100644 index 00000000..ab168fde --- /dev/null +++ b/lib/kombo/models/shared/response.rbi @@ -0,0 +1,11 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::Response + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::Response +end diff --git a/lib/kombo/models/shared/result_boolean.rb b/lib/kombo/models/shared/result_boolean.rb new file mode 100644 index 00000000..5da2e8b4 --- /dev/null +++ b/lib/kombo/models/shared/result_boolean.rb @@ -0,0 +1,55 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultBoolean + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # The yes/no the interviewer picked. + field :answer, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(T::Boolean)).void } + def initialize(label:, remote_id: nil, description: nil, required: nil, type: 'BOOLEAN', answer: nil) + @label = label + @remote_id = remote_id + @description = description + @required = required + unless type == 'BOOLEAN' + raise ArgumentError, 'Invalid value for type' + end + @type = 'BOOLEAN' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_boolean.rbi b/lib/kombo/models/shared/result_boolean.rbi new file mode 100644 index 00000000..8aa3985e --- /dev/null +++ b/lib/kombo/models/shared/result_boolean.rbi @@ -0,0 +1,23 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultBoolean + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultBoolean + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/shared/result_date.rb b/lib/kombo/models/shared/result_date.rb new file mode 100644 index 00000000..472a26b9 --- /dev/null +++ b/lib/kombo/models/shared/result_date.rb @@ -0,0 +1,55 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultDate + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # Date in `YYYY-MM-DD` format. + field :answer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(::String)).void } + def initialize(label:, remote_id: nil, description: nil, required: nil, type: 'DATE', answer: nil) + @label = label + @remote_id = remote_id + @description = description + @required = required + unless type == 'DATE' + raise ArgumentError, 'Invalid value for type' + end + @type = 'DATE' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_date.rbi b/lib/kombo/models/shared/result_date.rbi new file mode 100644 index 00000000..6471f396 --- /dev/null +++ b/lib/kombo/models/shared/result_date.rbi @@ -0,0 +1,23 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultDate + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultDate + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/shared/result_multiselect.rb b/lib/kombo/models/shared/result_multiselect.rb new file mode 100644 index 00000000..2e1779a8 --- /dev/null +++ b/lib/kombo/models/shared/result_multiselect.rb @@ -0,0 +1,59 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultMultiSelect + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # Every option available for select and multi-select questions. + field :options, Crystalline::Array.new(Models::Shared::GetAtsScorecardsPositiveResponseOption2), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # An array of ids and labels with every selected option. + field :answer, Crystalline::Nilable.new(Crystalline::Array.new(Models::Shared::GetAtsScorecardsPositiveResponseAnswer2)), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, options: T::Array[Models::Shared::GetAtsScorecardsPositiveResponseOption2], remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(T::Array[Models::Shared::GetAtsScorecardsPositiveResponseAnswer2])).void } + def initialize(label:, options:, remote_id: nil, description: nil, required: nil, type: 'MULTI_SELECT', answer: nil) + @label = label + @options = options + @remote_id = remote_id + @description = description + @required = required + unless type == 'MULTI_SELECT' + raise ArgumentError, 'Invalid value for type' + end + @type = 'MULTI_SELECT' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @options == other.options + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_multiselect.rbi b/lib/kombo/models/shared/result_multiselect.rbi new file mode 100644 index 00000000..0cd056a7 --- /dev/null +++ b/lib/kombo/models/shared/result_multiselect.rbi @@ -0,0 +1,25 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultMultiSelect + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultMultiSelect + def label(); end + def label=(str_); end + def options(); end + def options=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/shared/result_number.rb b/lib/kombo/models/shared/result_number.rb new file mode 100644 index 00000000..9b843a2a --- /dev/null +++ b/lib/kombo/models/shared/result_number.rb @@ -0,0 +1,55 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultNumber + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # A decimal value. + field :answer, Crystalline::Nilable.new(::Float), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(::Float)).void } + def initialize(label:, remote_id: nil, description: nil, required: nil, type: 'NUMBER', answer: nil) + @label = label + @remote_id = remote_id + @description = description + @required = required + unless type == 'NUMBER' + raise ArgumentError, 'Invalid value for type' + end + @type = 'NUMBER' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_number.rbi b/lib/kombo/models/shared/result_number.rbi new file mode 100644 index 00000000..df1a578e --- /dev/null +++ b/lib/kombo/models/shared/result_number.rbi @@ -0,0 +1,23 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultNumber + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultNumber + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/shared/result_singleselect.rb b/lib/kombo/models/shared/result_singleselect.rb new file mode 100644 index 00000000..c9354fa8 --- /dev/null +++ b/lib/kombo/models/shared/result_singleselect.rb @@ -0,0 +1,59 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultSingleSelect + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # Every option available for select and multi-select questions. + field :options, Crystalline::Array.new(Models::Shared::GetAtsScorecardsPositiveResponseOption1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('options'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # The id and label of the selected option. + field :answer, Crystalline::Nilable.new(Models::Shared::GetAtsScorecardsPositiveResponseAnswer1), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, options: T::Array[Models::Shared::GetAtsScorecardsPositiveResponseOption1], remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(Models::Shared::GetAtsScorecardsPositiveResponseAnswer1)).void } + def initialize(label:, options:, remote_id: nil, description: nil, required: nil, type: 'SINGLE_SELECT', answer: nil) + @label = label + @options = options + @remote_id = remote_id + @description = description + @required = required + unless type == 'SINGLE_SELECT' + raise ArgumentError, 'Invalid value for type' + end + @type = 'SINGLE_SELECT' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @options == other.options + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_singleselect.rbi b/lib/kombo/models/shared/result_singleselect.rbi new file mode 100644 index 00000000..b283d2e8 --- /dev/null +++ b/lib/kombo/models/shared/result_singleselect.rbi @@ -0,0 +1,25 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultSingleSelect + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultSingleSelect + def label(); end + def label=(str_); end + def options(); end + def options=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/shared/result_text.rb b/lib/kombo/models/shared/result_text.rb new file mode 100644 index 00000000..e336163a --- /dev/null +++ b/lib/kombo/models/shared/result_text.rb @@ -0,0 +1,55 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Shared + + class ResultText + extend T::Sig + include Crystalline::MetadataFields + + # The question or attribute being assessed, e.g. "Willingness to travel". + field :label, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('label'), required: true } } + # ID of the question in the connected ATS. `null` when the ATS keeps the headline rating or summary outside the rubric. + field :remote_id, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('remote_id'), required: true } } + # Guidance the ATS shows the interviewer below the question, e.g. "1 is poor, 4 is great". + field :description, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('description'), required: true } } + # Whether the ATS marked this question mandatory. + field :required, Crystalline::Nilable.new(Crystalline::Boolean.new), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('required'), required: true } } + + field :type, ::String, { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('type'), required: true } } + # The text the interviewer wrote. + field :answer, Crystalline::Nilable.new(::String), { 'format_json': { 'letter_case': ::Kombo::Utils.field_name('answer'), required: true } } + + sig { params(label: ::String, remote_id: T.nilable(::String), description: T.nilable(::String), required: T.nilable(T::Boolean), type: ::String, answer: T.nilable(::String)).void } + def initialize(label:, remote_id: nil, description: nil, required: nil, type: 'TEXT', answer: nil) + @label = label + @remote_id = remote_id + @description = description + @required = required + unless type == 'TEXT' + raise ArgumentError, 'Invalid value for type' + end + @type = 'TEXT' + @answer = answer + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @label == other.label + return false unless @remote_id == other.remote_id + return false unless @description == other.description + return false unless @required == other.required + return false unless @type == other.type + return false unless @answer == other.answer + true + end + end + end + end +end diff --git a/lib/kombo/models/shared/result_text.rbi b/lib/kombo/models/shared/result_text.rbi new file mode 100644 index 00000000..f4e12519 --- /dev/null +++ b/lib/kombo/models/shared/result_text.rbi @@ -0,0 +1,23 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Shared::ResultText + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Shared::ResultText + def label(); end + def label=(str_); end + def remote_id(); end + def remote_id=(str_); end + def description(); end + def description=(str_); end + def required(); end + def required=(str_); end + def type(); end + def type=(str_); end + def answer(); end + def answer=(str_); end +end diff --git a/lib/kombo/models/webhooks.rb b/lib/kombo/models/webhooks.rb index 5a64d87c..5393a125 100644 --- a/lib/kombo/models/webhooks.rb +++ b/lib/kombo/models/webhooks.rb @@ -20,6 +20,8 @@ module Webhooks autoload :WebhookIntegrationDeletedWebhookPayloadResponse, 'kombo/models/webhooks/webhookintegrationdeletedwebhookpayload_response.rb' autoload :WebhookIntegrationStateChangedWebhookPayloadRequest, 'kombo/models/webhooks/webhookintegrationstatechangedwebhookpayload_request.rb' autoload :WebhookIntegrationStateChangedWebhookPayloadResponse, 'kombo/models/webhooks/webhookintegrationstatechangedwebhookpayload_response.rb' + autoload :WebhookIssueStatusChangedWebhookPayloadRequest, 'kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb' + autoload :WebhookIssueStatusChangedWebhookPayloadResponse, 'kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb' autoload :WebhookSyncFinishedWebhookPayloadRequest, 'kombo/models/webhooks/webhooksyncfinishedwebhookpayload_request.rb' autoload :WebhookSyncFinishedWebhookPayloadResponse, 'kombo/models/webhooks/webhooksyncfinishedwebhookpayload_response.rb' end diff --git a/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb new file mode 100644 index 00000000..077de3ec --- /dev/null +++ b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rb @@ -0,0 +1,36 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Webhooks + + class WebhookIssueStatusChangedWebhookPayloadRequest + extend T::Sig + include Crystalline::MetadataFields + + # HMAC signature for webhook verification. See the webhook documentation for details on how to verify this signature. + field :x_kombo_signature, ::String, { 'header': { 'field_name': 'X-Kombo-Signature', 'style': 'simple', 'explode': false } } + + field :body, Models::Shared::IssueStatusChangedWebhookPayload, { 'request': { 'media_type': 'application/json' } } + + sig { params(x_kombo_signature: ::String, body: Models::Shared::IssueStatusChangedWebhookPayload).void } + def initialize(x_kombo_signature:, body:) + @x_kombo_signature = x_kombo_signature + @body = body + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @x_kombo_signature == other.x_kombo_signature + return false unless @body == other.body + true + end + end + end + end +end diff --git a/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi new file mode 100644 index 00000000..db4781cd --- /dev/null +++ b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_request.rbi @@ -0,0 +1,15 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Webhooks::WebhookIssueStatusChangedWebhookPayloadRequest + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Webhooks::WebhookIssueStatusChangedWebhookPayloadRequest + def x_kombo_signature(); end + def x_kombo_signature=(str_); end + def body(); end + def body=(str_); end +end diff --git a/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb new file mode 100644 index 00000000..ca87ce90 --- /dev/null +++ b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rb @@ -0,0 +1,40 @@ +# Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + +# typed: true +# frozen_string_literal: true + + +module Kombo + module Models + module Webhooks + + class WebhookIssueStatusChangedWebhookPayloadResponse + extend T::Sig + include Crystalline::MetadataFields + + # HTTP response content type for this operation + field :content_type, ::String + # HTTP response status code for this operation + field :status_code, ::Integer + # Raw HTTP response; suitable for custom response parsing + field :raw_response, ::Faraday::Response + + sig { params(content_type: ::String, status_code: ::Integer, raw_response: ::Faraday::Response).void } + def initialize(content_type:, status_code:, raw_response:) + @content_type = content_type + @status_code = status_code + @raw_response = raw_response + end + + sig { params(other: T.untyped).returns(T::Boolean) } + def ==(other) + return false unless other.is_a? self.class + return false unless @content_type == other.content_type + return false unless @status_code == other.status_code + return false unless @raw_response == other.raw_response + true + end + end + end + end +end diff --git a/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi new file mode 100644 index 00000000..70699802 --- /dev/null +++ b/lib/kombo/models/webhooks/webhookissuestatuschangedwebhookpayload_response.rbi @@ -0,0 +1,17 @@ +# typed: true +# frozen_string_literal: true + + +class Kombo::Models::Webhooks::WebhookIssueStatusChangedWebhookPayloadResponse + extend ::Crystalline::MetadataFields::ClassMethods +end + + +class Kombo::Models::Webhooks::WebhookIssueStatusChangedWebhookPayloadResponse + def content_type(); end + def content_type=(str_); end + def status_code(); end + def status_code=(str_); end + def raw_response(); end + def raw_response=(str_); end +end diff --git a/lib/kombo/sdkconfiguration.rb b/lib/kombo/sdkconfiguration.rb index fbef7963..c4d9f1d3 100644 --- a/lib/kombo/sdkconfiguration.rb +++ b/lib/kombo/sdkconfiguration.rb @@ -97,9 +97,9 @@ def initialize(client, hooks, retry_config, timeout_ms, security, security_sourc @globals = globals.nil? ? {} : globals @language = 'ruby' @openapi_doc_version = '1.0.0' - @sdk_version = '1.2.8' - @gen_version = '2.928.0' - @user_agent = 'speakeasy-sdk/ruby 1.2.8 2.928.0 1.0.0 kombo' + @sdk_version = '1.2.9' + @gen_version = '2.935.1' + @user_agent = 'speakeasy-sdk/ruby 1.2.9 2.935.1 1.0.0 kombo' end sig { returns([String, T::Hash[Symbol, String]]) } diff --git a/lib/kombo/utils/utils.rb b/lib/kombo/utils/utils.rb index e68aadd4..7e5c81f5 100644 --- a/lib/kombo/utils/utils.rb +++ b/lib/kombo/utils/utils.rb @@ -81,11 +81,15 @@ def self.error_status?(status) sig { params(content_type: String, pattern: String).returns(T::Boolean) } def self.match_content_type(content_type, pattern) - return true if content_type == pattern || ['*', '*/*'].include?(pattern) + return true if ['*', '*/*'].include?(pattern) + + # Media types are case-insensitive (RFC 9110 section 8.3.1). + pattern = pattern.strip.downcase + return true if content_type.strip.downcase == pattern pieces = content_type.split(';') pieces.each do |piece| - return true if pattern == piece.strip + return true if pattern == piece.strip.downcase end false