Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 61 additions & 53 deletions .speakeasy/gen.lock

Large diffs are not rendered by default.

8 changes: 7 additions & 1 deletion .speakeasy/gen.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ generation:
generateNewTests: true
skipResponseBodyAssertions: false
python:
version: 1.2.0
version: 1.3.0
additionalDependencies:
dev:
inline-snapshot: '>=0.13.0'
Expand All @@ -53,6 +53,10 @@ python:
description: The official Python SDK for the Kombo Unified API
enableCustomCodeRegions: false
enumFormat: union
errorSchemaValidation: true
eventStreamClassNames:
async: EventStreamAsync
sync: EventStream
fixFlags:
asyncPaginationSep2025: true
conflictResistantModelImportsFeb2026: false
Expand All @@ -72,6 +76,7 @@ python:
webhooks: ""
inferUnionDiscriminators: true
inputModelSuffix: input
inputTypedDictSuffix: TypedDict
legacyPyright: false
license: ""
maxMethodParams: 999
Expand All @@ -89,6 +94,7 @@ python:
pytestTimeout: 0
rawResponseHelpers: false
responseFormat: flat
responseSchemaValidation: true
sseFlatResponse: false
templateVersion: v2
useAsyncHooks: false
12 changes: 6 additions & 6 deletions .speakeasy/workflow.lock
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
speakeasyVersion: 1.771.0
speakeasyVersion: 1.784.0
sources:
kombo-prepared-spec:
sourceNamespace: kombo-api
sourceRevisionDigest: sha256:26400cad28773013cca90a0c587483fb4d201d1807badde6f783b44a77d0a550
sourceBlobDigest: sha256:b5916e82d018ffec07eae810ab9a36840e04c9ca308f46d447a48f5cf4899b59
sourceRevisionDigest: sha256:0b7c2e367cb1cdb42ceb4d8b9f85511f761393c66252122ce09efc13b5cd3ed2
sourceBlobDigest: sha256:1d7bc8e3398742fffa43a0ada21817cc740c99d509d9434af5012515cb9ae938
tags:
- latest
- 1.0.0
targets:
kombo-python:
source: kombo-prepared-spec
sourceNamespace: kombo-api
sourceRevisionDigest: sha256:26400cad28773013cca90a0c587483fb4d201d1807badde6f783b44a77d0a550
sourceBlobDigest: sha256:b5916e82d018ffec07eae810ab9a36840e04c9ca308f46d447a48f5cf4899b59
sourceRevisionDigest: sha256:0b7c2e367cb1cdb42ceb4d8b9f85511f761393c66252122ce09efc13b5cd3ed2
sourceBlobDigest: sha256:1d7bc8e3398742fffa43a0ada21817cc740c99d509d9434af5012515cb9ae938
codeSamplesNamespace: kombo-api-python-code-samples
codeSamplesRevisionDigest: sha256:8c0d04c52852071bedbdec19d6148e3bf239304c7d5bd5a38ec1591a9ee58772
codeSamplesRevisionDigest: sha256:d298f7465906d0caf75af33252c8215e6b5ddd3310600b6752ec21d737bcdd68
workflow:
workflowVersion: 1.0.0
speakeasyVersion: latest
Expand Down
12 changes: 11 additions & 1 deletion RELEASES.md
Original file line number Diff line number Diff line change
Expand Up @@ -218,4 +218,14 @@ Based on:
### Generated
- [python v1.2.0] .
### Releases
- [PyPI v1.2.0] https://pypi.org/project/kombo/1.2.0 - .
- [PyPI v1.2.0] https://pypi.org/project/kombo/1.2.0 - .

## 2026-06-21 01:00:46
### Changes
Based on:
- OpenAPI Doc
- Speakeasy CLI 1.784.0 (2.911.0) https://github.com/speakeasy-api/speakeasy
### Generated
- [python v1.3.0] .
### Releases
- [PyPI v1.3.0] https://pypi.org/project/kombo/1.3.0 - .
2 changes: 2 additions & 0 deletions docs/models/integrationtool.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ value: IntegrationTool = "workday"
- `"logicmelon"`
- `"loxo"`
- `"kula"`
- `"pageup"`
- `"workdaycustomreport"`
- `"workdaycustomreportsftp"`
- `"ukgprowfm"`
Expand Down Expand Up @@ -204,6 +205,7 @@ value: IntegrationTool = "workday"
- `"sftpfetch"`
- `"360learning"`
- `"talentlms"`
- `"docebo"`
- `"udemy"`
- `"linkedinlearning"`
- `"moodle"`
16 changes: 16 additions & 0 deletions docs/models/postatscandidatesrequestbodyaktiv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# PostAtsCandidatesRequestBodyAktiv

