groundx 2.3.0__py3-none-any.whl → 2.3.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. groundx/__init__.py +16 -16
  2. groundx/buckets/__init__.py +2 -0
  3. groundx/buckets/client.py +47 -366
  4. groundx/buckets/raw_client.py +628 -0
  5. groundx/client.py +15 -17
  6. groundx/core/__init__.py +5 -0
  7. groundx/core/api_error.py +13 -5
  8. groundx/core/client_wrapper.py +4 -3
  9. groundx/core/force_multipart.py +16 -0
  10. groundx/core/http_client.py +70 -26
  11. groundx/core/http_response.py +55 -0
  12. groundx/core/jsonable_encoder.py +0 -1
  13. groundx/core/pydantic_utilities.py +69 -110
  14. groundx/core/serialization.py +7 -3
  15. groundx/customer/__init__.py +2 -0
  16. groundx/customer/client.py +31 -43
  17. groundx/customer/raw_client.py +91 -0
  18. groundx/documents/__init__.py +2 -0
  19. groundx/documents/client.py +122 -789
  20. groundx/documents/raw_client.py +1404 -0
  21. groundx/errors/__init__.py +2 -0
  22. groundx/errors/bad_request_error.py +4 -3
  23. groundx/errors/unauthorized_error.py +4 -3
  24. groundx/groups/__init__.py +2 -0
  25. groundx/groups/client.py +55 -520
  26. groundx/groups/raw_client.py +901 -0
  27. groundx/health/__init__.py +2 -0
  28. groundx/health/client.py +35 -101
  29. groundx/health/raw_client.py +193 -0
  30. groundx/ingest.py +2 -2
  31. groundx/search/__init__.py +2 -0
  32. groundx/search/client.py +82 -211
  33. groundx/search/raw_client.py +442 -0
  34. groundx/search/types/__init__.py +2 -0
  35. groundx/types/__init__.py +16 -16
  36. groundx/types/bounding_box_detail.py +4 -4
  37. groundx/types/bucket_detail.py +5 -5
  38. groundx/types/bucket_list_response.py +17 -3
  39. groundx/types/bucket_response.py +3 -3
  40. groundx/types/bucket_update_detail.py +4 -4
  41. groundx/types/bucket_update_response.py +3 -3
  42. groundx/types/customer_detail.py +2 -2
  43. groundx/types/customer_response.py +3 -3
  44. groundx/types/document.py +4 -4
  45. groundx/types/document_detail.py +9 -4
  46. groundx/types/document_list_response.py +4 -4
  47. groundx/types/document_local_ingest_request.py +1 -0
  48. groundx/types/document_lookup_response.py +8 -3
  49. groundx/types/document_response.py +3 -3
  50. groundx/types/group_detail.py +4 -4
  51. groundx/types/group_list_response.py +17 -3
  52. groundx/types/group_response.py +3 -3
  53. groundx/types/health_response.py +3 -3
  54. groundx/types/health_response_health.py +3 -3
  55. groundx/types/health_service.py +5 -5
  56. groundx/types/ingest_local_document.py +3 -3
  57. groundx/types/ingest_local_document_metadata.py +9 -4
  58. groundx/types/ingest_remote_document.py +10 -5
  59. groundx/types/ingest_response.py +4 -4
  60. groundx/types/{process_status_response_ingest.py → ingest_status.py} +8 -7
  61. groundx/types/{ingest_response_ingest.py → ingest_status_light.py} +7 -5
  62. groundx/types/ingest_status_progress.py +26 -0
  63. groundx/types/{process_status_response_ingest_progress_errors.py → ingest_status_progress_cancelled.py} +4 -4
  64. groundx/types/{process_status_response_ingest_progress_complete.py → ingest_status_progress_complete.py} +4 -4
  65. groundx/types/{process_status_response_ingest_progress_cancelled.py → ingest_status_progress_errors.py} +4 -4
  66. groundx/types/{process_status_response_ingest_progress_processing.py → ingest_status_progress_processing.py} +4 -4
  67. groundx/types/message_response.py +2 -2
  68. groundx/types/meter_detail.py +2 -2
  69. groundx/types/processes_status_response.py +19 -2
  70. groundx/types/search_response.py +3 -3
  71. groundx/types/search_response_search.py +3 -3
  72. groundx/types/search_result_item.py +5 -5
  73. groundx/types/subscription_detail.py +3 -3
  74. groundx/types/subscription_detail_meters.py +5 -5
  75. groundx/types/website_source.py +4 -4
  76. {groundx-2.3.0.dist-info → groundx-2.3.5.dist-info}/METADATA +1 -1
  77. groundx-2.3.5.dist-info/RECORD +95 -0
  78. groundx/types/process_status_response.py +0 -20
  79. groundx/types/process_status_response_ingest_progress.py +0 -26
  80. groundx-2.3.0.dist-info/RECORD +0 -88
  81. {groundx-2.3.0.dist-info → groundx-2.3.5.dist-info}/LICENSE +0 -0
  82. {groundx-2.3.0.dist-info → groundx-2.3.5.dist-info}/WHEEL +0 -0
