Skip to content

Commit 7ac8751

Browse files
feat(api): api update (#646)
1 parent c4b8703 commit 7ac8751

14 files changed

+78
-124
lines changed

.stats.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 46
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-14d375aab89e6b212fe459805a42d6ea7d7da8eae2037ae710a187d06911be1d.yml
3-
openapi_spec_hash: 08b86ecbec3323717d48e4aaee48ed54
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/finch%2Ffinch-8c83f0eae70d2a02ed3e2059fc251affdccd2f848f45445e4fed64dfd9ca5985.yml
3+
openapi_spec_hash: 2523952a32436e3c7fd3b55508c2e7ee
44
config_hash: ce10384813f68ba3fed61c7b601b396b

api.md

+6-5
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ from finch.types.hris import (
170170
SupportPerBenefitType,
171171
SupportedBenefit,
172172
UpdateCompanyBenefitResponse,
173+
BenefitListSupportedBenefitsResponse,
173174
BenfitContribution,
174175
)
175176
```
@@ -180,27 +181,27 @@ Methods:
180181
- <code title="get /employer/benefits/{benefit_id}">client.hris.benefits.<a href="./src/finch/resources/hris/benefits/benefits.py">retrieve</a>(benefit_id) -> <a href="./src/finch/types/hris/company_benefit.py">CompanyBenefit</a></code>
181182
- <code title="post /employer/benefits/{benefit_id}">client.hris.benefits.<a href="./src/finch/resources/hris/benefits/benefits.py">update</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefit_update_params.py">params</a>) -> <a href="./src/finch/types/hris/update_company_benefit_response.py">UpdateCompanyBenefitResponse</a></code>
182183
- <code title="get /employer/benefits">client.hris.benefits.<a href="./src/finch/resources/hris/benefits/benefits.py">list</a>() -> <a href="./src/finch/types/hris/company_benefit.py">SyncSinglePage[CompanyBenefit]</a></code>
183-
- <code title="get /employer/benefits/meta">client.hris.benefits.<a href="./src/finch/resources/hris/benefits/benefits.py">list_supported_benefits</a>() -> <a href="./src/finch/types/hris/supported_benefit.py">SyncSinglePage[SupportedBenefit]</a></code>
184+
- <code title="get /employer/benefits/meta">client.hris.benefits.<a href="./src/finch/resources/hris/benefits/benefits.py">list_supported_benefits</a>() -> <a href="./src/finch/types/hris/benefit_list_supported_benefits_response.py">SyncSinglePage[BenefitListSupportedBenefitsResponse]</a></code>
184185

185186
### Individuals
186187

187188
Types:
188189

189190
```python
190191
from finch.types.hris.benefits import (
191-
EnrolledIndividual,
192192
IndividualBenefit,
193-
UnenrolledIndividual,
193+
IndividualEnrollManyResponse,
194194
IndividualEnrolledIDsResponse,
195+
IndividualUnenrollManyResponse,
195196
)
196197
```
197198

198199
Methods:
199200

200-
- <code title="post /employer/benefits/{benefit_id}/individuals">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">enroll_many</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefits/individual_enroll_many_params.py">params</a>) -> <a href="./src/finch/types/hris/benefits/enrolled_individual.py">SyncSinglePage[EnrolledIndividual]</a></code>
201+
- <code title="post /employer/benefits/{benefit_id}/individuals">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">enroll_many</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefits/individual_enroll_many_params.py">params</a>) -> <a href="./src/finch/types/hris/benefits/individual_enroll_many_response.py">IndividualEnrollManyResponse</a></code>
201202
- <code title="get /employer/benefits/{benefit_id}/enrolled">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">enrolled_ids</a>(benefit_id) -> <a href="./src/finch/types/hris/benefits/individual_enrolled_ids_response.py">IndividualEnrolledIDsResponse</a></code>
202203
- <code title="get /employer/benefits/{benefit_id}/individuals">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">retrieve_many_benefits</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefits/individual_retrieve_many_benefits_params.py">params</a>) -> <a href="./src/finch/types/hris/benefits/individual_benefit.py">SyncSinglePage[IndividualBenefit]</a></code>
203-
- <code title="delete /employer/benefits/{benefit_id}/individuals">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">unenroll_many</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefits/individual_unenroll_many_params.py">params</a>) -> <a href="./src/finch/types/hris/benefits/unenrolled_individual.py">SyncSinglePage[UnenrolledIndividual]</a></code>
204+
- <code title="delete /employer/benefits/{benefit_id}/individuals">client.hris.benefits.individuals.<a href="./src/finch/resources/hris/benefits/individuals.py">unenroll_many</a>(benefit_id, \*\*<a href="src/finch/types/hris/benefits/individual_unenroll_many_params.py">params</a>) -> <a href="./src/finch/types/hris/benefits/individual_unenroll_many_response.py">SyncSinglePage[object]</a></code>
204205

205206
# Providers
206207

src/finch/resources/hris/benefits/benefits.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
from ....types.hris.benefit_type import BenefitType
3030
from ....types.hris.company_benefit import CompanyBenefit
3131
from ....types.hris.benefit_frequency import BenefitFrequency
32-
from ....types.hris.supported_benefit import SupportedBenefit
3332
from ....types.hris.update_company_benefit_response import UpdateCompanyBenefitResponse
3433
from ....types.hris.create_company_benefits_response import CreateCompanyBenefitsResponse
34+
from ....types.hris.benefit_list_supported_benefits_response import BenefitListSupportedBenefitsResponse
3535

3636
__all__ = ["Benefits", "AsyncBenefits"]
3737

@@ -210,15 +210,15 @@ def list_supported_benefits(
210210
extra_query: Query | None = None,
211211
extra_body: Body | None = None,
212212
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
213-
) -> SyncSinglePage[SupportedBenefit]:
213+
) -> SyncSinglePage[BenefitListSupportedBenefitsResponse]:
214214
"""Get deductions metadata"""
215215
return self._get_api_list(
216216
"/employer/benefits/meta",
217-
page=SyncSinglePage[SupportedBenefit],
217+
page=SyncSinglePage[BenefitListSupportedBenefitsResponse],
218218
options=make_request_options(
219219
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
220220
),
221-
model=SupportedBenefit,
221+
model=BenefitListSupportedBenefitsResponse,
222222
)
223223

224224

@@ -396,15 +396,15 @@ def list_supported_benefits(
396396
extra_query: Query | None = None,
397397
extra_body: Body | None = None,
398398
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
399-
) -> AsyncPaginator[SupportedBenefit, AsyncSinglePage[SupportedBenefit]]:
399+
) -> AsyncPaginator[BenefitListSupportedBenefitsResponse, AsyncSinglePage[BenefitListSupportedBenefitsResponse]]:
400400
"""Get deductions metadata"""
401401
return self._get_api_list(
402402
"/employer/benefits/meta",
403-
page=AsyncSinglePage[SupportedBenefit],
403+
page=AsyncSinglePage[BenefitListSupportedBenefitsResponse],
404404
options=make_request_options(
405405
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
406406
),
407-
model=SupportedBenefit,
407+
model=BenefitListSupportedBenefitsResponse,
408408
)
409409

410410

src/finch/resources/hris/benefits/individuals.py

+19-21
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
from .... import _legacy_response
1010
from ...._types import NOT_GIVEN, Body, Query, Headers, NotGiven
11-
from ...._utils import maybe_transform
11+
from ...._utils import (
12+
maybe_transform,
13+
async_maybe_transform,
14+
)
1215
from ...._compat import cached_property
1316
from ...._resource import SyncAPIResource, AsyncAPIResource
1417
from ...._response import to_streamed_response_wrapper, async_to_streamed_response_wrapper
@@ -20,8 +23,7 @@
2023
individual_retrieve_many_benefits_params,
2124
)
2225
from ....types.hris.benefits.individual_benefit import IndividualBenefit
23-
from ....types.hris.benefits.enrolled_individual import EnrolledIndividual
24-
from ....types.hris.benefits.unenrolled_individual import UnenrolledIndividual
26+
from ....types.hris.benefits.individual_enroll_many_response import IndividualEnrollManyResponse
2527
from ....types.hris.benefits.individual_enrolled_ids_response import IndividualEnrolledIDsResponse
2628

2729
__all__ = ["Individuals", "AsyncIndividuals"]
@@ -58,7 +60,7 @@ def enroll_many(
5860
extra_query: Query | None = None,
5961
extra_body: Body | None = None,
6062
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
61-
) -> SyncSinglePage[EnrolledIndividual]:
63+
) -> IndividualEnrollManyResponse:
6264
"""Enroll an individual into a deduction or contribution.
6365
6466
This is an overwrite
@@ -79,15 +81,13 @@ def enroll_many(
7981
"""
8082
if not benefit_id:
8183
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
82-
return self._get_api_list(
84+
return self._post(
8385
f"/employer/benefits/{benefit_id}/individuals",
84-
page=SyncSinglePage[EnrolledIndividual],
8586
body=maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]),
8687
options=make_request_options(
8788
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
8889
),
89-
model=EnrolledIndividual,
90-
method="post",
90+
cast_to=IndividualEnrollManyResponse,
9191
)
9292

9393
def enrolled_ids(
@@ -179,7 +179,7 @@ def unenroll_many(
179179
extra_query: Query | None = None,
180180
extra_body: Body | None = None,
181181
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
182-
) -> SyncSinglePage[UnenrolledIndividual]:
182+
) -> SyncSinglePage[object]:
183183
"""
184184
Unenroll individuals from a deduction or contribution
185185
@@ -198,14 +198,14 @@ def unenroll_many(
198198
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
199199
return self._get_api_list(
200200
f"/employer/benefits/{benefit_id}/individuals",
201-
page=SyncSinglePage[UnenrolledIndividual],
201+
page=SyncSinglePage[object],
202202
body=maybe_transform(
203203
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
204204
),
205205
options=make_request_options(
206206
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
207207
),
208-
model=UnenrolledIndividual,
208+
model=object,
209209
method="delete",
210210
)
211211

@@ -230,7 +230,7 @@ def with_streaming_response(self) -> AsyncIndividualsWithStreamingResponse:
230230
"""
231231
return AsyncIndividualsWithStreamingResponse(self)
232232

233-
def enroll_many(
233+
async def enroll_many(
234234
self,
235235
benefit_id: str,
236236
*,
@@ -241,7 +241,7 @@ def enroll_many(
241241
extra_query: Query | None = None,
242242
extra_body: Body | None = None,
243243
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
244-
) -> AsyncPaginator[EnrolledIndividual, AsyncSinglePage[EnrolledIndividual]]:
244+
) -> IndividualEnrollManyResponse:
245245
"""Enroll an individual into a deduction or contribution.
246246
247247
This is an overwrite
@@ -262,15 +262,13 @@ def enroll_many(
262262
"""
263263
if not benefit_id:
264264
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
265-
return self._get_api_list(
265+
return await self._post(
266266
f"/employer/benefits/{benefit_id}/individuals",
267-
page=AsyncSinglePage[EnrolledIndividual],
268-
body=maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]),
267+
body=await async_maybe_transform(individuals, Iterable[individual_enroll_many_params.Individual]),
269268
options=make_request_options(
270269
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
271270
),
272-
model=EnrolledIndividual,
273-
method="post",
271+
cast_to=IndividualEnrollManyResponse,
274272
)
275273

276274
async def enrolled_ids(
@@ -362,7 +360,7 @@ def unenroll_many(
362360
extra_query: Query | None = None,
363361
extra_body: Body | None = None,
364362
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
365-
) -> AsyncPaginator[UnenrolledIndividual, AsyncSinglePage[UnenrolledIndividual]]:
363+
) -> AsyncPaginator[object, AsyncSinglePage[object]]:
366364
"""
367365
Unenroll individuals from a deduction or contribution
368366
@@ -381,14 +379,14 @@ def unenroll_many(
381379
raise ValueError(f"Expected a non-empty value for `benefit_id` but received {benefit_id!r}")
382380
return self._get_api_list(
383381
f"/employer/benefits/{benefit_id}/individuals",
384-
page=AsyncSinglePage[UnenrolledIndividual],
382+
page=AsyncSinglePage[object],
385383
body=maybe_transform(
386384
{"individual_ids": individual_ids}, individual_unenroll_many_params.IndividualUnenrollManyParams
387385
),
388386
options=make_request_options(
389387
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
390388
),
391-
model=UnenrolledIndividual,
389+
model=object,
392390
method="delete",
393391
)
394392

src/finch/types/hris/__init__.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
from .benefits_support import BenefitsSupport as BenefitsSupport
1515
from .benefit_frequency import BenefitFrequency as BenefitFrequency
1616
from .document_response import DocumentResponse as DocumentResponse
17-
from .supported_benefit import SupportedBenefit as SupportedBenefit
1817
from .benfit_contribution import BenfitContribution as BenfitContribution
1918
from .individual_response import IndividualResponse as IndividualResponse
2019
from .payment_list_params import PaymentListParams as PaymentListParams
@@ -37,3 +36,6 @@
3736
from .create_company_benefits_response import CreateCompanyBenefitsResponse as CreateCompanyBenefitsResponse
3837
from .directory_list_individuals_params import DirectoryListIndividualsParams as DirectoryListIndividualsParams
3938
from .pay_statement_retrieve_many_params import PayStatementRetrieveManyParams as PayStatementRetrieveManyParams
39+
from .benefit_list_supported_benefits_response import (
40+
BenefitListSupportedBenefitsResponse as BenefitListSupportedBenefitsResponse,
41+
)

src/finch/types/hris/supported_benefit.py renamed to src/finch/types/hris/benefit_list_supported_benefits_response.py

+2-6
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44
from typing_extensions import Literal
55

66
from ..._models import BaseModel
7-
from .benefit_type import BenefitType
87
from .benefit_frequency import BenefitFrequency
98

10-
__all__ = ["SupportedBenefit"]
9+
__all__ = ["BenefitListSupportedBenefitsResponse"]
1110

1211

13-
class SupportedBenefit(BaseModel):
12+
class BenefitListSupportedBenefitsResponse(BaseModel):
1413
annual_maximum: Optional[bool] = None
1514
"""Whether the provider supports an annual maximum for this benefit."""
1615

@@ -43,6 +42,3 @@ class SupportedBenefit(BaseModel):
4342
Empty if this feature is not supported for the benefit. This array only has
4443
values for HSA benefits.
4544
"""
46-
47-
type: Optional[BenefitType] = None
48-
"""Type of benefit."""

src/finch/types/hris/benefits/__init__.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
from __future__ import annotations
44

55
from .individual_benefit import IndividualBenefit as IndividualBenefit
6-
from .enrolled_individual import EnrolledIndividual as EnrolledIndividual
7-
from .unenrolled_individual import UnenrolledIndividual as UnenrolledIndividual
86
from .individual_enroll_many_params import IndividualEnrollManyParams as IndividualEnrollManyParams
7+
from .individual_enroll_many_response import IndividualEnrollManyResponse as IndividualEnrollManyResponse
98
from .individual_unenroll_many_params import IndividualUnenrollManyParams as IndividualUnenrollManyParams
109
from .individual_enrolled_ids_response import IndividualEnrolledIDsResponse as IndividualEnrolledIDsResponse
1110
from .individual_retrieve_many_benefits_params import (

src/finch/types/hris/benefits/enrolled_individual.py

-28
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
4+
from ...._models import BaseModel
5+
6+
__all__ = ["IndividualEnrollManyResponse"]
7+
8+
9+
class IndividualEnrollManyResponse(BaseModel):
10+
job_id: str

src/finch/types/hris/benefits/unenrolled_individual.py

-27
This file was deleted.

src/finch/types/hris/create_company_benefits_response.py

+2
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@
99
class CreateCompanyBenefitsResponse(BaseModel):
1010
benefit_id: str
1111
"""The id of the benefit."""
12+
13+
job_id: str

src/finch/types/hris/update_company_benefit_response.py

+2
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@
99
class UpdateCompanyBenefitResponse(BaseModel):
1010
benefit_id: str
1111
"""The id of the benefit."""
12+
13+
job_id: str

0 commit comments

Comments
 (0)