Whether the candidate is created as active (`Ja`) or inactive (`Nein`) in Coveto. If omitted, Coveto applies its default (active).

## Example Usage

```python
from kombo.models import PostAtsCandidatesRequestBodyAktiv
value: PostAtsCandidatesRequestBodyAktiv = "Ja"
```


## Values

- `"Ja"`
- `"Nein"`
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ Additional candidate fields that will be passed to the Coveto candidate creation
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `mandant` | *Optional[float]* | :heavy_minus_sign: | The mandant field for the candidate in Coveto. |
| `status` | *Optional[int]* | :heavy_minus_sign: | The numeric status ID to assign to the candidate on creation in Coveto. Refer to your Coveto `/bewerber-status` endpoint for available IDs. |
| `status` | *Optional[int]* | :heavy_minus_sign: | The numeric status ID to assign to the candidate on creation in Coveto. Refer to your Coveto `/bewerber-status` endpoint for available IDs. |
| `aktiv` | [Optional[models.PostAtsCandidatesRequestBodyAktiv]](../models/postatscandidatesrequestbodyaktiv.md) | :heavy_minus_sign: | Whether the candidate is created as active (`Ja`) or inactive (`Nein`) in Coveto. If omitted, Coveto applies its default (active). |
16 changes: 16 additions & 0 deletions docs/models/postatsjobsjobidapplicationsrequestbodyaktiv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# PostAtsJobsJobIDApplicationsRequestBodyAktiv

Whether the candidate is created as active (`Ja`) or inactive (`Nein`) in Coveto. If omitted, Coveto applies its default (active).

## Example Usage

```python
from kombo.models import PostAtsJobsJobIDApplicationsRequestBodyAktiv
value: PostAtsJobsJobIDApplicationsRequestBodyAktiv = "Ja"
```


## Values