groundx/groups/client.py CHANGED
@@ -1,18 +1,13 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
- from ..core.client_wrapper import SyncClientWrapper
4
+
5
+ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
5
6
  from ..core.request_options import RequestOptions
6
7
  from ..types.group_list_response import GroupListResponse
7
- from ..core.pydantic_utilities import parse_obj_as
8
- from json.decoder import JSONDecodeError
9
- from ..core.api_error import ApiError
10
8
  from ..types.group_response import GroupResponse
11
- from ..errors.bad_request_error import BadRequestError
12
- from ..core.jsonable_encoder import jsonable_encoder
13
- from ..errors.unauthorized_error import UnauthorizedError
14
9
  from ..types.message_response import MessageResponse
15
- from ..core.client_wrapper import AsyncClientWrapper
10
+ from .raw_client import AsyncRawGroupsClient, RawGroupsClient
16
11
 
17
12
  # this is used as the default value for optional parameters
18
13
  OMIT = typing.cast(typing.Any, ...)
@@ -20,7 +15,18 @@ OMIT = typing.cast(typing.Any, ...)
20
15
 
21
16
  class GroupsClient:
22
17
  def __init__(self, *, client_wrapper: SyncClientWrapper):
23
- self._client_wrapper = client_wrapper
18
+ self._raw_client = RawGroupsClient(client_wrapper=client_wrapper)
19
+
20
+ @property
21
+ def with_raw_response(self) -> RawGroupsClient:
22
+ """
23
+ Retrieves a raw implementation of this client that returns raw responses.
24
+
25
+ Returns
26
+ -------
27
+ RawGroupsClient
28
+ """
29
+ return self._raw_client
24
30
 
25
31
  def list(
26
32
  self,
@@ -57,28 +63,8 @@ class GroupsClient:
57
63
  )
58
64
  client.groups.list()
59
65
  """
60
- _response = self._client_wrapper.httpx_client.request(
61
- "v1/group",
62
- method="GET",
63
- params={
64
- "n": n,
65
- "nextToken": next_token,
66
- },
67
- request_options=request_options,
68
- )
69
- try:
70
- if 200 <= _response.status_code < 300:
71
- return typing.cast(
72
- GroupListResponse,
73
- parse_obj_as(
74
- type_=GroupListResponse, # type: ignore
75
- object_=_response.json(),
76
- ),
77
- )
78
- _response_json = _response.json()
79
- except JSONDecodeError:
80
- raise ApiError(status_code=_response.status_code, body=_response.text)
81
- raise ApiError(status_code=_response.status_code, body=_response_json)
66
+ _response = self._raw_client.list(n=n, next_token=next_token, request_options=request_options)
67
+ return _response.data
82
68
 
83
69
  def create(
84
70
  self,
@@ -117,42 +103,8 @@ class GroupsClient:
117
103
  name="your_group_name",
118
104
  )
119
105
  """
