From 9faf55e9e613601bb41ee2412d26a3378402eee5 Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Tue, 3 Mar 2026 00:33:05 +0000 Subject: [PATCH] ## Python SDK Changes: * `kombo.ats.add_application_note()`: * `request.remote_fields.lever` **Added** * `kombo.assessment.update_order_result()`: * `request.remote_fields.recruitee` **Added** --- .speakeasy/gen.lock | 69 +++++++++++-------- .speakeasy/gen.yaml | 2 +- .speakeasy/workflow.lock | 13 ++-- RELEASES.md | 12 +++- ...tionsapplicationidnotesrequestbodylever.md | 10 +++ ...plicationidnotesrequestbodyremotefields.md | 1 + ...ssmentorderidresultrequestbodyrecruitee.md | 8 +++ ...entorderidresultrequestbodyremotefields.md | 3 +- docs/sdks/general/README.md | 3 +- pyproject.toml | 2 +- src/kombo/_version.py | 6 +- src/kombo/general.py | 6 +- src/kombo/models/__init__.py | 12 ++++ ...plicationsapplicationidnotesrequestbody.py | 37 +++++++++- ...rdersassessmentorderidresultrequestbody.py | 37 +++++++++- src/kombo/sdk.py | 2 +- uv.lock | 2 +- 17 files changed, 174 insertions(+), 51 deletions(-) create mode 100644 docs/models/postatsapplicationsapplicationidnotesrequestbodylever.md create mode 100644 docs/models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 4a5b185..55e03de 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,24 +1,24 @@ lockVersion: 2.0.0 id: 0c8d1667-2710-4860-aee3-7d221dbc0a60 management: - docChecksum: 1a5ccdbcfe223bcdfb2e76cc1c64228f + docChecksum: a5cee03ce60ad63c6efd4811592568ad docVersion: 1.0.0 - speakeasyVersion: 1.730.1 - generationVersion: 2.844.3 - releaseVersion: 1.0.1 - configChecksum: e243330fcbdc6c9ec6bb7aa890009489 + speakeasyVersion: 1.738.0 + generationVersion: 2.845.21 + releaseVersion: 1.0.2 + configChecksum: 8204a893cd4eb501e48ad7a51ea0fece repoURL: https://github.com/kombohq/python-sdk.git installationURL: https://github.com/kombohq/python-sdk.git published: true persistentEdits: - generation_id: d8093f2c-e333-41aa-a4ad-5c78a32dc3c0 - pristine_commit_hash: ca4c085af742540b88a68566f750d503b0f81b5a - pristine_tree_hash: ba40e1c2ac1b12bd55ccffcdd81c7db45f4649c9 + generation_id: 085e921c-a8a9-4313-ae1d-70721998dac8 + pristine_commit_hash: 0f05f8dde280b35b21c71ce7ae81ac3af4ccdc0f + pristine_tree_hash: 43ce949e39955e2b97bec7e9094d198b3a5e4831 features: python: additionalDependencies: 1.0.0 constsAndDefaults: 1.0.7 - core: 6.0.12 + core: 6.0.15 defaultEnabledRetries: 0.2.0 deprecations: 3.0.2 enumUnions: 0.1.0 @@ -29,7 +29,7 @@ features: globalSecurity: 3.0.5 globalSecurityCallbacks: 1.0.0 globalSecurityFlattening: 1.0.0 - globalServerURLs: 3.2.0 + globalServerURLs: 3.2.1 globals: 3.0.0 groups: 3.0.1 hiddenGlobals: 1.0.0 @@ -1966,6 +1966,10 @@ trackedFiles: id: d4277422e11f last_write_checksum: sha1:5c44973fe6fb06591a4aa6272efb92c605bb8cce pristine_git_object: 28769d5cab92630be2c75d4463bbef00b94db346 + docs/models/postatsapplicationsapplicationidnotesrequestbodylever.md: + id: 4d4c856b3fe2 + last_write_checksum: sha1:3a764314f1cb0da342b7fc0009c7d33fe8d9c0df + pristine_git_object: 168d4266d62bda656f381922f45ae6b961a049b5 docs/models/postatsapplicationsapplicationidnotesrequestbodypostheaders.md: id: 11506129736e last_write_checksum: sha1:eaf32cbef35f4ccd47b81510d1793aecf2f1231d @@ -1976,8 +1980,8 @@ trackedFiles: pristine_git_object: faccd5145a094d401fb9ae53efbe7812a6c999a6 docs/models/postatsapplicationsapplicationidnotesrequestbodyremotefields.md: id: e4c7348ebf91 - last_write_checksum: sha1:e4ef0427ec7384670822c735e94bf7c1fb59bab1 - pristine_git_object: c63782120264c6026d60bf8bf04112a0b0bfb0d1 + last_write_checksum: sha1:9142c6dd0b3634acd3a4861e94b86b21e41705cb + pristine_git_object: 14177163558c4afe4d88cb74eb1c95e1cdbada22 docs/models/postatsapplicationsapplicationidnotesrequestbodyteamtailor.md: id: 7e3573ed835f last_write_checksum: sha1:2ca8afeeb6be1871f6eed6f5cde8f704620dca56 @@ -3426,10 +3430,14 @@ trackedFiles: id: 088b7bb3a1ed last_write_checksum: sha1:5e21ad86af7f599d244871a023f60d2b1f4a6d6c pristine_git_object: bc87fa338693aafbccf75b5f336c10155762c79e + docs/models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md: + id: 0586f5da0d08 + last_write_checksum: sha1:77b01f4911c4c792d006593b4aef7c7a034a98d4 + pristine_git_object: 390541cb4ed8eb384d6bfc785c8e3eb08c8d21d6 docs/models/putassessmentordersassessmentorderidresultrequestbodyremotefields.md: id: 51f8810695e9 - last_write_checksum: sha1:8e5198dcd8cafe8cfa84520b481840a1c59bb575 - pristine_git_object: 103e9d29d92ff55b42a30907b3eb173ad8cbee15 + last_write_checksum: sha1:d55b284a8bccf9a10578c75dbf96c24573414e08 + pristine_git_object: 39f32cb7718874b6e463664dda47b5857df6d68b docs/models/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md: id: b2889dbfc3b9 last_write_checksum: sha1:5022128de544dd45593ca0c88d09533b1657c46c @@ -3972,8 +3980,8 @@ trackedFiles: pristine_git_object: cb268794ca5a2389305a908323d1585a0c88d9c4 docs/sdks/general/README.md: id: ce0ada6fa2e1 - last_write_checksum: sha1:210bf6d6b54745f948d1a686d0044bc6a4b84eb0 - pristine_git_object: 2590c40df846d9af1fa3cbf73565e929c12b78d6 + last_write_checksum: sha1:fcc0a8a3b7f4a0f3f0ff4761ade15aa2bbad5884 + pristine_git_object: 04d4cf3631100a8405ba76e81378c5e1fc45318e docs/sdks/hris/README.md: id: 0baa868a038c last_write_checksum: sha1:c16c5df676d2c0189ba8c89bca6d34c8d63f1e45 @@ -3988,8 +3996,8 @@ trackedFiles: pristine_git_object: f456032107a9387ba6c98afd1c981df2f4b3d636 pyproject.toml: id: 5d07e7d72637 - last_write_checksum: sha1:d3ec919fa8ea7f317d5faff4689af474b39ee544 - pristine_git_object: bd82fac2d92853afda8279d6306d3235a40b3868 + last_write_checksum: sha1:50325473031e488d55a5dd9cea397f90ef731c07 + pristine_git_object: 4590179ed7bbea40d27b2f6d72d022293c16be76 scripts/prepare_readme.py: id: e0c5957a6035 last_write_checksum: sha1:b6ad6f0515a952d7cb052befddb6a117d4f627d8 @@ -4016,8 +4024,8 @@ trackedFiles: pristine_git_object: e589e541e5fc70d336de44780721f301d754ed72 src/kombo/_version.py: id: 45cf440ad1df - last_write_checksum: sha1:bdee453890f69531dbf58485e1abb586eefca526 - pristine_git_object: 55f0c9e94e76a0e46aa16378b6e376f27b8e2df5 + last_write_checksum: sha1:b40f6cd574e3a6c58e37d913514adbc6b4725cb1 + pristine_git_object: 066c7443baf8ccd1868f7d473fd573cfc2879d6a src/kombo/assessment.py: id: aec6e8a7589f last_write_checksum: sha1:1406e437a55541ba21ab8a76696b092238678670 @@ -4068,8 +4076,8 @@ trackedFiles: pristine_git_object: 16ac2977e80b6eabe4020aa8a21dd28e83032f9a src/kombo/general.py: id: 107ecb9f3651 - last_write_checksum: sha1:de8d80deac60a51e550164ae859910c927a12e2c - pristine_git_object: 1e0b8142dd56c826d9c8effb2f58bf1047e17605 + last_write_checksum: sha1:311a77a3017195032641f641489eeda812810ba1 + pristine_git_object: 3235cf8252ee511a047d508fc7eb35cbde5bdaf6 src/kombo/hris.py: id: 9ba1b37ab10a last_write_checksum: sha1:02e56fc1424f2c437b285c6eff92c05a5f58d100 @@ -4080,8 +4088,8 @@ trackedFiles: pristine_git_object: 89560b566073785535643e694c112bedbd3db13d src/kombo/models/__init__.py: id: 45e6e8c7f07f - last_write_checksum: sha1:01d01490e3655af2ffe2b669814d2ebff9bef9cb - pristine_git_object: 20734a3e9b18f9a38df12b2eb808d585eef6c5be + last_write_checksum: sha1:dba28c0cd451c29d707d63b7491d508d0525cf81 + pristine_git_object: e56f4f60c3ecfd8804ed4d98a2570919ff48f7f1 src/kombo/models/assessmentorderreceivedwebhookpayload.py: id: 532c2db2ee93 last_write_checksum: sha1:d33dfff9c40d2ac57c9d7afb30f9f580d47be9c2 @@ -4456,8 +4464,8 @@ trackedFiles: pristine_git_object: 5a56d68268d640ec3f8f2f9003c111979fa83642 src/kombo/models/postatsapplicationsapplicationidnotesrequestbody.py: id: 44497b08cf43 - last_write_checksum: sha1:07e40de31be6d8246c821d58197a33dedd33feff - pristine_git_object: ecffabfcfc5f23a76c33a18544dfb793e4286cb6 + last_write_checksum: sha1:0ec5a35e2727cbbb1b61dca335820856d41ba869 + pristine_git_object: 730729fd357258564c25d4fd7ddbddd333e7a939 src/kombo/models/postatsapplicationsapplicationidrejectop.py: id: 53d6e1ff7e85 last_write_checksum: sha1:45b0fc1c0936a4aba7a7b00eb32c95f425be9ed1 @@ -4644,8 +4652,8 @@ trackedFiles: pristine_git_object: b34ea0de9602c887e0e0354fe501e917e9ac179e src/kombo/models/putassessmentordersassessmentorderidresultrequestbody.py: id: 9752de46be3c - last_write_checksum: sha1:1a756e66731d8c94526696c30df775eaafa2adb5 - pristine_git_object: 493dffd9630183c840377e56ee9fb03f4050c823 + last_write_checksum: sha1:72bae59cbbab278654dd397a711d8a7ae91455f9 + pristine_git_object: 53081adbcdfa6af73d643e4deab5ec564745150d src/kombo/models/putassessmentpackagesop.py: id: b33421f2efc8 last_write_checksum: sha1:2adaf7aa1eac694e57806832a00db85af1f90c25 @@ -4764,8 +4772,8 @@ trackedFiles: pristine_git_object: 3e38f1a929f7d6b1d6de74604aa87e3d8f010544 src/kombo/sdk.py: id: 61eb4ad101f4 - last_write_checksum: sha1:f9797ef6641b609f3da6afb27516edaa302d97b5 - pristine_git_object: cdb3567d46506c2af99a47f021c50e4e6bacd0d5 + last_write_checksum: sha1:83e87de73b08416505e843d98f77e5848d058e1d + pristine_git_object: 9da32100c844175714bde23b6c2c3022e45671b9 src/kombo/sdkconfiguration.py: id: f9376e99ec00 last_write_checksum: sha1:645b3d5c2cf5cfbd62a1ef07973a46e76f9d5ae9 @@ -7288,6 +7296,7 @@ examples: default: application/json: {"status": "error", "error": {"code": "PLATFORM.RATE_LIMIT_EXCEEDED", "title": "", "message": "", "log_url": "https://enchanting-barracks.biz/"}} examplesVersion: 1.0.2 +releaseNotes: "## Python SDK Changes:\n* `kombo.ats.add_application_note()`: \n * `request.remote_fields.lever` **Added**\n* `kombo.assessment.update_order_result()`: \n * `request.remote_fields.recruitee` **Added**\n" generatedFiles: - .gitattributes - .vscode/settings.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 5aa5abc..7c6a5cb 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -31,7 +31,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: false python: - version: 1.0.1 + version: 1.0.2 additionalDependencies: dev: inline-snapshot: '>=0.13.0' diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index cd126f3..194f8f8 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,21 +1,20 @@ -speakeasyVersion: 1.730.1 +speakeasyVersion: 1.738.0 sources: kombo-prepared-spec: sourceNamespace: kombo-api - sourceRevisionDigest: sha256:591686f3af40670601f76d7f68736891fe6f4b7e266a7b5f2763c5325ffb9c1c - sourceBlobDigest: sha256:20bfd7153b22ad4d11e59e12c67abf8c83551f1d366d8f1664b8809bf7eef991 + sourceRevisionDigest: sha256:1d49bb78d601cf5be69e39fd32ac10e0edce252c17d7ae248f9f34c8e5904d4f + sourceBlobDigest: sha256:b33d09594f021e3232766bcd0fe07f72096ca5a54ea1cb7047801392598c19c1 tags: - latest - - speakeasy-sdk-regen-1772065734 - 1.0.0 targets: kombo-python: source: kombo-prepared-spec sourceNamespace: kombo-api - sourceRevisionDigest: sha256:591686f3af40670601f76d7f68736891fe6f4b7e266a7b5f2763c5325ffb9c1c - sourceBlobDigest: sha256:20bfd7153b22ad4d11e59e12c67abf8c83551f1d366d8f1664b8809bf7eef991 + sourceRevisionDigest: sha256:1d49bb78d601cf5be69e39fd32ac10e0edce252c17d7ae248f9f34c8e5904d4f + sourceBlobDigest: sha256:b33d09594f021e3232766bcd0fe07f72096ca5a54ea1cb7047801392598c19c1 codeSamplesNamespace: kombo-api-python-code-samples - codeSamplesRevisionDigest: sha256:03deb2d90d561265287ab7f54e545f74f5ec490eb013df88fa2fd12320f20d39 + codeSamplesRevisionDigest: sha256:6e9f0914dbe0461e28d38b6c699df68de82920cfec561ea37eae1f1a51cb1f28 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/RELEASES.md b/RELEASES.md index a043ae9..f623825 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -128,4 +128,14 @@ Based on: ### Generated - [python v1.0.1] . ### Releases -- [PyPI v1.0.1] https://pypi.org/project/kombo/1.0.1 - . \ No newline at end of file +- [PyPI v1.0.1] https://pypi.org/project/kombo/1.0.1 - . + +## 2026-03-03 00:31:35 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.738.0 (2.845.21) https://github.com/speakeasy-api/speakeasy +### Generated +- [python v1.0.2] . +### Releases +- [PyPI v1.0.2] https://pypi.org/project/kombo/1.0.2 - . \ No newline at end of file diff --git a/docs/models/postatsapplicationsapplicationidnotesrequestbodylever.md b/docs/models/postatsapplicationsapplicationidnotesrequestbodylever.md new file mode 100644 index 0000000..168d426 --- /dev/null +++ b/docs/models/postatsapplicationsapplicationidnotesrequestbodylever.md @@ -0,0 +1,10 @@ +# PostAtsApplicationsApplicationIDNotesRequestBodyLever + +Lever specific remote fields for the note. + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `perform_as` | *Optional[str]* | :heavy_minus_sign: | ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token. | \ No newline at end of file diff --git a/docs/models/postatsapplicationsapplicationidnotesrequestbodyremotefields.md b/docs/models/postatsapplicationsapplicationidnotesrequestbodyremotefields.md index c637821..1417716 100644 --- a/docs/models/postatsapplicationsapplicationidnotesrequestbodyremotefields.md +++ b/docs/models/postatsapplicationsapplicationidnotesrequestbodyremotefields.md @@ -11,4 +11,5 @@ Tool specific remote fields for the note. | `greenhouse` | [Optional[models.PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouse]](../models/postatsapplicationsapplicationidnotesrequestbodygreenhouse.md) | :heavy_minus_sign: | Fields specific to Greenhouse. | | `recruitee` | [Optional[models.PostAtsApplicationsApplicationIDNotesRequestBodyRecruitee]](../models/postatsapplicationsapplicationidnotesrequestbodyrecruitee.md) | :heavy_minus_sign: | Recruitee specific remote fields for the note. | | `bullhorn` | [Optional[models.PostAtsApplicationsApplicationIDNotesRequestBodyBullhorn]](../models/postatsapplicationsapplicationidnotesrequestbodybullhorn.md) | :heavy_minus_sign: | Bullhorn specific remote fields for the note. | +| `lever` | [Optional[models.PostAtsApplicationsApplicationIDNotesRequestBodyLever]](../models/postatsapplicationsapplicationidnotesrequestbodylever.md) | :heavy_minus_sign: | Lever specific remote fields for the note. | | `workable` | [Optional[models.PostAtsApplicationsApplicationIDNotesRequestBodyWorkable]](../models/postatsapplicationsapplicationidnotesrequestbodyworkable.md) | :heavy_minus_sign: | Workable specific remote fields for ATS actions. | \ No newline at end of file diff --git a/docs/models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md b/docs/models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md new file mode 100644 index 0000000..390541c --- /dev/null +++ b/docs/models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md @@ -0,0 +1,8 @@ +# PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee + + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `subtitle` | *Optional[str]* | :heavy_minus_sign: | Value that we will pass through to Recruitee's `subtitle` field on the assessment report. | \ No newline at end of file diff --git a/docs/models/putassessmentordersassessmentorderidresultrequestbodyremotefields.md b/docs/models/putassessmentordersassessmentorderidresultrequestbodyremotefields.md index 103e9d2..39f32cb 100644 --- a/docs/models/putassessmentordersassessmentorderidresultrequestbodyremotefields.md +++ b/docs/models/putassessmentordersassessmentorderidresultrequestbodyremotefields.md @@ -7,4 +7,5 @@ Additional fields that we will pass through to specific ATS systems. | Field | Type | Required | Description | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `smartrecruiters` | [Optional[models.PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters]](../models/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md) | :heavy_minus_sign: | N/A | \ No newline at end of file +| `smartrecruiters` | [Optional[models.PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters]](../models/putassessmentordersassessmentorderidresultrequestbodysmartrecruiters.md) | :heavy_minus_sign: | N/A | +| `recruitee` | [Optional[models.PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee]](../models/putassessmentordersassessmentorderidresultrequestbodyrecruitee.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/sdks/general/README.md b/docs/sdks/general/README.md index 2590c40..04d4cf3 100644 --- a/docs/sdks/general/README.md +++ b/docs/sdks/general/README.md @@ -302,7 +302,8 @@ To get started, please pick the relevant API (some tools provide multiple to due |Visma Peple|`peple/hrm`|[Visma Payroll Reporting API](https://api.analytics1.hrm.visma.net/docs/openapi.html). We automatically authenticate all requests using the client credentials and use 'https://api.analytics1.hrm.visma.net' as the base URL.| |Visma Raet - Youforce|`youforce/v1.0`|[Youforce's basic v1.0 API](https://vr-api-integration.github.io/youforce-api-documentation/postman_collections.html). We automatically authenticate all requests and use 'https://api.youforce.com' as base URL.| |Visma YouServe|`youserve/learning`|Visma YouServe [Learning API](https://youserve-domain-api.github.io/SwaggerUI/learning.html). We automatically authenticate all requests using OAuth 2.0 with the provided credentials and use `https://api.youserve.nl/learning/v1.0` as the base URL.| -|Workable|`workable/v1`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| +|Workable|`workable/v1`|**Deprecated: Use `v3` instead.** Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| +|Workable|`workable/v3`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., "v1", "v2"); if omitted, it defaults to "v1".| |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).| |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.| diff --git a/pyproject.toml b/pyproject.toml index bd82fac..4590179 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "kombo" -version = "1.0.1" +version = "1.0.2" description = "The official Python SDK for the Kombo Unified API" authors = [{ name = "Kombo Technologies GmbH" },] readme = "README-PYPI.md" diff --git a/src/kombo/_version.py b/src/kombo/_version.py index 55f0c9e..066c744 100644 --- a/src/kombo/_version.py +++ b/src/kombo/_version.py @@ -3,10 +3,10 @@ import importlib.metadata __title__: str = "kombo" -__version__: str = "1.0.1" +__version__: str = "1.0.2" __openapi_doc_version__: str = "1.0.0" -__gen_version__: str = "2.844.3" -__user_agent__: str = "speakeasy-sdk/python 1.0.1 2.844.3 1.0.0 kombo" +__gen_version__: str = "2.845.21" +__user_agent__: str = "speakeasy-sdk/python 1.0.2 2.845.21 1.0.0 kombo" try: if __package__ is not None: diff --git a/src/kombo/general.py b/src/kombo/general.py index 1e0b814..3235cf8 100644 --- a/src/kombo/general.py +++ b/src/kombo/general.py @@ -538,7 +538,8 @@ def send_passthrough_request( |Visma Peple|`peple/hrm`|[Visma Payroll Reporting API](https://api.analytics1.hrm.visma.net/docs/openapi.html). We automatically authenticate all requests using the client credentials and use 'https://api.analytics1.hrm.visma.net' as the base URL.| |Visma Raet - Youforce|`youforce/v1.0`|[Youforce's basic v1.0 API](https://vr-api-integration.github.io/youforce-api-documentation/postman_collections.html). We automatically authenticate all requests and use 'https://api.youforce.com' as base URL.| |Visma YouServe|`youserve/learning`|Visma YouServe [Learning API](https://youserve-domain-api.github.io/SwaggerUI/learning.html). We automatically authenticate all requests using OAuth 2.0 with the provided credentials and use `https://api.youserve.nl/learning/v1.0` as the base URL.| - |Workable|`workable/v1`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| + |Workable|`workable/v1`|**Deprecated: Use `v3` instead.** Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| + |Workable|`workable/v3`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., \"v1\", \"v2\"); if omitted, it defaults to \"v1\".| |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).| |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.| @@ -842,7 +843,8 @@ async def send_passthrough_request_async( |Visma Peple|`peple/hrm`|[Visma Payroll Reporting API](https://api.analytics1.hrm.visma.net/docs/openapi.html). We automatically authenticate all requests using the client credentials and use 'https://api.analytics1.hrm.visma.net' as the base URL.| |Visma Raet - Youforce|`youforce/v1.0`|[Youforce's basic v1.0 API](https://vr-api-integration.github.io/youforce-api-documentation/postman_collections.html). We automatically authenticate all requests and use 'https://api.youforce.com' as base URL.| |Visma YouServe|`youserve/learning`|Visma YouServe [Learning API](https://youserve-domain-api.github.io/SwaggerUI/learning.html). We automatically authenticate all requests using OAuth 2.0 with the provided credentials and use `https://api.youserve.nl/learning/v1.0` as the base URL.| - |Workable|`workable/v1`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| + |Workable|`workable/v1`|**Deprecated: Use `v3` instead.** Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| + |Workable|`workable/v3`|Workable's [API](https://workable.readme.io/reference/generate-an-access-token). We automatically authenticate all requests using the client ID and secret and use `https://\{subdomain\}.\{environment\}.com/spi/v3` as the base URL.| |Workday|`workday/rest`|[Workday's REST API](https://community.workday.com/sites/default/files/file-hosting/restapi/index.html). We automatically authenticate all requests and use the correct Workday REST base URL for your tenant. The base URL follows the format: https://\{domain\}/api/\{service_name\}/\{version\}/\{tenant\}. You can specify any valid REST endpoint and method. See the Workday REST API documentation for available endpoints. You must specify the `api_options` object and set `service_name` to the name of the service you want to call. You can also specify the `version` (e.g., \"v1\", \"v2\"); if omitted, it defaults to \"v1\".| |Workday|`workday/soap`|[Workday's SOAP API](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests. Set `data` to your raw xml string. Use `/` as your `path`, as we will always send requests to `https://\{domain\}/ccx/service/\{tenant\}/\{service_name\}`. Set your `method` to `POST`. You need to specify the `api_options` object and set `service_name` to the name of the service you want to call. Find all available services [here](https://community.workday.com/sites/default/files/file-hosting/productionapi/versions/v41.0/index.html). The string that you submit as `data` will be the content of the `soapenv:Body` tag in the request. You can set the `service_version` to any valid Workday service version (the default is `38.2`).| |workforce.com|`workforcecom/api`|Workforce.com [API](https://my.workforce.com/api/v2/documentation). We automatically authenticate all requests using the provided credentials and use `https://my.tanda.co` as the base URL.| diff --git a/src/kombo/models/__init__.py b/src/kombo/models/__init__.py index 20734a3..e56f4f6 100644 --- a/src/kombo/models/__init__.py +++ b/src/kombo/models/__init__.py @@ -1129,6 +1129,8 @@ PostAtsApplicationsApplicationIDNotesRequestBodyBullhornTypedDict, PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouse, PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouseTypedDict, + PostAtsApplicationsApplicationIDNotesRequestBodyLever, + PostAtsApplicationsApplicationIDNotesRequestBodyLeverTypedDict, PostAtsApplicationsApplicationIDNotesRequestBodyPostHeaders, PostAtsApplicationsApplicationIDNotesRequestBodyPostHeadersTypedDict, PostAtsApplicationsApplicationIDNotesRequestBodyRecruitee, @@ -1926,6 +1928,8 @@ PutAssessmentOrdersAssessmentOrderIDResultRequestBody, PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachment, PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachmentTypedDict, + PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee, + PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruiteeTypedDict, PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFields, PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFieldsTypedDict, PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters, @@ -2957,6 +2961,8 @@ "PostAtsApplicationsApplicationIDNotesRequestBodyBullhornTypedDict", "PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouse", "PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouseTypedDict", + "PostAtsApplicationsApplicationIDNotesRequestBodyLever", + "PostAtsApplicationsApplicationIDNotesRequestBodyLeverTypedDict", "PostAtsApplicationsApplicationIDNotesRequestBodyPostHeaders", "PostAtsApplicationsApplicationIDNotesRequestBodyPostHeadersTypedDict", "PostAtsApplicationsApplicationIDNotesRequestBodyRecruitee", @@ -3661,6 +3667,8 @@ "PutAssessmentOrdersAssessmentOrderIDResultRequestBody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachment", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachmentTypedDict", + "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee", + "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruiteeTypedDict", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFields", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFieldsTypedDict", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters", @@ -4779,6 +4787,8 @@ "PostAtsApplicationsApplicationIDNotesRequestBodyBullhornTypedDict": ".postatsapplicationsapplicationidnotesrequestbody", "PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouse": ".postatsapplicationsapplicationidnotesrequestbody", "PostAtsApplicationsApplicationIDNotesRequestBodyGreenhouseTypedDict": ".postatsapplicationsapplicationidnotesrequestbody", + "PostAtsApplicationsApplicationIDNotesRequestBodyLever": ".postatsapplicationsapplicationidnotesrequestbody", + "PostAtsApplicationsApplicationIDNotesRequestBodyLeverTypedDict": ".postatsapplicationsapplicationidnotesrequestbody", "PostAtsApplicationsApplicationIDNotesRequestBodyPostHeaders": ".postatsapplicationsapplicationidnotesrequestbody", "PostAtsApplicationsApplicationIDNotesRequestBodyPostHeadersTypedDict": ".postatsapplicationsapplicationidnotesrequestbody", "PostAtsApplicationsApplicationIDNotesRequestBodyRecruitee": ".postatsapplicationsapplicationidnotesrequestbody", @@ -5485,6 +5495,8 @@ "PutAssessmentOrdersAssessmentOrderIDResultRequestBody": ".putassessmentordersassessmentorderidresultrequestbody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachment": ".putassessmentordersassessmentorderidresultrequestbody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyAttachmentTypedDict": ".putassessmentordersassessmentorderidresultrequestbody", + "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee": ".putassessmentordersassessmentorderidresultrequestbody", + "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruiteeTypedDict": ".putassessmentordersassessmentorderidresultrequestbody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFields": ".putassessmentordersassessmentorderidresultrequestbody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFieldsTypedDict": ".putassessmentordersassessmentorderidresultrequestbody", "PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters": ".putassessmentordersassessmentorderidresultrequestbody", diff --git a/src/kombo/models/postatsapplicationsapplicationidnotesrequestbody.py b/src/kombo/models/postatsapplicationsapplicationidnotesrequestbody.py index ecffabf..730729f 100644 --- a/src/kombo/models/postatsapplicationsapplicationidnotesrequestbody.py +++ b/src/kombo/models/postatsapplicationsapplicationidnotesrequestbody.py @@ -182,6 +182,36 @@ def serialize_model(self, handler): return m +class PostAtsApplicationsApplicationIDNotesRequestBodyLeverTypedDict(TypedDict): + r"""Lever specific remote fields for the note.""" + + perform_as: NotRequired[str] + r"""ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token.""" + + +class PostAtsApplicationsApplicationIDNotesRequestBodyLever(BaseModel): + r"""Lever specific remote fields for the note.""" + + perform_as: Optional[str] = None + r"""ID of the Lever user that will show up as having created the note. If not provided, defaults to the user associated with the OAuth token.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["perform_as"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + class PostAtsApplicationsApplicationIDNotesRequestBodyWorkableTypedDict(TypedDict): r"""Workable specific remote fields for ATS actions.""" @@ -231,6 +261,8 @@ class PostAtsApplicationsApplicationIDNotesRequestBodyRemoteFieldsTypedDict(Type PostAtsApplicationsApplicationIDNotesRequestBodyBullhornTypedDict ] r"""Bullhorn specific remote fields for the note.""" + lever: NotRequired[PostAtsApplicationsApplicationIDNotesRequestBodyLeverTypedDict] + r"""Lever specific remote fields for the note.""" workable: NotRequired[ PostAtsApplicationsApplicationIDNotesRequestBodyWorkableTypedDict ] @@ -258,13 +290,16 @@ class PostAtsApplicationsApplicationIDNotesRequestBodyRemoteFields(BaseModel): bullhorn: Optional[PostAtsApplicationsApplicationIDNotesRequestBodyBullhorn] = None r"""Bullhorn specific remote fields for the note.""" + lever: Optional[PostAtsApplicationsApplicationIDNotesRequestBodyLever] = None + r"""Lever specific remote fields for the note.""" + workable: Optional[PostAtsApplicationsApplicationIDNotesRequestBodyWorkable] = None r"""Workable specific remote fields for ATS actions.""" @model_serializer(mode="wrap") def serialize_model(self, handler): optional_fields = set( - ["teamtailor", "greenhouse", "recruitee", "bullhorn", "workable"] + ["teamtailor", "greenhouse", "recruitee", "bullhorn", "lever", "workable"] ) serialized = handler(self) m = {} diff --git a/src/kombo/models/putassessmentordersassessmentorderidresultrequestbody.py b/src/kombo/models/putassessmentordersassessmentorderidresultrequestbody.py index 493dffd..53081ad 100644 --- a/src/kombo/models/putassessmentordersassessmentorderidresultrequestbody.py +++ b/src/kombo/models/putassessmentordersassessmentorderidresultrequestbody.py @@ -186,6 +186,34 @@ def serialize_model(self, handler): return m +class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruiteeTypedDict( + TypedDict +): + subtitle: NotRequired[str] + r"""Value that we will pass through to Recruitee's `subtitle` field on the assessment report.""" + + +class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee(BaseModel): + subtitle: Optional[str] = None + r"""Value that we will pass through to Recruitee's `subtitle` field on the assessment report.""" + + @model_serializer(mode="wrap") + def serialize_model(self, handler): + optional_fields = set(["subtitle"]) + serialized = handler(self) + m = {} + + for n, f in type(self).model_fields.items(): + k = f.alias or n + val = serialized.get(k) + + if val != UNSET_SENTINEL: + if val is not None or k not in optional_fields: + m[k] = val + + return m + + class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFieldsTypedDict( TypedDict ): @@ -194,6 +222,9 @@ class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFieldsTypedDict smartrecruiters: NotRequired[ PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruitersTypedDict ] + recruitee: NotRequired[ + PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruiteeTypedDict + ] class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFields(BaseModel): @@ -203,9 +234,13 @@ class PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRemoteFields(BaseMode PutAssessmentOrdersAssessmentOrderIDResultRequestBodySmartrecruiters ] = None + recruitee: Optional[ + PutAssessmentOrdersAssessmentOrderIDResultRequestBodyRecruitee + ] = None + @model_serializer(mode="wrap") def serialize_model(self, handler): - optional_fields = set(["smartrecruiters"]) + optional_fields = set(["smartrecruiters", "recruitee"]) serialized = handler(self) m = {} diff --git a/src/kombo/sdk.py b/src/kombo/sdk.py index cdb3567..9da3210 100644 --- a/src/kombo/sdk.py +++ b/src/kombo/sdk.py @@ -42,8 +42,8 @@ def __init__( api_key: Union[str, Callable[[], str]], integration_id: Optional[str] = None, server: Optional[str] = None, - server_url: Optional[str] = None, url_params: Optional[Dict[str, str]] = None, + server_url: Optional[str] = None, client: Optional[HttpClient] = None, async_client: Optional[AsyncHttpClient] = None, retry_config: OptionalNullable[RetryConfig] = UNSET, diff --git a/uv.lock b/uv.lock index 9c02a49..0f5ff7c 100644 --- a/uv.lock +++ b/uv.lock @@ -191,7 +191,7 @@ wheels = [ [[package]] name = "kombo" -version = "1.0.1" +version = "1.0.2" source = { editable = "." } dependencies = [ { name = "httpcore" },