diff --git a/.stats.yml b/.stats.yml
index 45603d11..05cd9fbf 100644
--- a/.stats.yml
+++ b/.stats.yml
@@ -1,4 +1,4 @@
configured_endpoints: 46
-openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-972e563922dedeeb94dca9a3ca8bac536488fcee56b55fcf09e6af044d3740e3.yml
+openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-14d375aab89e6b212fe459805a42d6ea7d7da8eae2037ae710a187d06911be1d.yml
openapi_spec_hash: 08b86ecbec3323717d48e4aaee48ed54
-config_hash: b839955f81dcf0a060366274f202b185
+config_hash: 2bca9e6b32f742acb077cf8822ec9e23
diff --git a/api.md b/api.md
index d4659951..bb4b5ee1 100644
--- a/api.md
+++ b/api.md
@@ -183,8 +183,8 @@ Types:
from finch.types.hris.benefits import (
EnrolledIndividual,
IndividualBenefit,
+ UnenrolledIndividual,
IndividualEnrolledIDsResponse,
- IndividualUnenrollManyResponse,
)
```
@@ -193,7 +193,7 @@ Methods:
- client.hris.benefits.individuals.enroll_many(benefit_id, \*\*params) -> SyncSinglePage[EnrolledIndividual]
- client.hris.benefits.individuals.enrolled_ids(benefit_id) -> IndividualEnrolledIDsResponse
- client.hris.benefits.individuals.retrieve_many_benefits(benefit_id, \*\*params) -> SyncSinglePage[IndividualBenefit]
-- client.hris.benefits.individuals.unenroll_many(benefit_id, \*\*params) -> SyncSinglePage[object]
+- client.hris.benefits.individuals.unenroll_many(benefit_id, \*\*params) -> SyncSinglePage[UnenrolledIndividual]
# Providers
diff --git a/src/finch/resources/hris/benefits/individuals.py b/src/finch/resources/hris/benefits/individuals.py
index c62bded1..c6e472cf 100644
--- a/src/finch/resources/hris/benefits/individuals.py
+++ b/src/finch/resources/hris/benefits/individuals.py
@@ -21,6 +21,7 @@
)
from ....types.hris.benefits.individual_benefit import IndividualBenefit
from ....types.hris.benefits.enrolled_individual import EnrolledIndividual
+from ....types.hris.benefits.unenrolled_individual import UnenrolledIndividual
from ....types.hris.benefits.individual_enrolled_ids_response import IndividualEnrolledIDsResponse
__all__ = ["Individuals", "AsyncIndividuals"]
@@ -178,7 +179,7 @@ def unenroll_many(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> SyncSinglePage[object]:
+ ) -> SyncSinglePage[UnenrolledIndividual]:
"""
Unenroll individuals from a deduction or contribution
@@ -197,14 +198,14 @@ def unenroll_many(
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
return self._get_api_list(
f"/employer/benefits/{benefit_id}/individuals",
- page=SyncSinglePage[object],
+ page=SyncSinglePage[UnenrolledIndividual],
body=maybe_transform(
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- model=object,
+ model=UnenrolledIndividual,
method="delete",
)
@@ -361,7 +362,7 @@ def unenroll_many(
extra_query: Query | None = None,
extra_body: Body | None = None,
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
- ) -> AsyncPaginator[object, AsyncSinglePage[object]]:
+ ) -> AsyncPaginator[UnenrolledIndividual, AsyncSinglePage[UnenrolledIndividual]]:
"""
Unenroll individuals from a deduction or contribution
@@ -380,14 +381,14 @@ def unenroll_many(
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
return self._get_api_list(
f"/employer/benefits/{benefit_id}/individuals",
- page=AsyncSinglePage[object],
+ page=AsyncSinglePage[UnenrolledIndividual],
body=maybe_transform(
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
),
options=make_request_options(
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
),
- model=object,
+ model=UnenrolledIndividual,
method="delete",
)
diff --git a/src/finch/types/hris/benefits/__init__.py b/src/finch/types/hris/benefits/__init__.py
index b914d0b3..4cca9ced 100644
--- a/src/finch/types/hris/benefits/__init__.py
+++ b/src/finch/types/hris/benefits/__init__.py
@@ -4,6 +4,7 @@
from .individual_benefit import IndividualBenefit as IndividualBenefit
from .enrolled_individual import EnrolledIndividual as EnrolledIndividual
+from .unenrolled_individual import UnenrolledIndividual as UnenrolledIndividual
from .individual_enroll_many_params import IndividualEnrollManyParams as IndividualEnrollManyParams
from .individual_unenroll_many_params import IndividualUnenrollManyParams as IndividualUnenrollManyParams
from .individual_enrolled_ids_response import IndividualEnrolledIDsResponse as IndividualEnrolledIDsResponse
diff --git a/src/finch/types/hris/benefits/unenrolled_individual.py b/src/finch/types/hris/benefits/unenrolled_individual.py
new file mode 100644
index 00000000..d9f10497
--- /dev/null
+++ b/src/finch/types/hris/benefits/unenrolled_individual.py
@@ -0,0 +1,27 @@
+# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
+
+from typing import Optional
+
+from ...._models import BaseModel
+
+__all__ = ["UnenrolledIndividual", "Body"]
+
+
+class Body(BaseModel):
+ finch_code: Optional[str] = None
+ """A descriptive identifier for the response."""
+
+ message: Optional[str] = None
+ """Short description in English that provides more information about the response."""
+
+ name: Optional[str] = None
+ """Identifier indicating whether the benefit was newly enrolled or updated."""
+
+
+class UnenrolledIndividual(BaseModel):
+ body: Optional[Body] = None
+
+ code: Optional[int] = None
+ """HTTP status code"""
+
+ individual_id: Optional[str] = None
diff --git a/tests/api_resources/hris/benefits/test_individuals.py b/tests/api_resources/hris/benefits/test_individuals.py
index acbc1e92..afc8a2e3 100644
--- a/tests/api_resources/hris/benefits/test_individuals.py
+++ b/tests/api_resources/hris/benefits/test_individuals.py
@@ -14,6 +14,7 @@
from finch.types.hris.benefits import (
IndividualBenefit,
EnrolledIndividual,
+ UnenrolledIndividual,
IndividualEnrolledIDsResponse,
)
@@ -176,7 +177,7 @@ def test_method_unenroll_many(self, client: Finch) -> None:
individual = client.hris.benefits.individuals.unenroll_many(
benefit_id="benefit_id",
)
- assert_matches_type(SyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
def test_method_unenroll_many_with_all_params(self, client: Finch) -> None:
@@ -184,7 +185,7 @@ def test_method_unenroll_many_with_all_params(self, client: Finch) -> None:
benefit_id="benefit_id",
individual_ids=["string"],
)
- assert_matches_type(SyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
def test_raw_response_unenroll_many(self, client: Finch) -> None:
@@ -195,7 +196,7 @@ def test_raw_response_unenroll_many(self, client: Finch) -> None:
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
individual = response.parse()
- assert_matches_type(SyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
def test_streaming_response_unenroll_many(self, client: Finch) -> None:
@@ -206,7 +207,7 @@ def test_streaming_response_unenroll_many(self, client: Finch) -> None:
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
individual = response.parse()
- assert_matches_type(SyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(SyncSinglePage[UnenrolledIndividual], individual, path=["response"])
assert cast(Any, response.is_closed) is True
@@ -374,7 +375,7 @@ async def test_method_unenroll_many(self, async_client: AsyncFinch) -> None:
individual = await async_client.hris.benefits.individuals.unenroll_many(
benefit_id="benefit_id",
)
- assert_matches_type(AsyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
async def test_method_unenroll_many_with_all_params(self, async_client: AsyncFinch) -> None:
@@ -382,7 +383,7 @@ async def test_method_unenroll_many_with_all_params(self, async_client: AsyncFin
benefit_id="benefit_id",
individual_ids=["string"],
)
- assert_matches_type(AsyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
async def test_raw_response_unenroll_many(self, async_client: AsyncFinch) -> None:
@@ -393,7 +394,7 @@ async def test_raw_response_unenroll_many(self, async_client: AsyncFinch) -> Non
assert response.is_closed is True
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
individual = response.parse()
- assert_matches_type(AsyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"])
@parametrize
async def test_streaming_response_unenroll_many(self, async_client: AsyncFinch) -> None:
@@ -404,7 +405,7 @@ async def test_streaming_response_unenroll_many(self, async_client: AsyncFinch)
assert response.http_request.headers.get("X-Stainless-Lang") == "python"
individual = await response.parse()
- assert_matches_type(AsyncSinglePage[object], individual, path=["response"])
+ assert_matches_type(AsyncSinglePage[UnenrolledIndividual], individual, path=["response"])
assert cast(Any, response.is_closed) is True