120
- _response = self._client_wrapper.httpx_client.request(
121
- "v1/group",
122
- method="POST",
123
- json={
124
- "name": name,
125
- "bucketName": bucket_name,
126
- },
127
- headers={
128
- "content-type": "application/json",
129
- },
130
- request_options=request_options,
131
- omit=OMIT,
132
- )
133
- try:
134
- if 200 <= _response.status_code < 300:
135
- return typing.cast(
136
- GroupResponse,
137
- parse_obj_as(
138
- type_=GroupResponse, # type: ignore
139
- object_=_response.json(),
140
- ),
141
- )
142
- if _response.status_code == 400:
143
- raise BadRequestError(
144
- typing.cast(
145
- typing.Optional[typing.Any],
146
- parse_obj_as(
147
- type_=typing.Optional[typing.Any], # type: ignore
148
- object_=_response.json(),
149
- ),
150
- )
151
- )
152
- _response_json = _response.json()
153
- except JSONDecodeError:
154
- raise ApiError(status_code=_response.status_code, body=_response.text)
155
- raise ApiError(status_code=_response.status_code, body=_response_json)
106
+ _response = self._raw_client.create(name=name, bucket_name=bucket_name, request_options=request_options)
107
+ return _response.data
156
108
 
157
109
  def get(self, group_id: int, *, request_options: typing.Optional[RequestOptions] = None) -> GroupResponse:
158
110
  """
@@ -182,44 +134,8 @@ class GroupsClient:
182
134
  group_id=1,
183
135
  )
184
136
  """
185
- _response = self._client_wrapper.httpx_client.request(
186
- f"v1/group/{jsonable_encoder(group_id)}",
187
- method="GET",
188
- request_options=request_options,
189
- )
190
- try:
191
- if 200 <= _response.status_code < 300:
192
- return typing.cast(
193
- GroupResponse,
194
- parse_obj_as(
195
- type_=GroupResponse, # type: ignore
196
- object_=_response.json(),
197
- ),
198
- )
199
- if _response.status_code == 400:
200
- raise BadRequestError(
201
- typing.cast(
202
- typing.Optional[typing.Any],
203
- parse_obj_as(
204
- type_=typing.Optional[typing.Any], # type: ignore
205
- object_=_response.json(),
206
- ),
207
- )
208
- )
209
- if _response.status_code == 401:
210
- raise UnauthorizedError(
211
- typing.cast(
212
- typing.Optional[typing.Any],
213
- parse_obj_as(
214
- type_=typing.Optional[typing.Any], # type: ignore
215
- object_=_response.json(),
216
- ),
217
- )
218
- )
219
- _response_json = _response.json()
220
- except JSONDecodeError:
221
- raise ApiError(status_code=_response.status_code, body=_response.text)
222
- raise ApiError(status_code=_response.status_code, body=_response_json)
137
+ _response = self._raw_client.get(group_id, request_options=request_options)
138
+ return _response.data
223
139
 
224
140
  def update(
225
141
  self, group_id: int, *, new_name: str, request_options: typing.Optional[RequestOptions] = None
@@ -255,51 +171,8 @@ class GroupsClient:
255
171
  new_name="your_group_name",
256
172
  )
257
173
  """
258
- _response = self._client_wrapper.httpx_client.request(
259
- f"v1/group/{jsonable_encoder(group_id)}",
260
- method="PUT",
261
- json={
262
- "newName": new_name,
263
- },
264
- headers={
265
- "content-type": "application/json",
266
- },
267
- request_options=request_options,
268
- omit=OMIT,
269
- )
270
- try:
271
- if 200 <= _response.status_code < 300:
272
- return typing.cast(
273
- GroupResponse,
274
- parse_obj_as(
275
- type_=GroupResponse, # type: ignore
276
- object_=_response.json(),
277
- ),
278
- )
279
- if _response.status_code == 400:
280
- raise BadRequestError(
281
- typing.cast(
282
- typing.Optional[typing.Any],
283
- parse_obj_as(
284
- type_=typing.Optional[typing.Any], # type: ignore
285
- object_=_response.json(),
286
- ),
287
- )
288
- )
289
- if _response.status_code == 401:
290
- raise UnauthorizedError(
291
- typing.cast(
292
- typing.Optional[typing.Any],
293
- parse_obj_as(
294
- type_=typing.Optional[typing.Any], # type: ignore
295
- object_=_response.json(),
296
- ),
297
- )
298
- )
299
- _response_json = _response.json()
300
- except JSONDecodeError:
301
- raise ApiError(status_code=_response.status_code, body=_response.text)
302
- raise ApiError(status_code=_response.status_code, body=_response_json)
174
+ _response = self._raw_client.update(group_id, new_name=new_name, request_options=request_options)
175
+ return _response.data
303
176
 
304
177
  def delete(self, group_id: int, *, request_options: typing.Optional[RequestOptions] = None) -> MessageResponse:
305
178
  """