- `"Ja"`
- `"Nein"`
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ Additional candidate fields that will be passed to the Coveto candidate creation
| Field | Type | Required | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `mandant` | *Optional[float]* | :heavy_minus_sign: | The mandant field for the candidate in Coveto. |
| `status` | *Optional[int]* | :heavy_minus_sign: | The numeric status ID to assign to the candidate on creation in Coveto. Refer to your Coveto `/bewerber-status` endpoint for available IDs. |
| `status` | *Optional[int]* | :heavy_minus_sign: | The numeric status ID to assign to the candidate on creation in Coveto. Refer to your Coveto `/bewerber-status` endpoint for available IDs. |
| `aktiv` | [Optional[models.PostAtsJobsJobIDApplicationsRequestBodyAktiv]](../models/postatsjobsjobidapplicationsrequestbodyaktiv.md) | :heavy_minus_sign: | Whether the candidate is created as active (`Ja`) or inactive (`Nein`) in Coveto. If omitted, Coveto applies its default (active). |
5 changes: 4 additions & 1 deletion docs/sdks/general/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -189,14 +189,15 @@ To get started, please pick the relevant API (some tools provide multiple to due
|d.vinci admin|`dvinciadmin/rest-api`|[DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html).|
|d.vinci|`dvinci/apply-api`|The [DVinci Apply API](https://static.dvinci-easy.com/files/d.vinci%20application-apply-api.html). All requests are authenticated by Kombo and use `https://\{dvinci_domain\}/p/\{portal_path\}/` as the base URL.|
|d.vinci|`dvinci/rest-api`|The [DVinci REST API](https://static.dvinci-easy.com/files/d.vinci%20rest-api.html). All requests are authenticated by Kombo and use `https://\{dvinci_domain\}/restApi/` as the base URL.|
|DATEV LAUDS|`datevlauds/lauds`|DATEV's [hr-exchange](https://developer.datev.de/de/product-detail/hr-exchange/1.0.0/overview). We automatically authenticate all requests and use `https://hr-exchange.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}` as the base URL.|
|DATEV LODAS|`datev/eau`|DATEV's [eau](https://developer.datev.de/en/product-detail/eau-api/1.0.0/overview) API. We automatically authenticate all requests and use `https://eau.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
|DATEV Lohnaustauschdatenservice|`datevlauds/lauds`|DATEV's [hr-exchange](https://developer.datev.de/de/product-detail/hr-exchange/1.0.0/overview). We automatically authenticate all requests and use `https://hr-exchange.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}` as the base URL.|
|DATEV|`datevhr/eau`|DATEV's [eau](https://developer.datev.de/en/product-detail/eau-api/1.0.0/overview) API. We automatically authenticate all requests and use `https://eau.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
|DATEV|`datevhr/hr-exports`|DATEV's [hr-exports](https://developer.datev.de/en/product-detail/hr-exports/1.0.0/overview). We automatically authenticate all requests and use `https://hr-exports.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}` as the base URL.|
|DATEV|`datevhr/hr:payrollreports`|DATEV's [hr:payrollreports](https://developer.datev.de/en/product-detail/hr-payrollreports/2.0.0/overview) API. We automatically authenticate all requests and use `https://hr-payrollreports.api.datev.de/\{platform|platform-sandbox\}/v1/clients/\{client-id\}/` as the base URL.|
|Dayforce|`dayforce/V1`|[Dayforce's API](https://developers.dayforce.com/Build/Home.aspx). We automatically authenticate all requests and use `\{\{baseUrl\}\}/Api/\{\{clientNamespace\}\}/V1` as the base URL|
|Deel|`deel/api`|Deel's [API](https://developer.deel.com/reference/). We automatically authenticate all requests using the provided credentials and use `https://\{api_domain\}/rest` as the base URL.|
|Digital Recruiters|`digitalrecruiters/api`|Cegid Digital Recruiters [Talent Acquisition API](https://cegid-hr-developers.talentsoft.net/docs/tutorial-basics/Talent%20Acquisition/Getting%20Started). We automatically authenticate all requests by replacing `:token` in the request URL with your configured access token and use your configured Digital Recruiters domain as the base URL.|
|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.|
|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.|
Expand Down Expand Up @@ -277,6 +278,7 @@ To get started, please pick the relevant API (some tools provide multiple to due
|Oracle Recruiting Cloud|`oraclerecruiting/rest`|[Oracles's REST API](https://docs.oracle.com/en/cloud/saas/human-resources/24d/farws/rest-endpoints.html). We automatically authenticate all requests and use 'https://\{company_url\}' as the base url.|
|Oracle Taleo|`taleo/soap`|[Taleo's API](https://docs.oracle.com/en/cloud/saas/taleo-enterprise/23b/otwsu/c-taleoapi.html). We automatically authenticate all requests and use 'https://\{your-subdomain\}.taleo.net/enterprise/soap' as base URL.|
|OTYS|`otys/json-rpc`|[OTYS JSON-RPC API](https://ows.otys.nl/info/). We authenticate with your stored API key and inject the session token as the first element of the JSON-RPC `params` array on each request (except `loginByUid`, which uses `params` as sent). Requests use `https://ows.otys.nl` as the base URL (for example `POST /jservice.php` with the RPC method in the URL fragment, matching OTYS conventions).|
|PageUp People|`pageup/v1`|We use `https://assessment-mock-api.dc0.pageuppeople.com` as the base URL. Find the official docs [here](https://developers.pageuppeople.com/Api/Partners/Assessment).|
|Paradox|`paradox/v1`|We use `\{api_url\}/api/v1` as the base URL. Find the official docs [here](https://paradox.readme.io/).|
|Paradox|`paradox/v1public`|We use `\{api_url\}/api/v1/public` as the base URL. Find the official docs [here](https://paradox.readme.io/).|
|Paychex|`paychex/api`|Paychex [REST API](https://developer.paychex.com/documentation). We automatically authenticate all requests and use `https://api.paychex.com` as the base URL.|
Expand Down Expand Up @@ -335,6 +337,7 @@ To get started, please pick the relevant API (some tools provide multiple to due
|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`|**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/custom-report`|[Workday's Custom Reports](https://community.workday.com/sites/default/files/file-hosting/productionapi/index.html). We automatically authenticate all requests and use `https://\{domain\}/ccx/service/customreport2/\{tenant\}/` as the base URL. Set your `method` to `GET`. The `path` should be the report path after the tenant, e.g., `/\{report_owner\}/\{report_name\}`. You can include query parameters in the `params` object (e.g., `format=json`).|
|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.|
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "kombo"
version = "1.2.0"
version = "1.3.0"
description = "The official Python SDK for the Kombo Unified API"
authors = [{ name = "Kombo Technologies GmbH" },]
readme = "README-PYPI.md"
Expand Down
Loading
Loading