From 34480bd4ab52c704337f3352a7f351437b6fedf9 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 26 Jun 2026 00:20:20 +0000 Subject: [PATCH 1/8] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index c090223..2fb9e75 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-4e049d21bf4d1154541a77764427eafdc9a088c0a55f31f1d8880b388f18c0de.yml -openapi_spec_hash: eada242b2cc0d091d633c264be7f8a69 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-40ab3fea546a3e83ddfae2d58aae3b06b7fcc1a621f85f00ebfcf882b8a646e7.yml +openapi_spec_hash: de8574c23499d9b9140905ac1ad5f03a config_hash: f9c90441d2ba5436a2224f6ba4f669e9 From d424005af9acf931ea77e97fb139718237e55ede Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 14 Jul 2026 02:07:28 +0000 Subject: [PATCH 2/8] fix(internal): resolve build failures --- scripts/lint | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/lint b/scripts/lint index c53039f..8675467 100755 --- a/scripts/lint +++ b/scripts/lint @@ -13,7 +13,7 @@ else fi echo "==> Running pyright" -uv run pyright +uv run pyright -p . echo "==> Running mypy" uv run mypy . From e6d3d00dd86edcf327d4d207ec518cce9c0c7dbc Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 02:08:13 +0000 Subject: [PATCH 3/8] feat(stlc): configurable CI runner and private-production-repo support in workflow templates --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c069ba..dc9a787 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: lint: timeout-minutes: 10 name: lint - runs-on: ${{ github.repository == 'stainless-sdks/vitable-connect-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: (github.event_name == 'push' || github.event.pull_request.head.repo.fork) && (github.event_name != 'push' || github.event.head_commit.message != 'codegen metadata') steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -41,7 +41,7 @@ jobs: permissions: contents: read id-token: write - runs-on: ${{ github.repository == 'stainless-sdks/vitable-connect-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 @@ -78,7 +78,7 @@ jobs: test: timeout-minutes: 10 name: test - runs-on: ${{ github.repository == 'stainless-sdks/vitable-connect-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} + runs-on: ${{ startsWith(github.repository, 'stainless-sdks/') && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 From 8fa70208d70951f8b6f9e696f7206d9609b251d2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 15:56:05 +0000 Subject: [PATCH 4/8] feat(api): api update --- .stats.yml | 4 +-- src/vitable_connect/resources/employees.py | 14 ++++---- src/vitable_connect/types/employee.py | 40 ++++++++++++++-------- 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/.stats.yml b/.stats.yml index 2fb9e75..90d866e 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-40ab3fea546a3e83ddfae2d58aae3b06b7fcc1a621f85f00ebfcf882b8a646e7.yml -openapi_spec_hash: de8574c23499d9b9140905ac1ad5f03a +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-c80f1c19a9c801b4c0412e4047c567db2eb746474919beb4f9cf39e94b9d5f89.yml +openapi_spec_hash: 45493a4bb10afe4412e2caf0530b3889 config_hash: f9c90441d2ba5436a2224f6ba4f669e9 diff --git a/src/vitable_connect/resources/employees.py b/src/vitable_connect/resources/employees.py index 21300c9..f403e4a 100644 --- a/src/vitable_connect/resources/employees.py +++ b/src/vitable_connect/resources/employees.py @@ -57,9 +57,10 @@ def retrieve( """Retrieves detailed information for a specific employee by ID. Returns employee - details including personal information, employment status, and payroll - deductions from the most recent statement period. Deductions reflect a snapshot - of the current period and are replaced when a new statement is generated. + details including personal information, employment status, classification and + compensation-type effective dates, compensation type, and payroll deductions + from the most recent statement period. Deductions reflect a snapshot of the + current period and are replaced when a new statement is generated. Args: employee_id: Unique employee identifier (empl\\__\\**) @@ -169,9 +170,10 @@ async def retrieve( """Retrieves detailed information for a specific employee by ID. Returns employee - details including personal information, employment status, and payroll - deductions from the most recent statement period. Deductions reflect a snapshot - of the current period and are replaced when a new statement is generated. + details including personal information, employment status, classification and + compensation-type effective dates, compensation type, and payroll deductions + from the most recent statement period. Deductions reflect a snapshot of the + current period and are replaced when a new statement is generated. Args: employee_id: Unique employee identifier (empl\\__\\**) diff --git a/src/vitable_connect/types/employee.py b/src/vitable_connect/types/employee.py index 5a654e7..9b289ef 100644 --- a/src/vitable_connect/types/employee.py +++ b/src/vitable_connect/types/employee.py @@ -65,6 +65,18 @@ class Employee(BaseModel): id: str """Unique employee identifier with 'empl\\__' prefix""" + classification_effective_date: date + """Date the employee's current classification took effect""" + + compensation_type: Optional[Literal["Salary", "Hourly"]] = None + """ + - `Salary` - Salary + - `Hourly` - Hourly + """ + + compensation_type_effective_date: date + """Date the employee's current compensation type took effect""" + created_at: datetime """Timestamp when the employee was created""" @@ -80,6 +92,16 @@ class Employee(BaseModel): email: str """Email address""" + employee_class: EmployeeClass + """ + - `Full Time` - Full Time + - `Part Time` - Part Time + - `Temporary` - Temporary + - `Intern` - Intern + - `Seasonal` - Seasonal + - `Individual Contractor` - Individual Contractor + """ + first_name: str """Employee's legal first name""" @@ -92,7 +114,10 @@ class Employee(BaseModel): phone: Optional[str] = None """Phone number (10-digit US domestic string)""" - status: str + start_date: date + """Employee's start date with the employer""" + + status: Literal["active", "terminated"] """Employee status (active or terminated)""" updated_at: datetime @@ -101,22 +126,9 @@ class Employee(BaseModel): address: Optional[Address] = None """Employee's residential address""" - employee_class: Optional[EmployeeClass] = None - """ - - `Full Time` - Full Time - - `Part Time` - Part Time - - `Temporary` - Temporary - - `Intern` - Intern - - `Seasonal` - Seasonal - - `Individual Contractor` - Individual Contractor - """ - gender: Optional[str] = None """Gender identity, if provided""" - hire_date: Optional[date] = None - """Employee's hire date with the employer""" - reference_id: Optional[str] = None """Partner-assigned reference ID for the employee""" From 1c8bbf5c0aeb2b9a2112eb477ca617a29dca72f2 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 20 Jul 2026 17:01:08 +0000 Subject: [PATCH 5/8] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 90d866e..4113064 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-c80f1c19a9c801b4c0412e4047c567db2eb746474919beb4f9cf39e94b9d5f89.yml +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-f4c823555de4971f99c38b49c515bba42e40aec58bbcc5516ecd03ec8507eb16.yml openapi_spec_hash: 45493a4bb10afe4412e2caf0530b3889 -config_hash: f9c90441d2ba5436a2224f6ba4f669e9 +config_hash: 7295ebbd0e718c807378a7e264b1f400 From 1275787206e5ab26299cb68641ec8ed5e068ef61 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Mon, 20 Jul 2026 22:39:41 +0000 Subject: [PATCH 6/8] feat(api): api update --- .stats.yml | 4 ++-- api.md | 2 +- src/vitable_connect/resources/webhook_events.py | 4 ++++ src/vitable_connect/types/__init__.py | 1 - .../types/auth_issue_access_token_params.py | 4 +--- .../types/auth_issue_access_token_response.py | 4 ++-- src/vitable_connect/types/type.py | 7 ------- src/vitable_connect/types/webhook_event_list_params.py | 2 ++ 8 files changed, 12 insertions(+), 16 deletions(-) delete mode 100644 src/vitable_connect/types/type.py diff --git a/.stats.yml b/.stats.yml index 4113064..46e2b2b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-f4c823555de4971f99c38b49c515bba42e40aec58bbcc5516ecd03ec8507eb16.yml -openapi_spec_hash: 45493a4bb10afe4412e2caf0530b3889 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-55d88143c2c15ea60610b290fc4b6b26f01e08ba73d35baebd4aa3aaa7878620.yml +openapi_spec_hash: e740bd248c8ce7c9706a12c8b3258bc4 config_hash: 7295ebbd0e718c807378a7e264b1f400 diff --git a/api.md b/api.md index 1ee13f6..1d7eafb 100644 --- a/api.md +++ b/api.md @@ -3,7 +3,7 @@ Types: ```python -from vitable_connect.types import Type, AuthIssueAccessTokenResponse +from vitable_connect.types import AuthIssueAccessTokenResponse ``` Methods: diff --git a/src/vitable_connect/resources/webhook_events.py b/src/vitable_connect/resources/webhook_events.py index e7428e3..7ddcd0e 100644 --- a/src/vitable_connect/resources/webhook_events.py +++ b/src/vitable_connect/resources/webhook_events.py @@ -91,6 +91,7 @@ def list( event_name: Literal[ "enrollment.accepted", "enrollment.terminated", + "enrollment.termination_rescheduled", "enrollment.elected", "enrollment.granted", "enrollment.waived", @@ -120,6 +121,7 @@ def list( Args: event_name: - `enrollment.accepted` - Enrollment Accepted - `enrollment.terminated` - Enrollment Terminated + - `enrollment.termination_rescheduled` - Enrollment Termination Rescheduled - `enrollment.elected` - Enrollment Elected - `enrollment.granted` - Enrollment Granted - `enrollment.waived` - Enrollment Waived @@ -272,6 +274,7 @@ def list( event_name: Literal[ "enrollment.accepted", "enrollment.terminated", + "enrollment.termination_rescheduled", "enrollment.elected", "enrollment.granted", "enrollment.waived", @@ -301,6 +304,7 @@ def list( Args: event_name: - `enrollment.accepted` - Enrollment Accepted - `enrollment.terminated` - Enrollment Terminated + - `enrollment.termination_rescheduled` - Enrollment Termination Rescheduled - `enrollment.elected` - Enrollment Elected - `enrollment.granted` - Enrollment Granted - `enrollment.waived` - Enrollment Waived diff --git a/src/vitable_connect/types/__init__.py b/src/vitable_connect/types/__init__.py index d829fb6..0790c0c 100644 --- a/src/vitable_connect/types/__init__.py +++ b/src/vitable_connect/types/__init__.py @@ -2,7 +2,6 @@ from __future__ import annotations -from .type import Type as Type from .group import Group as Group from .employee import Employee as Employee from .employer import Employer as Employer diff --git a/src/vitable_connect/types/auth_issue_access_token_params.py b/src/vitable_connect/types/auth_issue_access_token_params.py index 7ae6296..1b50f6d 100644 --- a/src/vitable_connect/types/auth_issue_access_token_params.py +++ b/src/vitable_connect/types/auth_issue_access_token_params.py @@ -5,8 +5,6 @@ from typing import Optional from typing_extensions import Literal, Required, TypedDict -from .type import Type - __all__ = ["AuthIssueAccessTokenParams", "BoundEntity"] @@ -27,7 +25,7 @@ class BoundEntity(TypedDict, total=False): employee) """ - type: Required[Type] + type: Required[Literal["employer", "employee"]] """ - `employer` - employer - `employee` - employee diff --git a/src/vitable_connect/types/auth_issue_access_token_response.py b/src/vitable_connect/types/auth_issue_access_token_response.py index e6d11bb..f15594d 100644 --- a/src/vitable_connect/types/auth_issue_access_token_response.py +++ b/src/vitable_connect/types/auth_issue_access_token_response.py @@ -1,8 +1,8 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. from typing import Optional +from typing_extensions import Literal -from .type import Type from .._models import BaseModel __all__ = ["AuthIssueAccessTokenResponse", "BoundEntity"] @@ -14,7 +14,7 @@ class BoundEntity(BaseModel): id: str """Prefixed entity ID the token is bound to (empr*\\** or empl*\\**)""" - type: Type + type: Literal["employer", "employee"] """ - `employer` - employer - `employee` - employee diff --git a/src/vitable_connect/types/type.py b/src/vitable_connect/types/type.py deleted file mode 100644 index cefc116..0000000 --- a/src/vitable_connect/types/type.py +++ /dev/null @@ -1,7 +0,0 @@ -# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. - -from typing_extensions import Literal, TypeAlias - -__all__ = ["Type"] - -Type: TypeAlias = Literal["employer", "employee"] diff --git a/src/vitable_connect/types/webhook_event_list_params.py b/src/vitable_connect/types/webhook_event_list_params.py index 618c372..63c3eb1 100644 --- a/src/vitable_connect/types/webhook_event_list_params.py +++ b/src/vitable_connect/types/webhook_event_list_params.py @@ -19,6 +19,7 @@ class WebhookEventListParams(TypedDict, total=False): event_name: Literal[ "enrollment.accepted", "enrollment.terminated", + "enrollment.termination_rescheduled", "enrollment.elected", "enrollment.granted", "enrollment.waived", @@ -31,6 +32,7 @@ class WebhookEventListParams(TypedDict, total=False): """ - `enrollment.accepted` - Enrollment Accepted - `enrollment.terminated` - Enrollment Terminated + - `enrollment.termination_rescheduled` - Enrollment Termination Rescheduled - `enrollment.elected` - Enrollment Elected - `enrollment.granted` - Enrollment Granted - `enrollment.waived` - Enrollment Waived From 8fd64e5affdb86d795b6dff817526774d7c80d84 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 22:24:45 +0000 Subject: [PATCH 7/8] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 46e2b2b..4b0abd6 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 20 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-55d88143c2c15ea60610b290fc4b6b26f01e08ba73d35baebd4aa3aaa7878620.yml -openapi_spec_hash: e740bd248c8ce7c9706a12c8b3258bc4 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-0cad8b2afe668835947111b8104ce1208656ff7345454963d54ca8f61287c25b.yml +openapi_spec_hash: 600b580ad628a1e04804503f22819c39 config_hash: 7295ebbd0e718c807378a7e264b1f400 From 9245b67e24446f6a7a6e1d4faaaf76e7c7bde604 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2026 22:25:06 +0000 Subject: [PATCH 8/8] release: 0.9.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 15 +++++++++++++++ pyproject.toml | 2 +- src/vitable_connect/_version.py | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 6538ca9..6d78745 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.8.0" + ".": "0.9.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index f47162f..328e4e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Changelog +## 0.9.0 (2026-07-21) + +Full Changelog: [v0.8.0...v0.9.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.8.0...v0.9.0) + +### Features + +* **api:** api update ([1275787](https://github.com/Vitable-Inc/vitable-connect-python/commit/1275787206e5ab26299cb68641ec8ed5e068ef61)) +* **api:** api update ([8fa7020](https://github.com/Vitable-Inc/vitable-connect-python/commit/8fa70208d70951f8b6f9e696f7206d9609b251d2)) +* **stlc:** configurable CI runner and private-production-repo support in workflow templates ([e6d3d00](https://github.com/Vitable-Inc/vitable-connect-python/commit/e6d3d00dd86edcf327d4d207ec518cce9c0c7dbc)) + + +### Bug Fixes + +* **internal:** resolve build failures ([d424005](https://github.com/Vitable-Inc/vitable-connect-python/commit/d424005af9acf931ea77e97fb139718237e55ede)) + ## 0.8.0 (2026-06-18) Full Changelog: [v0.7.0...v0.8.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.7.0...v0.8.0) diff --git a/pyproject.toml b/pyproject.toml index 22d5bf4..d4b93dd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "vitable_connect" -version = "0.8.0" +version = "0.9.0" description = "The official Python library for the vitable-connect API" dynamic = ["readme"] license = "Apache-2.0" diff --git a/src/vitable_connect/_version.py b/src/vitable_connect/_version.py index 9119fc9..f000ac5 100644 --- a/src/vitable_connect/_version.py +++ b/src/vitable_connect/_version.py @@ -1,4 +1,4 @@ # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. __title__ = "vitable_connect" -__version__ = "0.8.0" # x-release-please-version +__version__ = "0.9.0" # x-release-please-version