@@ -329,44 +202,8 @@ class GroupsClient:
329
202
  group_id=1,
330
203
  )
331
204
  """
332
- _response = self._client_wrapper.httpx_client.request(
333
- f"v1/group/{jsonable_encoder(group_id)}",
334
- method="DELETE",
335
- request_options=request_options,
336
- )
337
- try:
338
- if 200 <= _response.status_code < 300:
339
- return typing.cast(
340
- MessageResponse,
341
- parse_obj_as(
342
- type_=MessageResponse, # type: ignore
343
- object_=_response.json(),
344
- ),
345
- )
346
- if _response.status_code == 400:
347
- raise BadRequestError(
348
- typing.cast(
349
- typing.Optional[typing.Any],
350
- parse_obj_as(
351
- type_=typing.Optional[typing.Any], # type: ignore
352
- object_=_response.json(),
353
- ),
354
- )
355
- )
356
- if _response.status_code == 401:
357
- raise UnauthorizedError(
358
- typing.cast(
359
- typing.Optional[typing.Any],
360
- parse_obj_as(
361
- type_=typing.Optional[typing.Any], # type: ignore
362
- object_=_response.json(),
363
- ),
364
- )
365
- )
366
- _response_json = _response.json()
367
- except JSONDecodeError:
368
- raise ApiError(status_code=_response.status_code, body=_response.text)
369
- raise ApiError(status_code=_response.status_code, body=_response_json)
205
+ _response = self._raw_client.delete(group_id, request_options=request_options)
206
+ return _response.data
370
207
 
371
208
  def add_bucket(
372
209
  self, group_id: int, bucket_id: int, *, request_options: typing.Optional[RequestOptions] = None
@@ -402,44 +239,8 @@ class GroupsClient:
402
239
  bucket_id=1,
403
240
  )
404
241
  """
405
- _response = self._client_wrapper.httpx_client.request(
406
- f"v1/group/{jsonable_encoder(group_id)}/bucket/{jsonable_encoder(bucket_id)}",
407
- method="POST",
408
- request_options=request_options,
409
- )
410
- try:
411
- if 200 <= _response.status_code < 300:
412
- return typing.cast(
413
- MessageResponse,
414
- parse_obj_as(
415
- type_=MessageResponse, # type: ignore
416
- object_=_response.json(),
417
- ),
418
- )
419
- if _response.status_code == 400:
420
- raise BadRequestError(
421
- typing.cast(
422
- typing.Optional[typing.Any],
423
- parse_obj_as(
424
- type_=typing.Optional[typing.Any], # type: ignore
425
- object_=_response.json(),
426
- ),
427
- )
428
- )
429
- if _response.status_code == 401:
430
- raise UnauthorizedError(
431
- typing.cast(
432
- typing.Optional[typing.Any],
433
- parse_obj_as(
434
- type_=typing.Optional[typing.Any], # type: ignore
435
- object_=_response.json(),
436
- ),
437
- )
438
- )
439
- _response_json = _response.json()
440
- except JSONDecodeError:
441
- raise ApiError(status_code=_response.status_code, body=_response.text)
442
- raise ApiError(status_code=_response.status_code, body=_response_json)
242
+ _response = self._raw_client.add_bucket(group_id, bucket_id, request_options=request_options)
243
+ return _response.data
443
244
 
444
245
  def remove_bucket(
445
246
  self, group_id: int, bucket_id: int, *, request_options: typing.Optional[RequestOptions] = None
@@ -475,49 +276,24 @@ class GroupsClient:
475
276
  bucket_id=1,
476
277
  )
