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"])