Skip to content
Closed
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
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.9.0"
".": "0.10.0"
}
4 changes: 2 additions & 2 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 45
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-0b1ba028eafcc1352b38e7cf4c5e1be2092f615b2b0debbb3b190417d6e5c790.yml
openapi_spec_hash: 321675c35fd5b32a2c43fac714820d5a
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-cd9d35eb40d6a406e4d901e824529d80793822b71f51bdde49f500819a2bc0cd.yml
openapi_spec_hash: da172f56435db4a245e85f6647414dce
config_hash: 0b4d62a9a1e0cc71998bcfc3d15c4db7
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 0.10.0 (2026-09-03)

Full Changelog: [v0.9.0...v0.10.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.9.0...v0.10.0)

### Features

* **api:** api update ([ea2113d](https://github.com/Vitable-Inc/vitable-connect-python/commit/ea2113dd3f75984aea9463f8ca8dd03ce4d9ee5b))
* **api:** api update ([5921f6f](https://github.com/Vitable-Inc/vitable-connect-python/commit/5921f6f9115bd27cd6c1c334360c6e099bd7b59a))
* **api:** api update ([bb64312](https://github.com/Vitable-Inc/vitable-connect-python/commit/bb64312d41e9cd491a6d3cf3e870fcf4ce96a784))
* **api:** api update ([533da66](https://github.com/Vitable-Inc/vitable-connect-python/commit/533da66cfc064f6488263aa33771181eaf43f6fe))
* **api:** api update ([dc779aa](https://github.com/Vitable-Inc/vitable-connect-python/commit/dc779aa69f093a32f9985d8735c0cfe73df90ed4))
* **api:** api update ([6ad787d](https://github.com/Vitable-Inc/vitable-connect-python/commit/6ad787dbdf4bfc4e84ed85ffebdb55202e97de97))
* **api:** api update ([81a776c](https://github.com/Vitable-Inc/vitable-connect-python/commit/81a776cf26e78f4359521f64715178ce2c161e9c))

## 0.9.0 (2026-08-20)

Full Changelog: [v0.8.0...v0.9.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.8.0...v0.9.0)
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 = "vitable_connect"
version = "0.9.0"
version = "0.10.0"
description = "The official Python library for the vitable-connect API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
2 changes: 1 addition & 1 deletion src/vitable_connect/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "vitable_connect"
__version__ = "0.9.0" # x-release-please-version
__version__ = "0.10.0" # x-release-please-version
8 changes: 4 additions & 4 deletions src/vitable_connect/resources/employees.py
Original file line number Diff line number Diff line change
Expand Up @@ -139,8 +139,8 @@ def update(
gender: - `Male` - Male
- `Female` - Female
- `Transgender` - Transgender
- `Non-binary` - Non-binary
- `Prefer not to respond` - Prefer not to respond
- `Non-binary` - Non Binary
- `Prefer not to respond` - Prefer Not To Respond

phone: Phone number

Expand Down Expand Up @@ -340,8 +340,8 @@ async def update(
gender: - `Male` - Male
- `Female` - Female
- `Transgender` - Transgender
- `Non-binary` - Non-binary
- `Prefer not to respond` - Prefer not to respond
- `Non-binary` - Non Binary
- `Prefer not to respond` - Prefer Not To Respond

phone: Phone number

Expand Down
28 changes: 18 additions & 10 deletions src/vitable_connect/resources/employers.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,9 @@ def list(
benefit-lifecycle stage) merged with the employer's flat CRM fields (legal name,
EIN, contact, address, timestamps). The book is derived from the authenticated
principal: one organization's employers, or every organization's for a caller
whose reach is not a single organization. Supports name search,
benefit-family/lifecycle/HRIS filters, and page/limit pagination.
whose reach is not a single organization. Supports search by display name, legal
name, or exact EIN, employer id or contact email, benefit-family/lifecycle/HRIS
filters, and page/limit pagination.

Args:
benefit_family: Filter to employers with at least one active benefit in these families.
Expand All @@ -278,7 +279,9 @@ def list(

page: Page number.

search: Case-insensitive employer-name substring filter.
search: Employer filter. Matches the display name or the legal name case-insensitively
as a substring, or one of these exactly: the EIN (with or without its dash), the
employer id, or the contact email of one of the employer's non-disabled admins.

extra_headers: Send extra headers

Expand Down Expand Up @@ -543,8 +546,9 @@ def list_hris_providers(
"""
Returns the distinct HRIS/payroll providers across the same book
`GET /v1/employers` returns, sorted for display. Use these as the values for the
employers list's `hris_provider` filter — the providers are free text, so they
cannot be enumerated in advance.
employers list's `hris_provider` filter — filter on `provider`, show
`provider_label`. The stored providers are free text, so they cannot be
enumerated in advance.
"""
return self._get(
"/v1/employers/hris-providers",
Expand Down Expand Up @@ -1227,8 +1231,9 @@ def list(
benefit-lifecycle stage) merged with the employer's flat CRM fields (legal name,
EIN, contact, address, timestamps). The book is derived from the authenticated
principal: one organization's employers, or every organization's for a caller
whose reach is not a single organization. Supports name search,
benefit-family/lifecycle/HRIS filters, and page/limit pagination.
whose reach is not a single organization. Supports search by display name, legal
name, or exact EIN, employer id or contact email, benefit-family/lifecycle/HRIS
filters, and page/limit pagination.

Args:
benefit_family: Filter to employers with at least one active benefit in these families.
Expand All @@ -1248,7 +1253,9 @@ def list(

page: Page number.

search: Case-insensitive employer-name substring filter.
search: Employer filter. Matches the display name or the legal name case-insensitively
as a substring, or one of these exactly: the EIN (with or without its dash), the
employer id, or the contact email of one of the employer's non-disabled admins.

extra_headers: Send extra headers

Expand Down Expand Up @@ -1516,8 +1523,9 @@ async def list_hris_providers(
"""
Returns the distinct HRIS/payroll providers across the same book
`GET /v1/employers` returns, sorted for display. Use these as the values for the
employers list's `hris_provider` filter — the providers are free text, so they
cannot be enumerated in advance.
employers list's `hris_provider` filter — filter on `provider`, show
`provider_label`. The stored providers are free text, so they cannot be
enumerated in advance.
"""
return await self._get(
"/v1/employers/hris-providers",
Expand Down
50 changes: 26 additions & 24 deletions src/vitable_connect/resources/enrollments.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,11 @@ def retrieve(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> EnrollmentRetrieveResponse:
"""
Retrieves detailed information for a specific enrollment by ID.
Retrieves a single enrollment: the employee and employer it belongs to, the
benefit product, its status, the coverage period, the employee payroll deduction
and employer contribution, and the enrolled plan's Summary of Benefits and
Coverage document when one is on file. An enrollment the caller cannot reach is
indistinguishable from one that does not exist.

Args:
enrollment_id: Unique enrollment identifier (enrl\\__\\**)
Expand Down Expand Up @@ -99,20 +103,17 @@ def reissue(
Closes the targeted enrollment and creates a new unanswered enrollment for the
same member and plan year. VPC never requires a qualifying life event; other
products require an accepted, member-owned event outside open enrollment.
User-backed callers must provide a reason; it is optional for userless
organization callers. API keys and unbound access tokens may act across the
caller organization's book. Employer-bound access tokens may act only on that
employer's enrollments, and employee-bound access tokens may act only on that
employee's enrollment. Tenant or token-scope mismatches return the same
non-disclosing 404 before the request body is validated.
User-backed callers must provide a reason; it is optional for organization
API-key callers. Tenant mismatches return a non-disclosing 404 before the
request body is validated.

Args:
enrollment_id: Unique enrollment identifier (enrl\\__\\**)

qualifying_life_event_id: Accepted member qualifying life event identifier (qle\\__\\**)

reason: Audit reason for the reissue; required for user-backed callers and optional for
userless organization callers
long-lived organization API-key callers

ticket_number: Optional support or operational ticket number

Expand Down Expand Up @@ -160,9 +161,9 @@ def terminate(

An accepted qualifying life event
owned by the enrollment member is required unless the plan is VPC or ICHRA.
User-backed callers must provide a reason; it is optional for userless
organization callers. API keys may act across the caller organization's book.
Tenant mismatches return the same non-disclosing 404 before the request body is
User-backed callers must provide a reason; it is optional for organization
API-key callers. API keys may act across the caller organization's book. Tenant
mismatches return the same non-disclosing 404 before the request body is
validated.

Args:
Expand All @@ -171,7 +172,7 @@ def terminate(
qualifying_life_event_id: Accepted member qualifying life event identifier (qle\\__\\**)

reason: Audit reason for the termination; required for user-backed callers and optional
for userless organization callers
for long-lived organization API-key callers

ticket_number: Optional support or operational ticket number

Expand Down Expand Up @@ -237,7 +238,11 @@ async def retrieve(
timeout: float | httpx.Timeout | None | NotGiven = not_given,
) -> EnrollmentRetrieveResponse:
"""
Retrieves detailed information for a specific enrollment by ID.
Retrieves a single enrollment: the employee and employer it belongs to, the
benefit product, its status, the coverage period, the employee payroll deduction
and employer contribution, and the enrolled plan's Summary of Benefits and
Coverage document when one is on file. An enrollment the caller cannot reach is
indistinguishable from one that does not exist.

Args:
enrollment_id: Unique enrollment identifier (enrl\\__\\**)
Expand Down Expand Up @@ -278,20 +283,17 @@ async def reissue(
Closes the targeted enrollment and creates a new unanswered enrollment for the
same member and plan year. VPC never requires a qualifying life event; other
products require an accepted, member-owned event outside open enrollment.
User-backed callers must provide a reason; it is optional for userless
organization callers. API keys and unbound access tokens may act across the
caller organization's book. Employer-bound access tokens may act only on that
employer's enrollments, and employee-bound access tokens may act only on that
employee's enrollment. Tenant or token-scope mismatches return the same
non-disclosing 404 before the request body is validated.
User-backed callers must provide a reason; it is optional for organization
API-key callers. Tenant mismatches return a non-disclosing 404 before the
request body is validated.

Args:
enrollment_id: Unique enrollment identifier (enrl\\__\\**)

qualifying_life_event_id: Accepted member qualifying life event identifier (qle\\__\\**)

reason: Audit reason for the reissue; required for user-backed callers and optional for
userless organization callers
long-lived organization API-key callers

ticket_number: Optional support or operational ticket number

Expand Down Expand Up @@ -339,9 +341,9 @@ async def terminate(

An accepted qualifying life event
owned by the enrollment member is required unless the plan is VPC or ICHRA.
User-backed callers must provide a reason; it is optional for userless
organization callers. API keys may act across the caller organization's book.
Tenant mismatches return the same non-disclosing 404 before the request body is
User-backed callers must provide a reason; it is optional for organization
API-key callers. API keys may act across the caller organization's book. Tenant
mismatches return the same non-disclosing 404 before the request body is
validated.

Args:
Expand All @@ -350,7 +352,7 @@ async def terminate(
qualifying_life_event_id: Accepted member qualifying life event identifier (qle\\__\\**)

reason: Audit reason for the termination; required for user-backed callers and optional
for userless organization callers
for long-lived organization API-key callers

ticket_number: Optional support or operational ticket number

Expand Down
Loading
Loading