477
278
  """
478
- _response = self._client_wrapper.httpx_client.request(
479
- f"v1/group/{jsonable_encoder(group_id)}/bucket/{jsonable_encoder(bucket_id)}",
480
- method="DELETE",
481
- request_options=request_options,
482
- )
483
- try:
484
- if 200 <= _response.status_code < 300:
485
- return typing.cast(
486
- MessageResponse,
487
- parse_obj_as(
488
- type_=MessageResponse, # type: ignore
489
- object_=_response.json(),
490
- ),
491
- )
492
- if _response.status_code == 400:
493
- raise BadRequestError(
494
- typing.cast(
495
- typing.Optional[typing.Any],
496
- parse_obj_as(
497
- type_=typing.Optional[typing.Any], # type: ignore
498
- object_=_response.json(),
499
- ),
500
- )
501
- )
502
- if _response.status_code == 401:
503
- raise UnauthorizedError(
504
- typing.cast(
505
- typing.Optional[typing.Any],
506
- parse_obj_as(
507
- type_=typing.Optional[typing.Any], # type: ignore
508
- object_=_response.json(),
509
- ),
510
- )
511
- )
512
- _response_json = _response.json()
513
- except JSONDecodeError:
514
- raise ApiError(status_code=_response.status_code, body=_response.text)
515
- raise ApiError(status_code=_response.status_code, body=_response_json)
279
+ _response = self._raw_client.remove_bucket(group_id, bucket_id, request_options=request_options)
280
+ return _response.data
516
281
 
517
282
 
518
283
  class AsyncGroupsClient:
519
284
  def __init__(self, *, client_wrapper: AsyncClientWrapper):
520
- self._client_wrapper = client_wrapper
285
+ self._raw_client = AsyncRawGroupsClient(client_wrapper=client_wrapper)
286
+
287
+ @property
288
+ def with_raw_response(self) -> AsyncRawGroupsClient:
289
+ """
290
+ Retrieves a raw implementation of this client that returns raw responses.
291
+
292
+ Returns
293
+ -------
294
+ AsyncRawGroupsClient
295
+ """
296
+ return self._raw_client
521
297
 
522
298
  async def list(
523
299
  self,
@@ -562,28 +338,8 @@ class AsyncGroupsClient:
562
338
 
563
339
  asyncio.run(main())
564
340
  """
565
- _response = await self._client_wrapper.httpx_client.request(
566
- "v1/group",
567
- method="GET",
568
- params={
569
- "n": n,
570
- "nextToken": next_token,
571
- },
572
- request_options=request_options,
573
- )
574
- try:
575
- if 200 <= _response.status_code < 300:
576
- return typing.cast(
577
- GroupListResponse,
578
- parse_obj_as(
579
- type_=GroupListResponse, # type: ignore
580
- object_=_response.json(),
581
- ),
582
- )
583
- _response_json = _response.json()
584
- except JSONDecodeError:
585
- raise ApiError(status_code=_response.status_code, body=_response.text)
586
- raise ApiError(status_code=_response.status_code, body=_response_json)
341
+ _response = await self._raw_client.list(n=n, next_token=next_token, request_options=request_options)
342
+ return _response.data
587
343
 
