diff --git a/.release-please-manifest.json b/.release-please-manifest.json
index 1b77f50..6538ca9 100644
--- a/.release-please-manifest.json
+++ b/.release-please-manifest.json
@@ -1,3 +1,3 @@
{
- ".": "0.7.0"
+ ".": "0.8.0"
}
\ No newline at end of file
diff --git a/.stats.yml b/.stats.yml
index 626f076..c090223 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
-configured_endpoints: 22
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-480a6cc8834318ced3bf1c0c102fca59838c069814aea358e1df1e093d35bdc7.yml
-openapi_spec_hash: a7c9f5310a8b7401a55e94b2291068ed
+configured_endpoints: 20
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/vitable/vitable-connect-4e049d21bf4d1154541a77764427eafdc9a088c0a55f31f1d8880b388f18c0de.yml
+openapi_spec_hash: eada242b2cc0d091d633c264be7f8a69
config_hash: f9c90441d2ba5436a2224f6ba4f669e9
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 63e37db..f47162f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Changelog
+## 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)
+
+### Features
+
+* **api:** api update ([33d4265](https://github.com/Vitable-Inc/vitable-connect-python/commit/33d426524714ca7cc4c1ca204b990add997ed3f3))
+* **api:** api update ([1152e00](https://github.com/Vitable-Inc/vitable-connect-python/commit/1152e00b0ff6aaf7bea6bffd6d1f6009f1b398ec))
+* **api:** api update ([4ca546b](https://github.com/Vitable-Inc/vitable-connect-python/commit/4ca546b8a409cb40c849443b490133a3478761cf))
+* **api:** api update ([72d79d6](https://github.com/Vitable-Inc/vitable-connect-python/commit/72d79d6b7db386c4d71707f516e6cb758d06a847))
+
+
+### Bug Fixes
+
+* **auth:** prioritize first auth header ([188eb11](https://github.com/Vitable-Inc/vitable-connect-python/commit/188eb113fc26e5e2cddb83267ab7c330c059ce67))
+
## 0.7.0 (2026-05-15)
Full Changelog: [v0.6.0...v0.7.0](https://github.com/Vitable-Inc/vitable-connect-python/compare/v0.6.0...v0.7.0)
diff --git a/api.md b/api.md
index 1cfb36c..1ee13f6 100644
--- a/api.md
+++ b/api.md
@@ -10,18 +10,6 @@ Methods:
- client.auth.issue_access_token(\*\*params) -> AuthIssueAccessTokenResponse
-# BenefitEligibilityPolicies
-
-Types:
-
-```python
-from vitable_connect.types import BenefitEligibilityPolicy, BenefitEligibilityPolicyResponse
-```
-
-Methods:
-
-- client.benefit_eligibility_policies.retrieve(policy_id) -> BenefitEligibilityPolicyResponse
-
# Employees
Types:
@@ -53,7 +41,6 @@ Methods:
- client.employers.create(\*\*params) -> EmployerResponse
- client.employers.retrieve(employer_id) -> EmployerResponse
- client.employers.list(\*\*params) -> SyncPageNumberPage[Employer]
-- client.employers.create_benefit_eligibility_policy(employer_id, \*\*params) -> BenefitEligibilityPolicyResponse
- client.employers.list_employees(employer_id, \*\*params) -> SyncPageNumberPage[Employee]
- client.employers.submit_census_sync(employer_id, \*\*params) -> EmployerSubmitCensusSyncResponse
- client.employers.update_settings(employer_id, \*\*params) -> EmployerUpdateSettingsResponse
diff --git a/pyproject.toml b/pyproject.toml
index 0b33995..22d5bf4 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[project]
name = "vitable_connect"
-version = "0.7.0"
+version = "0.8.0"
description = "The official Python library for the vitable-connect API"
dynamic = ["readme"]
license = "Apache-2.0"
diff --git a/src/vitable_connect/_client.py b/src/vitable_connect/_client.py
index 873dd91..9bd7c10 100644
--- a/src/vitable_connect/_client.py
+++ b/src/vitable_connect/_client.py
@@ -36,16 +36,7 @@
)
if TYPE_CHECKING:
- from .resources import (
- auth,
- plans,
- groups,
- employees,
- employers,
- enrollments,
- webhook_events,
- benefit_eligibility_policies,
- )
+ from .resources import auth, plans, groups, employees, employers, enrollments, webhook_events
from .resources.auth import AuthResource, AsyncAuthResource
from .resources.plans import PlansResource, AsyncPlansResource
from .resources.employees import EmployeesResource, AsyncEmployeesResource
@@ -53,10 +44,6 @@
from .resources.enrollments import EnrollmentsResource, AsyncEnrollmentsResource
from .resources.groups.groups import GroupsResource, AsyncGroupsResource
from .resources.webhook_events import WebhookEventsResource, AsyncWebhookEventsResource
- from .resources.benefit_eligibility_policies import (
- BenefitEligibilityPoliciesResource,
- AsyncBenefitEligibilityPoliciesResource,
- )
__all__ = [
"ENVIRONMENTS",
@@ -171,13 +158,6 @@ def auth(self) -> AuthResource:
return AuthResource(self)
- @cached_property
- def benefit_eligibility_policies(self) -> BenefitEligibilityPoliciesResource:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import BenefitEligibilityPoliciesResource
-
- return BenefitEligibilityPoliciesResource(self)
-
@cached_property
def employees(self) -> EmployeesResource:
from .resources.employees import EmployeesResource
@@ -230,9 +210,11 @@ def qs(self) -> Querystring:
@override
def _auth_headers(self, security: SecurityOptions) -> dict[str, str]:
- return {
- **(self._api_key_auth if security.get("api_key_auth", False) else {}),
- }
+ headers: dict[str, str] = {}
+ if security.get("api_key_auth", False):
+ for key, value in self._api_key_auth.items():
+ headers.setdefault(key, value)
+ return headers
@property
def _api_key_auth(self) -> dict[str, str]:
@@ -430,13 +412,6 @@ def auth(self) -> AsyncAuthResource:
return AsyncAuthResource(self)
- @cached_property
- def benefit_eligibility_policies(self) -> AsyncBenefitEligibilityPoliciesResource:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import AsyncBenefitEligibilityPoliciesResource
-
- return AsyncBenefitEligibilityPoliciesResource(self)
-
@cached_property
def employees(self) -> AsyncEmployeesResource:
from .resources.employees import AsyncEmployeesResource
@@ -489,9 +464,11 @@ def qs(self) -> Querystring:
@override
def _auth_headers(self, security: SecurityOptions) -> dict[str, str]:
- return {
- **(self._api_key_auth if security.get("api_key_auth", False) else {}),
- }
+ headers: dict[str, str] = {}
+ if security.get("api_key_auth", False):
+ for key, value in self._api_key_auth.items():
+ headers.setdefault(key, value)
+ return headers
@property
def _api_key_auth(self) -> dict[str, str]:
@@ -607,15 +584,6 @@ def auth(self) -> auth.AuthResourceWithRawResponse:
return AuthResourceWithRawResponse(self._client.auth)
- @cached_property
- def benefit_eligibility_policies(
- self,
- ) -> benefit_eligibility_policies.BenefitEligibilityPoliciesResourceWithRawResponse:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import BenefitEligibilityPoliciesResourceWithRawResponse
-
- return BenefitEligibilityPoliciesResourceWithRawResponse(self._client.benefit_eligibility_policies)
-
@cached_property
def employees(self) -> employees.EmployeesResourceWithRawResponse:
from .resources.employees import EmployeesResourceWithRawResponse
@@ -667,15 +635,6 @@ def auth(self) -> auth.AsyncAuthResourceWithRawResponse:
return AsyncAuthResourceWithRawResponse(self._client.auth)
- @cached_property
- def benefit_eligibility_policies(
- self,
- ) -> benefit_eligibility_policies.AsyncBenefitEligibilityPoliciesResourceWithRawResponse:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import AsyncBenefitEligibilityPoliciesResourceWithRawResponse
-
- return AsyncBenefitEligibilityPoliciesResourceWithRawResponse(self._client.benefit_eligibility_policies)
-
@cached_property
def employees(self) -> employees.AsyncEmployeesResourceWithRawResponse:
from .resources.employees import AsyncEmployeesResourceWithRawResponse
@@ -727,15 +686,6 @@ def auth(self) -> auth.AuthResourceWithStreamingResponse:
return AuthResourceWithStreamingResponse(self._client.auth)
- @cached_property
- def benefit_eligibility_policies(
- self,
- ) -> benefit_eligibility_policies.BenefitEligibilityPoliciesResourceWithStreamingResponse:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import BenefitEligibilityPoliciesResourceWithStreamingResponse
-
- return BenefitEligibilityPoliciesResourceWithStreamingResponse(self._client.benefit_eligibility_policies)
-
@cached_property
def employees(self) -> employees.EmployeesResourceWithStreamingResponse:
from .resources.employees import EmployeesResourceWithStreamingResponse
@@ -787,15 +737,6 @@ def auth(self) -> auth.AsyncAuthResourceWithStreamingResponse:
return AsyncAuthResourceWithStreamingResponse(self._client.auth)
- @cached_property
- def benefit_eligibility_policies(
- self,
- ) -> benefit_eligibility_policies.AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse:
- """Define rules that determine which employees qualify for benefits"""
- from .resources.benefit_eligibility_policies import AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse
-
- return AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse(self._client.benefit_eligibility_policies)
-
@cached_property
def employees(self) -> employees.AsyncEmployeesResourceWithStreamingResponse:
from .resources.employees import AsyncEmployeesResourceWithStreamingResponse
diff --git a/src/vitable_connect/_version.py b/src/vitable_connect/_version.py
index f967ec7..9119fc9 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.7.0" # x-release-please-version
+__version__ = "0.8.0" # x-release-please-version
diff --git a/src/vitable_connect/resources/__init__.py b/src/vitable_connect/resources/__init__.py
index 949f8c6..524019f 100644
--- a/src/vitable_connect/resources/__init__.py
+++ b/src/vitable_connect/resources/__init__.py
@@ -56,14 +56,6 @@
WebhookEventsResourceWithStreamingResponse,
AsyncWebhookEventsResourceWithStreamingResponse,
)
-from .benefit_eligibility_policies import (
- BenefitEligibilityPoliciesResource,
- AsyncBenefitEligibilityPoliciesResource,
- BenefitEligibilityPoliciesResourceWithRawResponse,
- AsyncBenefitEligibilityPoliciesResourceWithRawResponse,
- BenefitEligibilityPoliciesResourceWithStreamingResponse,
- AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse,
-)
__all__ = [
"AuthResource",
@@ -72,12 +64,6 @@
"AsyncAuthResourceWithRawResponse",
"AuthResourceWithStreamingResponse",
"AsyncAuthResourceWithStreamingResponse",
- "BenefitEligibilityPoliciesResource",
- "AsyncBenefitEligibilityPoliciesResource",
- "BenefitEligibilityPoliciesResourceWithRawResponse",
- "AsyncBenefitEligibilityPoliciesResourceWithRawResponse",
- "BenefitEligibilityPoliciesResourceWithStreamingResponse",
- "AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse",
"EmployeesResource",
"AsyncEmployeesResource",
"EmployeesResourceWithRawResponse",
diff --git a/src/vitable_connect/resources/benefit_eligibility_policies.py b/src/vitable_connect/resources/benefit_eligibility_policies.py
deleted file mode 100644
index 554548e..0000000
--- a/src/vitable_connect/resources/benefit_eligibility_policies.py
+++ /dev/null
@@ -1,172 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import httpx
-
-from .._types import Body, Query, Headers, NotGiven, not_given
-from .._utils import path_template
-from .._compat import cached_property
-from .._resource import SyncAPIResource, AsyncAPIResource
-from .._response import (
- to_raw_response_wrapper,
- to_streamed_response_wrapper,
- async_to_raw_response_wrapper,
- async_to_streamed_response_wrapper,
-)
-from .._base_client import make_request_options
-from ..types.benefit_eligibility_policy_response import BenefitEligibilityPolicyResponse
-
-__all__ = ["BenefitEligibilityPoliciesResource", "AsyncBenefitEligibilityPoliciesResource"]
-
-
-class BenefitEligibilityPoliciesResource(SyncAPIResource):
- """Define rules that determine which employees qualify for benefits"""
-
- @cached_property
- def with_raw_response(self) -> BenefitEligibilityPoliciesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/Vitable-Inc/vitable-connect-python#accessing-raw-response-data-eg-headers
- """
- return BenefitEligibilityPoliciesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> BenefitEligibilityPoliciesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/Vitable-Inc/vitable-connect-python#with_streaming_response
- """
- return BenefitEligibilityPoliciesResourceWithStreamingResponse(self)
-
- def retrieve(
- self,
- policy_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> BenefitEligibilityPolicyResponse:
- """
- Retrieves a benefit eligibility policy by ID.
-
- Args:
- policy_id: Unique benefit eligibility policy identifier (epol\\__\\**)
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not policy_id:
- raise ValueError(f"Expected a non-empty value for `policy_id` but received {policy_id!r}")
- return self._get(
- path_template("/v1/benefit-eligibility-policies/{policy_id}", policy_id=policy_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=BenefitEligibilityPolicyResponse,
- )
-
-
-class AsyncBenefitEligibilityPoliciesResource(AsyncAPIResource):
- """Define rules that determine which employees qualify for benefits"""
-
- @cached_property
- def with_raw_response(self) -> AsyncBenefitEligibilityPoliciesResourceWithRawResponse:
- """
- This property can be used as a prefix for any HTTP method call to return
- the raw response object instead of the parsed content.
-
- For more information, see https://www.github.com/Vitable-Inc/vitable-connect-python#accessing-raw-response-data-eg-headers
- """
- return AsyncBenefitEligibilityPoliciesResourceWithRawResponse(self)
-
- @cached_property
- def with_streaming_response(self) -> AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse:
- """
- An alternative to `.with_raw_response` that doesn't eagerly read the response body.
-
- For more information, see https://www.github.com/Vitable-Inc/vitable-connect-python#with_streaming_response
- """
- return AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse(self)
-
- async def retrieve(
- self,
- policy_id: str,
- *,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> BenefitEligibilityPolicyResponse:
- """
- Retrieves a benefit eligibility policy by ID.
-
- Args:
- policy_id: Unique benefit eligibility policy identifier (epol\\__\\**)
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not policy_id:
- raise ValueError(f"Expected a non-empty value for `policy_id` but received {policy_id!r}")
- return await self._get(
- path_template("/v1/benefit-eligibility-policies/{policy_id}", policy_id=policy_id),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=BenefitEligibilityPolicyResponse,
- )
-
-
-class BenefitEligibilityPoliciesResourceWithRawResponse:
- def __init__(self, benefit_eligibility_policies: BenefitEligibilityPoliciesResource) -> None:
- self._benefit_eligibility_policies = benefit_eligibility_policies
-
- self.retrieve = to_raw_response_wrapper(
- benefit_eligibility_policies.retrieve,
- )
-
-
-class AsyncBenefitEligibilityPoliciesResourceWithRawResponse:
- def __init__(self, benefit_eligibility_policies: AsyncBenefitEligibilityPoliciesResource) -> None:
- self._benefit_eligibility_policies = benefit_eligibility_policies
-
- self.retrieve = async_to_raw_response_wrapper(
- benefit_eligibility_policies.retrieve,
- )
-
-
-class BenefitEligibilityPoliciesResourceWithStreamingResponse:
- def __init__(self, benefit_eligibility_policies: BenefitEligibilityPoliciesResource) -> None:
- self._benefit_eligibility_policies = benefit_eligibility_policies
-
- self.retrieve = to_streamed_response_wrapper(
- benefit_eligibility_policies.retrieve,
- )
-
-
-class AsyncBenefitEligibilityPoliciesResourceWithStreamingResponse:
- def __init__(self, benefit_eligibility_policies: AsyncBenefitEligibilityPoliciesResource) -> None:
- self._benefit_eligibility_policies = benefit_eligibility_policies
-
- self.retrieve = async_to_streamed_response_wrapper(
- benefit_eligibility_policies.retrieve,
- )
diff --git a/src/vitable_connect/resources/employers.py b/src/vitable_connect/resources/employers.py
index 751200a..122e3c2 100644
--- a/src/vitable_connect/resources/employers.py
+++ b/src/vitable_connect/resources/employers.py
@@ -13,7 +13,6 @@
employer_list_employees_params,
employer_update_settings_params,
employer_submit_census_sync_params,
- employer_create_benefit_eligibility_policy_params,
)
from .._types import Body, Omit, Query, Headers, NotGiven, omit, not_given
from .._utils import path_template, maybe_transform, async_maybe_transform
@@ -31,7 +30,6 @@
from ..types.employer import Employer
from ..types.employer_response import EmployerResponse
from ..types.employer_update_settings_response import EmployerUpdateSettingsResponse
-from ..types.benefit_eligibility_policy_response import BenefitEligibilityPolicyResponse
from ..types.employer_submit_census_sync_response import EmployerSubmitCensusSyncResponse
__all__ = ["EmployersResource", "AsyncEmployersResource"]
@@ -209,55 +207,6 @@ def list(
model=Employer,
)
- def create_benefit_eligibility_policy(
- self,
- employer_id: str,
- *,
- classification: str,
- waiting_period: str,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> BenefitEligibilityPolicyResponse:
- """
- Creates a benefit eligibility policy for the specified employer.
-
- Args:
- employer_id: Unique employer identifier (empr\\__\\**)
-
- classification: Which employee classifications are eligible. One of: full_time, part_time, all
-
- waiting_period: Waiting period before eligibility. One of: first_of_following_month, 30_days,
- 60_days, none
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not employer_id:
- raise ValueError(f"Expected a non-empty value for `employer_id` but received {employer_id!r}")
- return self._post(
- path_template("/v1/employers/{employer_id}/benefit-eligibility-policies", employer_id=employer_id),
- body=maybe_transform(
- {
- "classification": classification,
- "waiting_period": waiting_period,
- },
- employer_create_benefit_eligibility_policy_params.EmployerCreateBenefitEligibilityPolicyParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=BenefitEligibilityPolicyResponse,
- )
-
def list_employees(
self,
employer_id: str,
@@ -575,55 +524,6 @@ def list(
model=Employer,
)
- async def create_benefit_eligibility_policy(
- self,
- employer_id: str,
- *,
- classification: str,
- waiting_period: str,
- # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
- # The extra values given here take precedence over values defined on the client or passed to this method.
- extra_headers: Headers | None = None,
- extra_query: Query | None = None,
- extra_body: Body | None = None,
- timeout: float | httpx.Timeout | None | NotGiven = not_given,
- ) -> BenefitEligibilityPolicyResponse:
- """
- Creates a benefit eligibility policy for the specified employer.
-
- Args:
- employer_id: Unique employer identifier (empr\\__\\**)
-
- classification: Which employee classifications are eligible. One of: full_time, part_time, all
-
- waiting_period: Waiting period before eligibility. One of: first_of_following_month, 30_days,
- 60_days, none
-
- extra_headers: Send extra headers
-
- extra_query: Add additional query parameters to the request
-
- extra_body: Add additional JSON properties to the request
-
- timeout: Override the client-level default timeout for this request, in seconds
- """
- if not employer_id:
- raise ValueError(f"Expected a non-empty value for `employer_id` but received {employer_id!r}")
- return await self._post(
- path_template("/v1/employers/{employer_id}/benefit-eligibility-policies", employer_id=employer_id),
- body=await async_maybe_transform(
- {
- "classification": classification,
- "waiting_period": waiting_period,
- },
- employer_create_benefit_eligibility_policy_params.EmployerCreateBenefitEligibilityPolicyParams,
- ),
- options=make_request_options(
- extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
- ),
- cast_to=BenefitEligibilityPolicyResponse,
- )
-
def list_employees(
self,
employer_id: str,
@@ -782,9 +682,6 @@ def __init__(self, employers: EmployersResource) -> None:
self.list = to_raw_response_wrapper(
employers.list,
)
- self.create_benefit_eligibility_policy = to_raw_response_wrapper(
- employers.create_benefit_eligibility_policy,
- )
self.list_employees = to_raw_response_wrapper(
employers.list_employees,
)
@@ -809,9 +706,6 @@ def __init__(self, employers: AsyncEmployersResource) -> None:
self.list = async_to_raw_response_wrapper(
employers.list,
)
- self.create_benefit_eligibility_policy = async_to_raw_response_wrapper(
- employers.create_benefit_eligibility_policy,
- )
self.list_employees = async_to_raw_response_wrapper(
employers.list_employees,
)
@@ -836,9 +730,6 @@ def __init__(self, employers: EmployersResource) -> None:
self.list = to_streamed_response_wrapper(
employers.list,
)
- self.create_benefit_eligibility_policy = to_streamed_response_wrapper(
- employers.create_benefit_eligibility_policy,
- )
self.list_employees = to_streamed_response_wrapper(
employers.list_employees,
)
@@ -863,9 +754,6 @@ def __init__(self, employers: AsyncEmployersResource) -> None:
self.list = async_to_streamed_response_wrapper(
employers.list,
)
- self.create_benefit_eligibility_policy = async_to_streamed_response_wrapper(
- employers.create_benefit_eligibility_policy,
- )
self.list_employees = async_to_streamed_response_wrapper(
employers.list_employees,
)
diff --git a/src/vitable_connect/resources/webhook_events.py b/src/vitable_connect/resources/webhook_events.py
index 9b23094..e7428e3 100644
--- a/src/vitable_connect/resources/webhook_events.py
+++ b/src/vitable_connect/resources/webhook_events.py
@@ -98,7 +98,6 @@ def list(
"employee.eligibility_granted",
"employee.eligibility_terminated",
"employee.deactivated",
- "employer.eligibility_policy_created",
"employee.deduction_created",
]
| Omit = omit,
@@ -128,7 +127,6 @@ def list(
- `employee.eligibility_granted` - Employee Eligibility Granted
- `employee.eligibility_terminated` - Employee Eligibility Terminated
- `employee.deactivated` - Employee Deactivated
- - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
- `employee.deduction_created` - Employee Deduction Created
limit: Items per page (default: 20, max: 100)
@@ -281,7 +279,6 @@ def list(
"employee.eligibility_granted",
"employee.eligibility_terminated",
"employee.deactivated",
- "employer.eligibility_policy_created",
"employee.deduction_created",
]
| Omit = omit,
@@ -311,7 +308,6 @@ def list(
- `employee.eligibility_granted` - Employee Eligibility Granted
- `employee.eligibility_terminated` - Employee Eligibility Terminated
- `employee.deactivated` - Employee Deactivated
- - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
- `employee.deduction_created` - Employee Deduction Created
limit: Items per page (default: 20, max: 100)
diff --git a/src/vitable_connect/types/__init__.py b/src/vitable_connect/types/__init__.py
index ad59ddf..d829fb6 100644
--- a/src/vitable_connect/types/__init__.py
+++ b/src/vitable_connect/types/__init__.py
@@ -21,7 +21,6 @@
from .employer_list_params import EmployerListParams as EmployerListParams
from .employer_create_params import EmployerCreateParams as EmployerCreateParams
from .webhook_event_list_params import WebhookEventListParams as WebhookEventListParams
-from .benefit_eligibility_policy import BenefitEligibilityPolicy as BenefitEligibilityPolicy
from .employee_retrieve_response import EmployeeRetrieveResponse as EmployeeRetrieveResponse
from .enrollment_retrieve_response import EnrollmentRetrieveResponse as EnrollmentRetrieveResponse
from .auth_issue_access_token_params import AuthIssueAccessTokenParams as AuthIssueAccessTokenParams
@@ -32,11 +31,7 @@
from .employee_list_enrollments_params import EmployeeListEnrollmentsParams as EmployeeListEnrollmentsParams
from .employer_update_settings_response import EmployerUpdateSettingsResponse as EmployerUpdateSettingsResponse
from .employer_submit_census_sync_params import EmployerSubmitCensusSyncParams as EmployerSubmitCensusSyncParams
-from .benefit_eligibility_policy_response import BenefitEligibilityPolicyResponse as BenefitEligibilityPolicyResponse
from .employer_submit_census_sync_response import EmployerSubmitCensusSyncResponse as EmployerSubmitCensusSyncResponse
from .webhook_event_list_deliveries_response import (
WebhookEventListDeliveriesResponse as WebhookEventListDeliveriesResponse,
)
-from .employer_create_benefit_eligibility_policy_params import (
- EmployerCreateBenefitEligibilityPolicyParams as EmployerCreateBenefitEligibilityPolicyParams,
-)
diff --git a/src/vitable_connect/types/benefit_eligibility_policy.py b/src/vitable_connect/types/benefit_eligibility_policy.py
deleted file mode 100644
index 8ceafc2..0000000
--- a/src/vitable_connect/types/benefit_eligibility_policy.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from datetime import datetime
-
-from .._models import BaseModel
-
-__all__ = ["BenefitEligibilityPolicy"]
-
-
-class BenefitEligibilityPolicy(BaseModel):
- id: str
-
- active: bool
-
- classification: str
-
- created_at: datetime
-
- employer_id: str
-
- updated_at: datetime
-
- waiting_period: str
diff --git a/src/vitable_connect/types/benefit_eligibility_policy_response.py b/src/vitable_connect/types/benefit_eligibility_policy_response.py
deleted file mode 100644
index bbed3f9..0000000
--- a/src/vitable_connect/types/benefit_eligibility_policy_response.py
+++ /dev/null
@@ -1,12 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from .._models import BaseModel
-from .benefit_eligibility_policy import BenefitEligibilityPolicy
-
-__all__ = ["BenefitEligibilityPolicyResponse"]
-
-
-class BenefitEligibilityPolicyResponse(BaseModel):
- """Response containing a single benefit eligibility policy resource."""
-
- data: BenefitEligibilityPolicy
diff --git a/src/vitable_connect/types/employee.py b/src/vitable_connect/types/employee.py
index 9ac069e..5a654e7 100644
--- a/src/vitable_connect/types/employee.py
+++ b/src/vitable_connect/types/employee.py
@@ -89,6 +89,9 @@ class Employee(BaseModel):
member_id: str
"""Unique member identifier with 'mbr\\__' prefix"""
+ phone: Optional[str] = None
+ """Phone number (10-digit US domestic string)"""
+
status: str
"""Employee status (active or terminated)"""
@@ -114,9 +117,6 @@ class Employee(BaseModel):
hire_date: Optional[date] = None
"""Employee's hire date with the employer"""
- phone: Optional[str] = None
- """Phone number (10-digit US domestic string)"""
-
reference_id: Optional[str] = None
"""Partner-assigned reference ID for the employee"""
diff --git a/src/vitable_connect/types/employer.py b/src/vitable_connect/types/employer.py
index ca3439b..221bbc4 100644
--- a/src/vitable_connect/types/employer.py
+++ b/src/vitable_connect/types/employer.py
@@ -45,9 +45,6 @@ class Employer(BaseModel):
ein: Optional[str] = None
"""Employer Identification Number (masked in responses)"""
- eligibility_policy_id: Optional[str] = None
- """ID of the benefit eligibility policy (epol\\__\\**), if assigned"""
-
legal_name: str
"""Legal business name for compliance and tax purposes"""
diff --git a/src/vitable_connect/types/employer_create_benefit_eligibility_policy_params.py b/src/vitable_connect/types/employer_create_benefit_eligibility_policy_params.py
deleted file mode 100644
index 055d104..0000000
--- a/src/vitable_connect/types/employer_create_benefit_eligibility_policy_params.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-from typing_extensions import Required, TypedDict
-
-__all__ = ["EmployerCreateBenefitEligibilityPolicyParams"]
-
-
-class EmployerCreateBenefitEligibilityPolicyParams(TypedDict, total=False):
- classification: Required[str]
- """Which employee classifications are eligible. One of: full_time, part_time, all"""
-
- waiting_period: Required[str]
- """Waiting period before eligibility.
-
- One of: first_of_following_month, 30_days, 60_days, none
- """
diff --git a/src/vitable_connect/types/group.py b/src/vitable_connect/types/group.py
index f7bad4e..161e728 100644
--- a/src/vitable_connect/types/group.py
+++ b/src/vitable_connect/types/group.py
@@ -10,13 +10,19 @@
class Group(BaseModel):
id: str
+ """Prefixed group identifier (`grp_`)."""
created_at: Optional[datetime] = None
+ """Group creation timestamp (ISO 8601, UTC)."""
external_reference_id: str
+ """Stable identifier for this group in the integrator's own system."""
name: str
+ """Human-readable group name."""
organization_id: str
+ """Prefixed organization identifier (`org_`)."""
updated_at: Optional[datetime] = None
+ """Last-update timestamp (ISO 8601, UTC)."""
diff --git a/src/vitable_connect/types/groups/members/sync_retrieve_response.py b/src/vitable_connect/types/groups/members/sync_retrieve_response.py
index ce7d2d4..5f2219e 100644
--- a/src/vitable_connect/types/groups/members/sync_retrieve_response.py
+++ b/src/vitable_connect/types/groups/members/sync_retrieve_response.py
@@ -1,11 +1,32 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-from typing import Optional
+from typing import List, Optional
from datetime import datetime
+from typing_extensions import Literal
from ...._models import BaseModel
-__all__ = ["SyncRetrieveResponse", "Data"]
+__all__ = ["SyncRetrieveResponse", "Data", "DataResults", "DataResultsFailure"]
+
+
+class DataResultsFailure(BaseModel):
+ operation: Literal["add", "remove"]
+ """
+ - `add` - add
+ - `remove` - remove
+ """
+
+ reason: str
+
+ reference_id: str
+
+
+class DataResults(BaseModel):
+ added_group_member_ids: List[str]
+
+ failures: List[DataResultsFailure]
+
+ removed_group_member_ids: List[str]
class Data(BaseModel):
@@ -17,7 +38,7 @@ class Data(BaseModel):
request_id: str
- results: object
+ results: Optional[DataResults] = None
class SyncRetrieveResponse(BaseModel):
diff --git a/src/vitable_connect/types/webhook_event_list_params.py b/src/vitable_connect/types/webhook_event_list_params.py
index 35dd253..618c372 100644
--- a/src/vitable_connect/types/webhook_event_list_params.py
+++ b/src/vitable_connect/types/webhook_event_list_params.py
@@ -26,7 +26,6 @@ class WebhookEventListParams(TypedDict, total=False):
"employee.eligibility_granted",
"employee.eligibility_terminated",
"employee.deactivated",
- "employer.eligibility_policy_created",
"employee.deduction_created",
]
"""
@@ -39,7 +38,6 @@ class WebhookEventListParams(TypedDict, total=False):
- `employee.eligibility_granted` - Employee Eligibility Granted
- `employee.eligibility_terminated` - Employee Eligibility Terminated
- `employee.deactivated` - Employee Deactivated
- - `employer.eligibility_policy_created` - Employer Eligibility Policy Created
- `employee.deduction_created` - Employee Deduction Created
"""
diff --git a/tests/api_resources/groups/members/test_sync.py b/tests/api_resources/groups/members/test_sync.py
index f434adc..64f6016 100644
--- a/tests/api_resources/groups/members/test_sync.py
+++ b/tests/api_resources/groups/members/test_sync.py
@@ -78,17 +78,17 @@ def test_method_submit(self, client: VitableConnect) -> None:
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
@@ -102,17 +102,17 @@ def test_raw_response_submit(self, client: VitableConnect) -> None:
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
@@ -130,17 +130,17 @@ def test_streaming_response_submit(self, client: VitableConnect) -> None:
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
) as response:
@@ -161,17 +161,17 @@ def test_path_params_submit(self, client: VitableConnect) -> None:
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
@@ -242,17 +242,17 @@ async def test_method_submit(self, async_client: AsyncVitableConnect) -> None:
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
@@ -266,17 +266,17 @@ async def test_raw_response_submit(self, async_client: AsyncVitableConnect) -> N
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
@@ -294,17 +294,17 @@ async def test_streaming_response_submit(self, async_client: AsyncVitableConnect
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
) as response:
@@ -325,17 +325,17 @@ async def test_path_params_submit(self, async_client: AsyncVitableConnect) -> No
members=[
{
"address": {
- "address_line_1": "x",
- "city": "x",
- "state": "xx",
- "zipcode": "x",
+ "address_line_1": "123 Main Street",
+ "city": "San Francisco",
+ "state": "CA",
+ "zipcode": "94102",
},
- "date_of_birth": parse_date("2019-12-27"),
- "first_name": "first_name",
- "last_name": "last_name",
- "phone": "phone",
- "plan_id": "x",
- "reference_id": "x",
+ "date_of_birth": parse_date("1990-05-15"),
+ "first_name": "Jane",
+ "last_name": "Doe",
+ "phone": "4155550100",
+ "plan_id": "pln_abc123def456",
+ "reference_id": "EMP-001",
}
],
)
diff --git a/tests/api_resources/test_benefit_eligibility_policies.py b/tests/api_resources/test_benefit_eligibility_policies.py
deleted file mode 100644
index 9203b81..0000000
--- a/tests/api_resources/test_benefit_eligibility_policies.py
+++ /dev/null
@@ -1,108 +0,0 @@
-# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
-
-from __future__ import annotations
-
-import os
-from typing import Any, cast
-
-import pytest
-
-from tests.utils import assert_matches_type
-from vitable_connect import VitableConnect, AsyncVitableConnect
-from vitable_connect.types import BenefitEligibilityPolicyResponse
-
-base_url = os.environ.get("TEST_API_BASE_URL", "http://127.0.0.1:4010")
-
-
-class TestBenefitEligibilityPolicies:
- parametrize = pytest.mark.parametrize("client", [False, True], indirect=True, ids=["loose", "strict"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_method_retrieve(self, client: VitableConnect) -> None:
- benefit_eligibility_policy = client.benefit_eligibility_policies.retrieve(
- "epol_abc123def456",
- )
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_raw_response_retrieve(self, client: VitableConnect) -> None:
- response = client.benefit_eligibility_policies.with_raw_response.retrieve(
- "epol_abc123def456",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- benefit_eligibility_policy = response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_streaming_response_retrieve(self, client: VitableConnect) -> None:
- with client.benefit_eligibility_policies.with_streaming_response.retrieve(
- "epol_abc123def456",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- benefit_eligibility_policy = response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_path_params_retrieve(self, client: VitableConnect) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `policy_id` but received ''"):
- client.benefit_eligibility_policies.with_raw_response.retrieve(
- "",
- )
-
-
-class TestAsyncBenefitEligibilityPolicies:
- parametrize = pytest.mark.parametrize(
- "async_client", [False, True, {"http_client": "aiohttp"}], indirect=True, ids=["loose", "strict", "aiohttp"]
- )
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_method_retrieve(self, async_client: AsyncVitableConnect) -> None:
- benefit_eligibility_policy = await async_client.benefit_eligibility_policies.retrieve(
- "epol_abc123def456",
- )
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_raw_response_retrieve(self, async_client: AsyncVitableConnect) -> None:
- response = await async_client.benefit_eligibility_policies.with_raw_response.retrieve(
- "epol_abc123def456",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- benefit_eligibility_policy = await response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_streaming_response_retrieve(self, async_client: AsyncVitableConnect) -> None:
- async with async_client.benefit_eligibility_policies.with_streaming_response.retrieve(
- "epol_abc123def456",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- benefit_eligibility_policy = await response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, benefit_eligibility_policy, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_path_params_retrieve(self, async_client: AsyncVitableConnect) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `policy_id` but received ''"):
- await async_client.benefit_eligibility_policies.with_raw_response.retrieve(
- "",
- )
diff --git a/tests/api_resources/test_employers.py b/tests/api_resources/test_employers.py
index e4cb33e..80c6be6 100644
--- a/tests/api_resources/test_employers.py
+++ b/tests/api_resources/test_employers.py
@@ -14,7 +14,6 @@
Employer,
EmployerResponse,
EmployerUpdateSettingsResponse,
- BenefitEligibilityPolicyResponse,
EmployerSubmitCensusSyncResponse,
)
from vitable_connect._utils import parse_date
@@ -186,56 +185,6 @@ def test_streaming_response_list(self, client: VitableConnect) -> None:
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_method_create_benefit_eligibility_policy(self, client: VitableConnect) -> None:
- employer = client.employers.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- )
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_raw_response_create_benefit_eligibility_policy(self, client: VitableConnect) -> None:
- response = client.employers.with_raw_response.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- employer = response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_streaming_response_create_benefit_eligibility_policy(self, client: VitableConnect) -> None:
- with client.employers.with_streaming_response.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- employer = response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- def test_path_params_create_benefit_eligibility_policy(self, client: VitableConnect) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `employer_id` but received ''"):
- client.employers.with_raw_response.create_benefit_eligibility_policy(
- employer_id="",
- classification="classification",
- waiting_period="waiting_period",
- )
-
@pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
def test_method_list_employees(self, client: VitableConnect) -> None:
@@ -606,58 +555,6 @@ async def test_streaming_response_list(self, async_client: AsyncVitableConnect)
assert cast(Any, response.is_closed) is True
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_method_create_benefit_eligibility_policy(self, async_client: AsyncVitableConnect) -> None:
- employer = await async_client.employers.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- )
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_raw_response_create_benefit_eligibility_policy(self, async_client: AsyncVitableConnect) -> None:
- response = await async_client.employers.with_raw_response.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- )
-
- assert response.is_closed is True
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
- employer = await response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_streaming_response_create_benefit_eligibility_policy(
- self, async_client: AsyncVitableConnect
- ) -> None:
- async with async_client.employers.with_streaming_response.create_benefit_eligibility_policy(
- employer_id="empr_abc123def456",
- classification="classification",
- waiting_period="waiting_period",
- ) as response:
- assert not response.is_closed
- assert response.http_request.headers.get("X-Stainless-Lang") == "python"
-
- employer = await response.parse()
- assert_matches_type(BenefitEligibilityPolicyResponse, employer, path=["response"])
-
- assert cast(Any, response.is_closed) is True
-
- @pytest.mark.skip(reason="Mock server tests are disabled")
- @parametrize
- async def test_path_params_create_benefit_eligibility_policy(self, async_client: AsyncVitableConnect) -> None:
- with pytest.raises(ValueError, match=r"Expected a non-empty value for `employer_id` but received ''"):
- await async_client.employers.with_raw_response.create_benefit_eligibility_policy(
- employer_id="",
- classification="classification",
- waiting_period="waiting_period",
- )
-
@pytest.mark.skip(reason="Mock server tests are disabled")
@parametrize
async def test_method_list_employees(self, async_client: AsyncVitableConnect) -> None:
diff --git a/tests/api_resources/test_groups.py b/tests/api_resources/test_groups.py
index 18a4900..c2d2a88 100644
--- a/tests/api_resources/test_groups.py
+++ b/tests/api_resources/test_groups.py
@@ -22,8 +22,8 @@ class TestGroups:
@parametrize
def test_method_create(self, client: VitableConnect) -> None:
group = client.groups.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
)
assert_matches_type(GroupResponse, group, path=["response"])
@@ -31,8 +31,8 @@ def test_method_create(self, client: VitableConnect) -> None:
@parametrize
def test_raw_response_create(self, client: VitableConnect) -> None:
response = client.groups.with_raw_response.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
)
assert response.is_closed is True
@@ -44,8 +44,8 @@ def test_raw_response_create(self, client: VitableConnect) -> None:
@parametrize
def test_streaming_response_create(self, client: VitableConnect) -> None:
with client.groups.with_streaming_response.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -110,8 +110,8 @@ def test_method_update(self, client: VitableConnect) -> None:
def test_method_update_with_all_params(self, client: VitableConnect) -> None:
group = client.groups.update(
group_id="grp_abc123def456",
- external_reference_id="external_reference_id",
- name="x",
+ external_reference_id="mol_seg_001_v2",
+ name="Tier 1 (renamed)",
)
assert_matches_type(GroupResponse, group, path=["response"])
@@ -196,8 +196,8 @@ class TestAsyncGroups:
@parametrize
async def test_method_create(self, async_client: AsyncVitableConnect) -> None:
group = await async_client.groups.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
)
assert_matches_type(GroupResponse, group, path=["response"])
@@ -205,8 +205,8 @@ async def test_method_create(self, async_client: AsyncVitableConnect) -> None:
@parametrize
async def test_raw_response_create(self, async_client: AsyncVitableConnect) -> None:
response = await async_client.groups.with_raw_response.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
)
assert response.is_closed is True
@@ -218,8 +218,8 @@ async def test_raw_response_create(self, async_client: AsyncVitableConnect) -> N
@parametrize
async def test_streaming_response_create(self, async_client: AsyncVitableConnect) -> None:
async with async_client.groups.with_streaming_response.create(
- external_reference_id="x",
- name="x",
+ external_reference_id="mol_seg_001",
+ name="Tier 1",
) as response:
assert not response.is_closed
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
@@ -284,8 +284,8 @@ async def test_method_update(self, async_client: AsyncVitableConnect) -> None:
async def test_method_update_with_all_params(self, async_client: AsyncVitableConnect) -> None:
group = await async_client.groups.update(
group_id="grp_abc123def456",
- external_reference_id="external_reference_id",
- name="x",
+ external_reference_id="mol_seg_001_v2",
+ name="Tier 1 (renamed)",
)
assert_matches_type(GroupResponse, group, path=["response"])