8
8
9
9
from .... import _legacy_response
10
10
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
+ )
12
15
from ...._compat import cached_property
13
16
from ...._resource import SyncAPIResource , AsyncAPIResource
14
17
from ...._response import to_streamed_response_wrapper , async_to_streamed_response_wrapper
20
23
individual_retrieve_many_benefits_params ,
21
24
)
22
25
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
25
26
from ....types .hris .benefits .individual_enrolled_ids_response import IndividualEnrolledIDsResponse
27
+ from ....types .hris .benefits .enrolled_individual_benefit_response import EnrolledIndividualBenefitResponse
28
+ from ....types .hris .benefits .unenrolled_individual_benefit_response import UnenrolledIndividualBenefitResponse
26
29
27
30
__all__ = ["Individuals" , "AsyncIndividuals" ]
28
31
@@ -58,7 +61,7 @@ def enroll_many(
58
61
extra_query : Query | None = None ,
59
62
extra_body : Body | None = None ,
60
63
timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
61
- ) -> SyncSinglePage [ EnrolledIndividual ] :
64
+ ) -> EnrolledIndividualBenefitResponse :
62
65
"""Enroll an individual into a deduction or contribution.
63
66
64
67
This is an overwrite
@@ -79,15 +82,13 @@ def enroll_many(
79
82
"""
80
83
if not benefit_id :
81
84
raise ValueError (f"Expected a non-empty value for `benefit_id` but received { benefit_id !r} " )
82
- return self ._get_api_list (
85
+ return self ._post (
83
86
f"/employer/benefits/{ benefit_id } /individuals" ,
84
- page = SyncSinglePage [EnrolledIndividual ],
85
87
body = maybe_transform (individuals , Iterable [individual_enroll_many_params .Individual ]),
86
88
options = make_request_options (
87
89
extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
88
90
),
89
- model = EnrolledIndividual ,
90
- method = "post" ,
91
+ cast_to = EnrolledIndividualBenefitResponse ,
91
92
)
92
93
93
94
def enrolled_ids (
@@ -179,7 +180,7 @@ def unenroll_many(
179
180
extra_query : Query | None = None ,
180
181
extra_body : Body | None = None ,
181
182
timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
182
- ) -> SyncSinglePage [ UnenrolledIndividual ] :
183
+ ) -> UnenrolledIndividualBenefitResponse :
183
184
"""
184
185
Unenroll individuals from a deduction or contribution
185
186
@@ -196,17 +197,15 @@ def unenroll_many(
196
197
"""
197
198
if not benefit_id :
198
199
raise ValueError (f"Expected a non-empty value for `benefit_id` but received { benefit_id !r} " )
199
- return self ._get_api_list (
200
+ return self ._delete (
200
201
f"/employer/benefits/{ benefit_id } /individuals" ,
201
- page = SyncSinglePage [UnenrolledIndividual ],
202
202
body = maybe_transform (
203
203
{"individual_ids" : individual_ids }, individual_unenroll_many_params .IndividualUnenrollManyParams
204
204
),
205
205
options = make_request_options (
206
206
extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
207
207
),
208
- model = UnenrolledIndividual ,
209
- method = "delete" ,
208
+ cast_to = UnenrolledIndividualBenefitResponse ,
210
209
)
211
210
212
211
@@ -230,7 +229,7 @@ def with_streaming_response(self) -> AsyncIndividualsWithStreamingResponse:
230
229
"""
231
230
return AsyncIndividualsWithStreamingResponse (self )
232
231
233
- def enroll_many (
232
+ async def enroll_many (
234
233
self ,
235
234
benefit_id : str ,
236
235
* ,
@@ -241,7 +240,7 @@ def enroll_many(
241
240
extra_query : Query | None = None ,
242
241
extra_body : Body | None = None ,
243
242
timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
244
- ) -> AsyncPaginator [ EnrolledIndividual , AsyncSinglePage [ EnrolledIndividual ]] :
243
+ ) -> EnrolledIndividualBenefitResponse :
245
244
"""Enroll an individual into a deduction or contribution.
246
245
247
246
This is an overwrite
@@ -262,15 +261,13 @@ def enroll_many(
262
261
"""
263
262
if not benefit_id :
264
263
raise ValueError (f"Expected a non-empty value for `benefit_id` but received { benefit_id !r} " )
265
- return self ._get_api_list (
264
+ return await self ._post (
266
265
f"/employer/benefits/{ benefit_id } /individuals" ,
267
- page = AsyncSinglePage [EnrolledIndividual ],
268
- body = maybe_transform (individuals , Iterable [individual_enroll_many_params .Individual ]),
266
+ body = await async_maybe_transform (individuals , Iterable [individual_enroll_many_params .Individual ]),
269
267
options = make_request_options (
270
268
extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
271
269
),
272
- model = EnrolledIndividual ,
273
- method = "post" ,
270
+ cast_to = EnrolledIndividualBenefitResponse ,
274
271
)
275
272
276
273
async def enrolled_ids (
@@ -351,7 +348,7 @@ def retrieve_many_benefits(
351
348
model = IndividualBenefit ,
352
349
)
353
350
354
- def unenroll_many (
351
+ async def unenroll_many (
355
352
self ,
356
353
benefit_id : str ,
357
354
* ,
@@ -362,7 +359,7 @@ def unenroll_many(
362
359
extra_query : Query | None = None ,
363
360
extra_body : Body | None = None ,
364
361
timeout : float | httpx .Timeout | None | NotGiven = NOT_GIVEN ,
365
- ) -> AsyncPaginator [ UnenrolledIndividual , AsyncSinglePage [ UnenrolledIndividual ]] :
362
+ ) -> UnenrolledIndividualBenefitResponse :
366
363
"""
367
364
Unenroll individuals from a deduction or contribution
368
365
@@ -379,17 +376,15 @@ def unenroll_many(
379
376
"""
380
377
if not benefit_id :
381
378
raise ValueError (f"Expected a non-empty value for `benefit_id` but received { benefit_id !r} " )
382
- return self ._get_api_list (
379
+ return await self ._delete (
383
380
f"/employer/benefits/{ benefit_id } /individuals" ,
384
- page = AsyncSinglePage [UnenrolledIndividual ],
385
- body = maybe_transform (
381
+ body = await async_maybe_transform (
386
382
{"individual_ids" : individual_ids }, individual_unenroll_many_params .IndividualUnenrollManyParams
387
383
),
388
384
options = make_request_options (
389
385
extra_headers = extra_headers , extra_query = extra_query , extra_body = extra_body , timeout = timeout
390
386
),
391
- model = UnenrolledIndividual ,
392
- method = "delete" ,
387
+ cast_to = UnenrolledIndividualBenefitResponse ,
393
388
)
394
389
395
390
0 commit comments