588
344
  async def create(
589
345
  self,
@@ -630,42 +386,8 @@ class AsyncGroupsClient:
630
386
 
631
387
  asyncio.run(main())
632
388
  """
633
- _response = await self._client_wrapper.httpx_client.request(
634
- "v1/group",
635
- method="POST",
636
- json={
637
- "name": name,
638
- "bucketName": bucket_name,
639
- },
640
- headers={
641
- "content-type": "application/json",
642
- },
643
- request_options=request_options,
644
- omit=OMIT,
645
- )
646
- try:
647
- if 200 <= _response.status_code < 300:
648
- return typing.cast(
649
- GroupResponse,
650
- parse_obj_as(
651
- type_=GroupResponse, # type: ignore
652
- object_=_response.json(),
653
- ),
654
- )
655
- if _response.status_code == 400:
656
- raise BadRequestError(
657
- typing.cast(
658
- typing.Optional[typing.Any],
659
- parse_obj_as(
660
- type_=typing.Optional[typing.Any], # type: ignore
661
- object_=_response.json(),
662
- ),
663
- )
664
- )
665
- _response_json = _response.json()
666
- except JSONDecodeError:
667
- raise ApiError(status_code=_response.status_code, body=_response.text)
668
- raise ApiError(status_code=_response.status_code, body=_response_json)
389
+ _response = await self._raw_client.create(name=name, bucket_name=bucket_name, request_options=request_options)
390
+ return _response.data
669
391
 
670
392
  async def get(self, group_id: int, *, request_options: typing.Optional[RequestOptions] = None) -> GroupResponse:
671
393
  """
@@ -703,44 +425,8 @@ class AsyncGroupsClient:
703
425
 
704
426
  asyncio.run(main())
705
427
  """
706
- _response = await self._client_wrapper.httpx_client.request(
707
- f"v1/group/{jsonable_encoder(group_id)}",
708
- method="GET",
709
- request_options=request_options,
710
- )
711
- try:
712
- if 200 <= _response.status_code < 300:
713
- return typing.cast(
714
- GroupResponse,
715
- parse_obj_as(
716
- type_=GroupResponse, # type: ignore
717
- object_=_response.json(),
718
- ),
719
- )
720
- if _response.status_code == 400:
721
- raise BadRequestError(
722
- typing.cast(
723
- typing.Optional[typing.Any],
724
- parse_obj_as(
725
- type_=typing.Optional[typing.Any], # type: ignore
726
- object_=_response.json(),
727
- ),
728
- )
729
- )
730
- if _response.status_code == 401:
731
- raise UnauthorizedError(
732
- typing.cast(
733
- typing.Optional[typing.Any],
734
- parse_obj_as(
735
- type_=typing.Optional[typing.Any], # type: ignore
736
- object_=_response.json(),
737
- ),
738
- )
739
- )
740
- _response_json = _response.json()
741
- except JSONDecodeError:
742
- raise ApiError(status_code=_response.status_code, body=_response.text)
743
- raise ApiError(status_code=_response.status_code, body=_response_json)
428
+ _response = await self._raw_client.get(group_id, request_options=request_options)
429
+ return _response.data
744
430
 
745
431
  async def update(
746
432
  self, group_id: int, *, new_name: str, request_options: typing.Optional[RequestOptions] = None
@@ -784,51 +470,8 @@ class AsyncGroupsClient:
784
470
 
785
471
  asyncio.run(main())
786
472
  """
787
- _response = await self._client_wrapper.httpx_client.request(
788
- f"v1/group/{jsonable_encoder(group_id)}",
789
- method="PUT",
790
- json={
791
- "newName": new_name,
792
- },
793
- headers={
794
- "content-type": "application/json",
795
- },
796
- request_options=request_options,
797
- omit=OMIT,
798
- )
799
- try:
800
- if 200 <= _response.status_code < 300:
801
- return typing.cast(
802
- GroupResponse,
803
- parse_obj_as(
804
- type_=GroupResponse, # type: ignore
805
- object_=_response.json(),
806
- ),
807
- )
808
- if _response.status_code == 400:
809
- raise BadRequestError(
810
- typing.cast(
811
- typing.Optional[typing.Any],
812
- parse_obj_as(
813
- type_=typing.Optional[typing.Any], # type: ignore
814
- object_=_response.json(),
815
- ),
816
- )
817
- )
818
- if _response.status_code == 401:
819
- raise UnauthorizedError(
820
- typing.cast(
821
- typing.Optional[typing.Any],
822
- parse_obj_as(
823
- type_=typing.Optional[typing.Any], # type: ignore
824
- object_=_response.json(),
825
- ),
826
- )
827
- )
828
- _response_json = _response.json()
829
- except JSONDecodeError:
830
- raise ApiError(status_code=_response.status_code, body=_response.text)
831
- raise ApiError(status_code=_response.status_code, body=_response_json)
473
+ _response = await self._raw_client.update(group_id, new_name=new_name, request_options=request_options)
474
+ return _response.data
832
475
 
833
476
  async def delete(
834
477
  self, group_id: int, *, request_options: typing.Optional[RequestOptions] = None
@@ -868,44 +511,8 @@ class AsyncGroupsClient:
868
511
 
869
512
  asyncio.run(main())
870
513
  """
871
- _response = await self._client_wrapper.httpx_client.request(
872
- f"v1/group/{jsonable_encoder(group_id)}",
873
- method="DELETE",
874
- request_options=request_options,
875
- )
876
- try:
877
- if 200 <= _response.status_code < 300:
878
- return typing.cast(
879
- MessageResponse,
880
- parse_obj_as(
881
- type_=MessageResponse, # type: ignore
882
- object_=_response.json(),
883
- ),
884
- )
885
- if _response.status_code == 400:
886
- raise BadRequestError(
887
- typing.cast(
888
- typing.Optional[typing.Any],
889
- parse_obj_as(
890
- type_=typing.Optional[typing.Any], # type: ignore
891
- object_=_response.json(),
892
- ),
893
- )
894
- )
895
- if _response.status_code == 401:
896
- raise UnauthorizedError(
897
- typing.cast(
898
- typing.Optional[typing.Any],
899
- parse_obj_as(
900
- type_=typing.Optional[typing.Any], # type: ignore
901
- object_=_response.json(),
902
- ),
903
- )
904
- )
905
- _response_json = _response.json()
906
- except JSONDecodeError:
907
- raise ApiError(status_code=_response.status_code, body=_response.text)
908
- raise ApiError(status_code=_response.status_code, body=_response_json)
514
+ _response = await self._raw_client.delete(group_id, request_options=request_options)
515
+ return _response.data
909
516
 
910
517
  async def add_bucket(
911
518
  self, group_id: int, bucket_id: int, *, request_options: typing.Optional[RequestOptions] = None
@@ -949,44 +556,8 @@ class AsyncGroupsClient:
949
556
 
950
557
  asyncio.run(main())
951
558
  """
952
- _response = await self._client_wrapper.httpx_client.request(
953
- f"v1/group/{jsonable_encoder(group_id)}/bucket/{jsonable_encoder(bucket_id)}",
954
- method="POST",
955
- request_options=request_options,
956
- )
957
- try:
958
- if 200 <= _response.status_code < 300:
959
- return typing.cast(
960
- MessageResponse,
961
- parse_obj_as(
962
- type_=MessageResponse, # type: ignore
963
- object_=_response.json(),
964
- ),
965
- )
966
- if _response.status_code == 400:
967
- raise BadRequestError(
968
- typing.cast(
969
- typing.Optional[typing.Any],
970
- parse_obj_as(
971
- type_=typing.Optional[typing.Any], # type: ignore
972
- object_=_response.json(),
973
- ),
974
- )
975
- )
976
- if _response.status_code == 401:
977
- raise UnauthorizedError(
978
- typing.cast(
979
- typing.Optional[typing.Any],
980
- parse_obj_as(
981
- type_=typing.Optional[typing.Any], # type: ignore
982
- object_=_response.json(),
983
- ),
984
- )
985
- )
986
- _response_json = _response.json()
987
- except JSONDecodeError:
988
- raise ApiError(status_code=_response.status_code, body=_response.text)
989
- raise ApiError(status_code=_response.status_code, body=_response_json)
559
+ _response = await self._raw_client.add_bucket(group_id, bucket_id, request_options=request_options)
560
+ return _response.data
990
561
 
991
562
  async def remove_bucket(
992
563
  self, group_id: int, bucket_id: int, *, request_options: typing.Optional[RequestOptions] = None
@@ -1030,41 +601,5 @@ class AsyncGroupsClient:
1030
601
 
1031
602
  asyncio.run(main())
1032
603
  """
1033
- _response = await self._client_wrapper.httpx_client.request(
1034
- f"v1/group/{jsonable_encoder(group_id)}/bucket/{jsonable_encoder(bucket_id)}",
1035
- method="DELETE",
1036
- request_options=request_options,
1037
- )
1038
- try:
1039
- if 200 <= _response.status_code < 300:
1040
- return typing.cast(
1041
- MessageResponse,
1042
- parse_obj_as(
1043
- type_=MessageResponse, # type: ignore
1044
- object_=_response.json(),
1045
- ),
1046
- )
1047
- if _response.status_code == 400:
1048
- raise BadRequestError(
1049
- typing.cast(
1050
- typing.Optional[typing.Any],
1051
- parse_obj_as(
1052
- type_=typing.Optional[typing.Any], # type: ignore
1053
- object_=_response.json(),
1054
- ),
1055
- )
1056
- )
1057
- if _response.status_code == 401:
1058
- raise UnauthorizedError(
1059
- typing.cast(
1060
- typing.Optional[typing.Any],
1061
- parse_obj_as(
1062
- type_=typing.Optional[typing.Any], # type: ignore
1063
- object_=_response.json(),
1064
- ),
1065
- )
1066
- )
1067
- _response_json = _response.json()
1068
- except JSONDecodeError:
1069
- raise ApiError(status_code=_response.status_code, body=_response.text)
1070
- raise ApiError(status_code=_response.status_code, body=_response_json)
604
+ _response = await self._raw_client.remove_bucket(group_id, bucket_id, request_options=request_options)
605
+ return _response.data