bluehive 0.1.0a20__py3-none-any.whl → 0.1.0a22__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.
- bluehive/_base_client.py +140 -11
- bluehive/_client.py +401 -93
- bluehive/_models.py +16 -1
- bluehive/_types.py +9 -0
- bluehive/_version.py +1 -1
- bluehive/types/database_check_health_response.py +2 -0
- bluehive/types/employee_create_response.py +2 -0
- bluehive/types/employee_delete_response.py +2 -0
- bluehive/types/employee_link_user_response.py +2 -0
- bluehive/types/employee_list_response.py +6 -0
- bluehive/types/employee_retrieve_response.py +6 -0
- bluehive/types/employee_unlink_user_response.py +2 -0
- bluehive/types/employee_update_response.py +2 -0
- bluehive/types/hl7_send_results_params.py +2 -0
- {bluehive-0.1.0a20.dist-info → bluehive-0.1.0a22.dist-info}/METADATA +12 -3
- {bluehive-0.1.0a20.dist-info → bluehive-0.1.0a22.dist-info}/RECORD +18 -18
- {bluehive-0.1.0a20.dist-info → bluehive-0.1.0a22.dist-info}/licenses/LICENSE +1 -1
- {bluehive-0.1.0a20.dist-info → bluehive-0.1.0a22.dist-info}/WHEEL +0 -0
bluehive/_base_client.py
CHANGED
|
@@ -9,6 +9,7 @@ import asyncio
|
|
|
9
9
|
import inspect
|
|
10
10
|
import logging
|
|
11
11
|
import platform
|
|
12
|
+
import warnings
|
|
12
13
|
import email.utils
|
|
13
14
|
from types import TracebackType
|
|
14
15
|
from random import random
|
|
@@ -51,9 +52,11 @@ from ._types import (
|
|
|
51
52
|
ResponseT,
|
|
52
53
|
AnyMapping,
|
|
53
54
|
PostParser,
|
|
55
|
+
BinaryTypes,
|
|
54
56
|
RequestFiles,
|
|
55
57
|
HttpxSendArgs,
|
|
56
58
|
RequestOptions,
|
|
59
|
+
AsyncBinaryTypes,
|
|
57
60
|
HttpxRequestFiles,
|
|
58
61
|
ModelBuilderProtocol,
|
|
59
62
|
not_given,
|
|
@@ -477,8 +480,19 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
477
480
|
retries_taken: int = 0,
|
|
478
481
|
) -> httpx.Request:
|
|
479
482
|
if log.isEnabledFor(logging.DEBUG):
|
|
480
|
-
log.debug(
|
|
481
|
-
|
|
483
|
+
log.debug(
|
|
484
|
+
"Request options: %s",
|
|
485
|
+
model_dump(
|
|
486
|
+
options,
|
|
487
|
+
exclude_unset=True,
|
|
488
|
+
# Pydantic v1 can't dump every type we support in content, so we exclude it for now.
|
|
489
|
+
exclude={
|
|
490
|
+
"content",
|
|
491
|
+
}
|
|
492
|
+
if PYDANTIC_V1
|
|
493
|
+
else {},
|
|
494
|
+
),
|
|
495
|
+
)
|
|
482
496
|
kwargs: dict[str, Any] = {}
|
|
483
497
|
|
|
484
498
|
json_data = options.json_data
|
|
@@ -532,7 +546,13 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
|
|
|
532
546
|
is_body_allowed = options.method.lower() != "get"
|
|
533
547
|
|
|
534
548
|
if is_body_allowed:
|
|
535
|
-
if
|
|
549
|
+
if options.content is not None and json_data is not None:
|
|
550
|
+
raise TypeError("Passing both `content` and `json_data` is not supported")
|
|
551
|
+
if options.content is not None and files is not None:
|
|
552
|
+
raise TypeError("Passing both `content` and `files` is not supported")
|
|
553
|
+
if options.content is not None:
|
|
554
|
+
kwargs["content"] = options.content
|
|
555
|
+
elif isinstance(json_data, bytes):
|
|
536
556
|
kwargs["content"] = json_data
|
|
537
557
|
else:
|
|
538
558
|
kwargs["json"] = json_data if is_given(json_data) else None
|
|
@@ -1194,6 +1214,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1194
1214
|
*,
|
|
1195
1215
|
cast_to: Type[ResponseT],
|
|
1196
1216
|
body: Body | None = None,
|
|
1217
|
+
content: BinaryTypes | None = None,
|
|
1197
1218
|
options: RequestOptions = {},
|
|
1198
1219
|
files: RequestFiles | None = None,
|
|
1199
1220
|
stream: Literal[False] = False,
|
|
@@ -1206,6 +1227,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1206
1227
|
*,
|
|
1207
1228
|
cast_to: Type[ResponseT],
|
|
1208
1229
|
body: Body | None = None,
|
|
1230
|
+
content: BinaryTypes | None = None,
|
|
1209
1231
|
options: RequestOptions = {},
|
|
1210
1232
|
files: RequestFiles | None = None,
|
|
1211
1233
|
stream: Literal[True],
|
|
@@ -1219,6 +1241,7 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1219
1241
|
*,
|
|
1220
1242
|
cast_to: Type[ResponseT],
|
|
1221
1243
|
body: Body | None = None,
|
|
1244
|
+
content: BinaryTypes | None = None,
|
|
1222
1245
|
options: RequestOptions = {},
|
|
1223
1246
|
files: RequestFiles | None = None,
|
|
1224
1247
|
stream: bool,
|
|
@@ -1231,13 +1254,25 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1231
1254
|
*,
|
|
1232
1255
|
cast_to: Type[ResponseT],
|
|
1233
1256
|
body: Body | None = None,
|
|
1257
|
+
content: BinaryTypes | None = None,
|
|
1234
1258
|
options: RequestOptions = {},
|
|
1235
1259
|
files: RequestFiles | None = None,
|
|
1236
1260
|
stream: bool = False,
|
|
1237
1261
|
stream_cls: type[_StreamT] | None = None,
|
|
1238
1262
|
) -> ResponseT | _StreamT:
|
|
1263
|
+
if body is not None and content is not None:
|
|
1264
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1265
|
+
if files is not None and content is not None:
|
|
1266
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1267
|
+
if isinstance(body, bytes):
|
|
1268
|
+
warnings.warn(
|
|
1269
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1270
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1271
|
+
DeprecationWarning,
|
|
1272
|
+
stacklevel=2,
|
|
1273
|
+
)
|
|
1239
1274
|
opts = FinalRequestOptions.construct(
|
|
1240
|
-
method="post", url=path, json_data=body, files=to_httpx_files(files), **options
|
|
1275
|
+
method="post", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1241
1276
|
)
|
|
1242
1277
|
return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))
|
|
1243
1278
|
|
|
@@ -1247,9 +1282,24 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1247
1282
|
*,
|
|
1248
1283
|
cast_to: Type[ResponseT],
|
|
1249
1284
|
body: Body | None = None,
|
|
1285
|
+
content: BinaryTypes | None = None,
|
|
1286
|
+
files: RequestFiles | None = None,
|
|
1250
1287
|
options: RequestOptions = {},
|
|
1251
1288
|
) -> ResponseT:
|
|
1252
|
-
|
|
1289
|
+
if body is not None and content is not None:
|
|
1290
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1291
|
+
if files is not None and content is not None:
|
|
1292
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1293
|
+
if isinstance(body, bytes):
|
|
1294
|
+
warnings.warn(
|
|
1295
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1296
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1297
|
+
DeprecationWarning,
|
|
1298
|
+
stacklevel=2,
|
|
1299
|
+
)
|
|
1300
|
+
opts = FinalRequestOptions.construct(
|
|
1301
|
+
method="patch", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1302
|
+
)
|
|
1253
1303
|
return self.request(cast_to, opts)
|
|
1254
1304
|
|
|
1255
1305
|
def put(
|
|
@@ -1258,11 +1308,23 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1258
1308
|
*,
|
|
1259
1309
|
cast_to: Type[ResponseT],
|
|
1260
1310
|
body: Body | None = None,
|
|
1311
|
+
content: BinaryTypes | None = None,
|
|
1261
1312
|
files: RequestFiles | None = None,
|
|
1262
1313
|
options: RequestOptions = {},
|
|
1263
1314
|
) -> ResponseT:
|
|
1315
|
+
if body is not None and content is not None:
|
|
1316
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1317
|
+
if files is not None and content is not None:
|
|
1318
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1319
|
+
if isinstance(body, bytes):
|
|
1320
|
+
warnings.warn(
|
|
1321
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1322
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1323
|
+
DeprecationWarning,
|
|
1324
|
+
stacklevel=2,
|
|
1325
|
+
)
|
|
1264
1326
|
opts = FinalRequestOptions.construct(
|
|
1265
|
-
method="put", url=path, json_data=body, files=to_httpx_files(files), **options
|
|
1327
|
+
method="put", url=path, json_data=body, content=content, files=to_httpx_files(files), **options
|
|
1266
1328
|
)
|
|
1267
1329
|
return self.request(cast_to, opts)
|
|
1268
1330
|
|
|
@@ -1272,9 +1334,19 @@ class SyncAPIClient(BaseClient[httpx.Client, Stream[Any]]):
|
|
|
1272
1334
|
*,
|
|
1273
1335
|
cast_to: Type[ResponseT],
|
|
1274
1336
|
body: Body | None = None,
|
|
1337
|
+
content: BinaryTypes | None = None,
|
|
1275
1338
|
options: RequestOptions = {},
|
|
1276
1339
|
) -> ResponseT:
|
|
1277
|
-
|
|
1340
|
+
if body is not None and content is not None:
|
|
1341
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1342
|
+
if isinstance(body, bytes):
|
|
1343
|
+
warnings.warn(
|
|
1344
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1345
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1346
|
+
DeprecationWarning,
|
|
1347
|
+
stacklevel=2,
|
|
1348
|
+
)
|
|
1349
|
+
opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
|
|
1278
1350
|
return self.request(cast_to, opts)
|
|
1279
1351
|
|
|
1280
1352
|
def get_api_list(
|
|
@@ -1714,6 +1786,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1714
1786
|
*,
|
|
1715
1787
|
cast_to: Type[ResponseT],
|
|
1716
1788
|
body: Body | None = None,
|
|
1789
|
+
content: AsyncBinaryTypes | None = None,
|
|
1717
1790
|
files: RequestFiles | None = None,
|
|
1718
1791
|
options: RequestOptions = {},
|
|
1719
1792
|
stream: Literal[False] = False,
|
|
@@ -1726,6 +1799,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1726
1799
|
*,
|
|
1727
1800
|
cast_to: Type[ResponseT],
|
|
1728
1801
|
body: Body | None = None,
|
|
1802
|
+
content: AsyncBinaryTypes | None = None,
|
|
1729
1803
|
files: RequestFiles | None = None,
|
|
1730
1804
|
options: RequestOptions = {},
|
|
1731
1805
|
stream: Literal[True],
|
|
@@ -1739,6 +1813,7 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1739
1813
|
*,
|
|
1740
1814
|
cast_to: Type[ResponseT],
|
|
1741
1815
|
body: Body | None = None,
|
|
1816
|
+
content: AsyncBinaryTypes | None = None,
|
|
1742
1817
|
files: RequestFiles | None = None,
|
|
1743
1818
|
options: RequestOptions = {},
|
|
1744
1819
|
stream: bool,
|
|
@@ -1751,13 +1826,25 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1751
1826
|
*,
|
|
1752
1827
|
cast_to: Type[ResponseT],
|
|
1753
1828
|
body: Body | None = None,
|
|
1829
|
+
content: AsyncBinaryTypes | None = None,
|
|
1754
1830
|
files: RequestFiles | None = None,
|
|
1755
1831
|
options: RequestOptions = {},
|
|
1756
1832
|
stream: bool = False,
|
|
1757
1833
|
stream_cls: type[_AsyncStreamT] | None = None,
|
|
1758
1834
|
) -> ResponseT | _AsyncStreamT:
|
|
1835
|
+
if body is not None and content is not None:
|
|
1836
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1837
|
+
if files is not None and content is not None:
|
|
1838
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1839
|
+
if isinstance(body, bytes):
|
|
1840
|
+
warnings.warn(
|
|
1841
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1842
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1843
|
+
DeprecationWarning,
|
|
1844
|
+
stacklevel=2,
|
|
1845
|
+
)
|
|
1759
1846
|
opts = FinalRequestOptions.construct(
|
|
1760
|
-
method="post", url=path, json_data=body, files=await async_to_httpx_files(files), **options
|
|
1847
|
+
method="post", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
|
|
1761
1848
|
)
|
|
1762
1849
|
return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)
|
|
1763
1850
|
|
|
@@ -1767,9 +1854,29 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1767
1854
|
*,
|
|
1768
1855
|
cast_to: Type[ResponseT],
|
|
1769
1856
|
body: Body | None = None,
|
|
1857
|
+
content: AsyncBinaryTypes | None = None,
|
|
1858
|
+
files: RequestFiles | None = None,
|
|
1770
1859
|
options: RequestOptions = {},
|
|
1771
1860
|
) -> ResponseT:
|
|
1772
|
-
|
|
1861
|
+
if body is not None and content is not None:
|
|
1862
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1863
|
+
if files is not None and content is not None:
|
|
1864
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1865
|
+
if isinstance(body, bytes):
|
|
1866
|
+
warnings.warn(
|
|
1867
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1868
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1869
|
+
DeprecationWarning,
|
|
1870
|
+
stacklevel=2,
|
|
1871
|
+
)
|
|
1872
|
+
opts = FinalRequestOptions.construct(
|
|
1873
|
+
method="patch",
|
|
1874
|
+
url=path,
|
|
1875
|
+
json_data=body,
|
|
1876
|
+
content=content,
|
|
1877
|
+
files=await async_to_httpx_files(files),
|
|
1878
|
+
**options,
|
|
1879
|
+
)
|
|
1773
1880
|
return await self.request(cast_to, opts)
|
|
1774
1881
|
|
|
1775
1882
|
async def put(
|
|
@@ -1778,11 +1885,23 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1778
1885
|
*,
|
|
1779
1886
|
cast_to: Type[ResponseT],
|
|
1780
1887
|
body: Body | None = None,
|
|
1888
|
+
content: AsyncBinaryTypes | None = None,
|
|
1781
1889
|
files: RequestFiles | None = None,
|
|
1782
1890
|
options: RequestOptions = {},
|
|
1783
1891
|
) -> ResponseT:
|
|
1892
|
+
if body is not None and content is not None:
|
|
1893
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1894
|
+
if files is not None and content is not None:
|
|
1895
|
+
raise TypeError("Passing both `files` and `content` is not supported")
|
|
1896
|
+
if isinstance(body, bytes):
|
|
1897
|
+
warnings.warn(
|
|
1898
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1899
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1900
|
+
DeprecationWarning,
|
|
1901
|
+
stacklevel=2,
|
|
1902
|
+
)
|
|
1784
1903
|
opts = FinalRequestOptions.construct(
|
|
1785
|
-
method="put", url=path, json_data=body, files=await async_to_httpx_files(files), **options
|
|
1904
|
+
method="put", url=path, json_data=body, content=content, files=await async_to_httpx_files(files), **options
|
|
1786
1905
|
)
|
|
1787
1906
|
return await self.request(cast_to, opts)
|
|
1788
1907
|
|
|
@@ -1792,9 +1911,19 @@ class AsyncAPIClient(BaseClient[httpx.AsyncClient, AsyncStream[Any]]):
|
|
|
1792
1911
|
*,
|
|
1793
1912
|
cast_to: Type[ResponseT],
|
|
1794
1913
|
body: Body | None = None,
|
|
1914
|
+
content: AsyncBinaryTypes | None = None,
|
|
1795
1915
|
options: RequestOptions = {},
|
|
1796
1916
|
) -> ResponseT:
|
|
1797
|
-
|
|
1917
|
+
if body is not None and content is not None:
|
|
1918
|
+
raise TypeError("Passing both `body` and `content` is not supported")
|
|
1919
|
+
if isinstance(body, bytes):
|
|
1920
|
+
warnings.warn(
|
|
1921
|
+
"Passing raw bytes as `body` is deprecated and will be removed in a future version. "
|
|
1922
|
+
"Please pass raw bytes via the `content` parameter instead.",
|
|
1923
|
+
DeprecationWarning,
|
|
1924
|
+
stacklevel=2,
|
|
1925
|
+
)
|
|
1926
|
+
opts = FinalRequestOptions.construct(method="delete", url=path, json_data=body, content=content, **options)
|
|
1798
1927
|
return await self.request(cast_to, opts)
|
|
1799
1928
|
|
|
1800
1929
|
def get_api_list(
|
bluehive/_client.py
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import os
|
|
6
|
-
from typing import Any, Mapping
|
|
6
|
+
from typing import TYPE_CHECKING, Any, Mapping
|
|
7
7
|
from typing_extensions import Self, override
|
|
8
8
|
|
|
9
9
|
import httpx
|
|
@@ -20,8 +20,8 @@ from ._types import (
|
|
|
20
20
|
not_given,
|
|
21
21
|
)
|
|
22
22
|
from ._utils import is_given, get_async_library
|
|
23
|
+
from ._compat import cached_property
|
|
23
24
|
from ._version import __version__
|
|
24
|
-
from .resources import fax, hl7, health, orders, version, database, employees, providers, integrations
|
|
25
25
|
from ._streaming import Stream as Stream, AsyncStream as AsyncStream
|
|
26
26
|
from ._exceptions import BlueHiveError, APIStatusError
|
|
27
27
|
from ._base_client import (
|
|
@@ -29,7 +29,19 @@ from ._base_client import (
|
|
|
29
29
|
SyncAPIClient,
|
|
30
30
|
AsyncAPIClient,
|
|
31
31
|
)
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
if TYPE_CHECKING:
|
|
34
|
+
from .resources import fax, hl7, health, orders, version, database, employees, employers, providers, integrations
|
|
35
|
+
from .resources.fax import FaxResource, AsyncFaxResource
|
|
36
|
+
from .resources.hl7 import Hl7Resource, AsyncHl7Resource
|
|
37
|
+
from .resources.health import HealthResource, AsyncHealthResource
|
|
38
|
+
from .resources.orders import OrdersResource, AsyncOrdersResource
|
|
39
|
+
from .resources.version import VersionResource, AsyncVersionResource
|
|
40
|
+
from .resources.database import DatabaseResource, AsyncDatabaseResource
|
|
41
|
+
from .resources.employees import EmployeesResource, AsyncEmployeesResource
|
|
42
|
+
from .resources.providers import ProvidersResource, AsyncProvidersResource
|
|
43
|
+
from .resources.integrations import IntegrationsResource, AsyncIntegrationsResource
|
|
44
|
+
from .resources.employers.employers import EmployersResource, AsyncEmployersResource
|
|
33
45
|
|
|
34
46
|
__all__ = [
|
|
35
47
|
"Timeout",
|
|
@@ -44,19 +56,6 @@ __all__ = [
|
|
|
44
56
|
|
|
45
57
|
|
|
46
58
|
class BlueHive(SyncAPIClient):
|
|
47
|
-
health: health.HealthResource
|
|
48
|
-
version: version.VersionResource
|
|
49
|
-
providers: providers.ProvidersResource
|
|
50
|
-
database: database.DatabaseResource
|
|
51
|
-
fax: fax.FaxResource
|
|
52
|
-
employers: employers.EmployersResource
|
|
53
|
-
hl7: hl7.Hl7Resource
|
|
54
|
-
orders: orders.OrdersResource
|
|
55
|
-
employees: employees.EmployeesResource
|
|
56
|
-
integrations: integrations.IntegrationsResource
|
|
57
|
-
with_raw_response: BlueHiveWithRawResponse
|
|
58
|
-
with_streaming_response: BlueHiveWithStreamedResponse
|
|
59
|
-
|
|
60
59
|
# client options
|
|
61
60
|
api_key: str
|
|
62
61
|
|
|
@@ -111,18 +110,73 @@ class BlueHive(SyncAPIClient):
|
|
|
111
110
|
_strict_response_validation=_strict_response_validation,
|
|
112
111
|
)
|
|
113
112
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
113
|
+
@cached_property
|
|
114
|
+
def health(self) -> HealthResource:
|
|
115
|
+
from .resources.health import HealthResource
|
|
116
|
+
|
|
117
|
+
return HealthResource(self)
|
|
118
|
+
|
|
119
|
+
@cached_property
|
|
120
|
+
def version(self) -> VersionResource:
|
|
121
|
+
from .resources.version import VersionResource
|
|
122
|
+
|
|
123
|
+
return VersionResource(self)
|
|
124
|
+
|
|
125
|
+
@cached_property
|
|
126
|
+
def providers(self) -> ProvidersResource:
|
|
127
|
+
from .resources.providers import ProvidersResource
|
|
128
|
+
|
|
129
|
+
return ProvidersResource(self)
|
|
130
|
+
|
|
131
|
+
@cached_property
|
|
132
|
+
def database(self) -> DatabaseResource:
|
|
133
|
+
from .resources.database import DatabaseResource
|
|
134
|
+
|
|
135
|
+
return DatabaseResource(self)
|
|
136
|
+
|
|
137
|
+
@cached_property
|
|
138
|
+
def fax(self) -> FaxResource:
|
|
139
|
+
from .resources.fax import FaxResource
|
|
140
|
+
|
|
141
|
+
return FaxResource(self)
|
|
142
|
+
|
|
143
|
+
@cached_property
|
|
144
|
+
def employers(self) -> EmployersResource:
|
|
145
|
+
from .resources.employers import EmployersResource
|
|
146
|
+
|
|
147
|
+
return EmployersResource(self)
|
|
148
|
+
|
|
149
|
+
@cached_property
|
|
150
|
+
def hl7(self) -> Hl7Resource:
|
|
151
|
+
from .resources.hl7 import Hl7Resource
|
|
152
|
+
|
|
153
|
+
return Hl7Resource(self)
|
|
154
|
+
|
|
155
|
+
@cached_property
|
|
156
|
+
def orders(self) -> OrdersResource:
|
|
157
|
+
from .resources.orders import OrdersResource
|
|
158
|
+
|
|
159
|
+
return OrdersResource(self)
|
|
160
|
+
|
|
161
|
+
@cached_property
|
|
162
|
+
def employees(self) -> EmployeesResource:
|
|
163
|
+
from .resources.employees import EmployeesResource
|
|
164
|
+
|
|
165
|
+
return EmployeesResource(self)
|
|
166
|
+
|
|
167
|
+
@cached_property
|
|
168
|
+
def integrations(self) -> IntegrationsResource:
|
|
169
|
+
from .resources.integrations import IntegrationsResource
|
|
170
|
+
|
|
171
|
+
return IntegrationsResource(self)
|
|
172
|
+
|
|
173
|
+
@cached_property
|
|
174
|
+
def with_raw_response(self) -> BlueHiveWithRawResponse:
|
|
175
|
+
return BlueHiveWithRawResponse(self)
|
|
176
|
+
|
|
177
|
+
@cached_property
|
|
178
|
+
def with_streaming_response(self) -> BlueHiveWithStreamedResponse:
|
|
179
|
+
return BlueHiveWithStreamedResponse(self)
|
|
126
180
|
|
|
127
181
|
@property
|
|
128
182
|
@override
|
|
@@ -230,19 +284,6 @@ class BlueHive(SyncAPIClient):
|
|
|
230
284
|
|
|
231
285
|
|
|
232
286
|
class AsyncBlueHive(AsyncAPIClient):
|
|
233
|
-
health: health.AsyncHealthResource
|
|
234
|
-
version: version.AsyncVersionResource
|
|
235
|
-
providers: providers.AsyncProvidersResource
|
|
236
|
-
database: database.AsyncDatabaseResource
|
|
237
|
-
fax: fax.AsyncFaxResource
|
|
238
|
-
employers: employers.AsyncEmployersResource
|
|
239
|
-
hl7: hl7.AsyncHl7Resource
|
|
240
|
-
orders: orders.AsyncOrdersResource
|
|
241
|
-
employees: employees.AsyncEmployeesResource
|
|
242
|
-
integrations: integrations.AsyncIntegrationsResource
|
|
243
|
-
with_raw_response: AsyncBlueHiveWithRawResponse
|
|
244
|
-
with_streaming_response: AsyncBlueHiveWithStreamedResponse
|
|
245
|
-
|
|
246
287
|
# client options
|
|
247
288
|
api_key: str
|
|
248
289
|
|
|
@@ -297,18 +338,73 @@ class AsyncBlueHive(AsyncAPIClient):
|
|
|
297
338
|
_strict_response_validation=_strict_response_validation,
|
|
298
339
|
)
|
|
299
340
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
341
|
+
@cached_property
|
|
342
|
+
def health(self) -> AsyncHealthResource:
|
|
343
|
+
from .resources.health import AsyncHealthResource
|
|
344
|
+
|
|
345
|
+
return AsyncHealthResource(self)
|
|
346
|
+
|
|
347
|
+
@cached_property
|
|
348
|
+
def version(self) -> AsyncVersionResource:
|
|
349
|
+
from .resources.version import AsyncVersionResource
|
|
350
|
+
|
|
351
|
+
return AsyncVersionResource(self)
|
|
352
|
+
|
|
353
|
+
@cached_property
|
|
354
|
+
def providers(self) -> AsyncProvidersResource:
|
|
355
|
+
from .resources.providers import AsyncProvidersResource
|
|
356
|
+
|
|
357
|
+
return AsyncProvidersResource(self)
|
|
358
|
+
|
|
359
|
+
@cached_property
|
|
360
|
+
def database(self) -> AsyncDatabaseResource:
|
|
361
|
+
from .resources.database import AsyncDatabaseResource
|
|
362
|
+
|
|
363
|
+
return AsyncDatabaseResource(self)
|
|
364
|
+
|
|
365
|
+
@cached_property
|
|
366
|
+
def fax(self) -> AsyncFaxResource:
|
|
367
|
+
from .resources.fax import AsyncFaxResource
|
|
368
|
+
|
|
369
|
+
return AsyncFaxResource(self)
|
|
370
|
+
|
|
371
|
+
@cached_property
|
|
372
|
+
def employers(self) -> AsyncEmployersResource:
|
|
373
|
+
from .resources.employers import AsyncEmployersResource
|
|
374
|
+
|
|
375
|
+
return AsyncEmployersResource(self)
|
|
376
|
+
|
|
377
|
+
@cached_property
|
|
378
|
+
def hl7(self) -> AsyncHl7Resource:
|
|
379
|
+
from .resources.hl7 import AsyncHl7Resource
|
|
380
|
+
|
|
381
|
+
return AsyncHl7Resource(self)
|
|
382
|
+
|
|
383
|
+
@cached_property
|
|
384
|
+
def orders(self) -> AsyncOrdersResource:
|
|
385
|
+
from .resources.orders import AsyncOrdersResource
|
|
386
|
+
|
|
387
|
+
return AsyncOrdersResource(self)
|
|
388
|
+
|
|
389
|
+
@cached_property
|
|
390
|
+
def employees(self) -> AsyncEmployeesResource:
|
|
391
|
+
from .resources.employees import AsyncEmployeesResource
|
|
392
|
+
|
|
393
|
+
return AsyncEmployeesResource(self)
|
|
394
|
+
|
|
395
|
+
@cached_property
|
|
396
|
+
def integrations(self) -> AsyncIntegrationsResource:
|
|
397
|
+
from .resources.integrations import AsyncIntegrationsResource
|
|
398
|
+
|
|
399
|
+
return AsyncIntegrationsResource(self)
|
|
400
|
+
|
|
401
|
+
@cached_property
|
|
402
|
+
def with_raw_response(self) -> AsyncBlueHiveWithRawResponse:
|
|
403
|
+
return AsyncBlueHiveWithRawResponse(self)
|
|
404
|
+
|
|
405
|
+
@cached_property
|
|
406
|
+
def with_streaming_response(self) -> AsyncBlueHiveWithStreamedResponse:
|
|
407
|
+
return AsyncBlueHiveWithStreamedResponse(self)
|
|
312
408
|
|
|
313
409
|
@property
|
|
314
410
|
@override
|
|
@@ -416,59 +512,271 @@ class AsyncBlueHive(AsyncAPIClient):
|
|
|
416
512
|
|
|
417
513
|
|
|
418
514
|
class BlueHiveWithRawResponse:
|
|
515
|
+
_client: BlueHive
|
|
516
|
+
|
|
419
517
|
def __init__(self, client: BlueHive) -> None:
|
|
420
|
-
self.
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
self.
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
518
|
+
self._client = client
|
|
519
|
+
|
|
520
|
+
@cached_property
|
|
521
|
+
def health(self) -> health.HealthResourceWithRawResponse:
|
|
522
|
+
from .resources.health import HealthResourceWithRawResponse
|
|
523
|
+
|
|
524
|
+
return HealthResourceWithRawResponse(self._client.health)
|
|
525
|
+
|
|
526
|
+
@cached_property
|
|
527
|
+
def version(self) -> version.VersionResourceWithRawResponse:
|
|
528
|
+
from .resources.version import VersionResourceWithRawResponse
|
|
529
|
+
|
|
530
|
+
return VersionResourceWithRawResponse(self._client.version)
|
|
531
|
+
|
|
532
|
+
@cached_property
|
|
533
|
+
def providers(self) -> providers.ProvidersResourceWithRawResponse:
|
|
534
|
+
from .resources.providers import ProvidersResourceWithRawResponse
|
|
535
|
+
|
|
536
|
+
return ProvidersResourceWithRawResponse(self._client.providers)
|
|
537
|
+
|
|
538
|
+
@cached_property
|
|
539
|
+
def database(self) -> database.DatabaseResourceWithRawResponse:
|
|
540
|
+
from .resources.database import DatabaseResourceWithRawResponse
|
|
541
|
+
|
|
542
|
+
return DatabaseResourceWithRawResponse(self._client.database)
|
|
543
|
+
|
|
544
|
+
@cached_property
|
|
545
|
+
def fax(self) -> fax.FaxResourceWithRawResponse:
|
|
546
|
+
from .resources.fax import FaxResourceWithRawResponse
|
|
547
|
+
|
|
548
|
+
return FaxResourceWithRawResponse(self._client.fax)
|
|
549
|
+
|
|
550
|
+
@cached_property
|
|
551
|
+
def employers(self) -> employers.EmployersResourceWithRawResponse:
|
|
552
|
+
from .resources.employers import EmployersResourceWithRawResponse
|
|
553
|
+
|
|
554
|
+
return EmployersResourceWithRawResponse(self._client.employers)
|
|
555
|
+
|
|
556
|
+
@cached_property
|
|
557
|
+
def hl7(self) -> hl7.Hl7ResourceWithRawResponse:
|
|
558
|
+
from .resources.hl7 import Hl7ResourceWithRawResponse
|
|
559
|
+
|
|
560
|
+
return Hl7ResourceWithRawResponse(self._client.hl7)
|
|
561
|
+
|
|
562
|
+
@cached_property
|
|
563
|
+
def orders(self) -> orders.OrdersResourceWithRawResponse:
|
|
564
|
+
from .resources.orders import OrdersResourceWithRawResponse
|
|
565
|
+
|
|
566
|
+
return OrdersResourceWithRawResponse(self._client.orders)
|
|
567
|
+
|
|
568
|
+
@cached_property
|
|
569
|
+
def employees(self) -> employees.EmployeesResourceWithRawResponse:
|
|
570
|
+
from .resources.employees import EmployeesResourceWithRawResponse
|
|
571
|
+
|
|
572
|
+
return EmployeesResourceWithRawResponse(self._client.employees)
|
|
573
|
+
|
|
574
|
+
@cached_property
|
|
575
|
+
def integrations(self) -> integrations.IntegrationsResourceWithRawResponse:
|
|
576
|
+
from .resources.integrations import IntegrationsResourceWithRawResponse
|
|
577
|
+
|
|
578
|
+
return IntegrationsResourceWithRawResponse(self._client.integrations)
|
|
430
579
|
|
|
431
580
|
|
|
432
581
|
class AsyncBlueHiveWithRawResponse:
|
|
582
|
+
_client: AsyncBlueHive
|
|
583
|
+
|
|
433
584
|
def __init__(self, client: AsyncBlueHive) -> None:
|
|
434
|
-
self.
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
self.
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
585
|
+
self._client = client
|
|
586
|
+
|
|
587
|
+
@cached_property
|
|
588
|
+
def health(self) -> health.AsyncHealthResourceWithRawResponse:
|
|
589
|
+
from .resources.health import AsyncHealthResourceWithRawResponse
|
|
590
|
+
|
|
591
|
+
return AsyncHealthResourceWithRawResponse(self._client.health)
|
|
592
|
+
|
|
593
|
+
@cached_property
|
|
594
|
+
def version(self) -> version.AsyncVersionResourceWithRawResponse:
|
|
595
|
+
from .resources.version import AsyncVersionResourceWithRawResponse
|
|
596
|
+
|
|
597
|
+
return AsyncVersionResourceWithRawResponse(self._client.version)
|
|
598
|
+
|
|
599
|
+
@cached_property
|
|
600
|
+
def providers(self) -> providers.AsyncProvidersResourceWithRawResponse:
|
|
601
|
+
from .resources.providers import AsyncProvidersResourceWithRawResponse
|
|
602
|
+
|
|
603
|
+
return AsyncProvidersResourceWithRawResponse(self._client.providers)
|
|
604
|
+
|
|
605
|
+
@cached_property
|
|
606
|
+
def database(self) -> database.AsyncDatabaseResourceWithRawResponse:
|
|
607
|
+
from .resources.database import AsyncDatabaseResourceWithRawResponse
|
|
608
|
+
|
|
609
|
+
return AsyncDatabaseResourceWithRawResponse(self._client.database)
|
|
610
|
+
|
|
611
|
+
@cached_property
|
|
612
|
+
def fax(self) -> fax.AsyncFaxResourceWithRawResponse:
|
|
613
|
+
from .resources.fax import AsyncFaxResourceWithRawResponse
|
|
614
|
+
|
|
615
|
+
return AsyncFaxResourceWithRawResponse(self._client.fax)
|
|
616
|
+
|
|
617
|
+
@cached_property
|
|
618
|
+
def employers(self) -> employers.AsyncEmployersResourceWithRawResponse:
|
|
619
|
+
from .resources.employers import AsyncEmployersResourceWithRawResponse
|
|
620
|
+
|
|
621
|
+
return AsyncEmployersResourceWithRawResponse(self._client.employers)
|
|
622
|
+
|
|
623
|
+
@cached_property
|
|
624
|
+
def hl7(self) -> hl7.AsyncHl7ResourceWithRawResponse:
|
|
625
|
+
from .resources.hl7 import AsyncHl7ResourceWithRawResponse
|
|
626
|
+
|
|
627
|
+
return AsyncHl7ResourceWithRawResponse(self._client.hl7)
|
|
628
|
+
|
|
629
|
+
@cached_property
|
|
630
|
+
def orders(self) -> orders.AsyncOrdersResourceWithRawResponse:
|
|
631
|
+
from .resources.orders import AsyncOrdersResourceWithRawResponse
|
|
632
|
+
|
|
633
|
+
return AsyncOrdersResourceWithRawResponse(self._client.orders)
|
|
634
|
+
|
|
635
|
+
@cached_property
|
|
636
|
+
def employees(self) -> employees.AsyncEmployeesResourceWithRawResponse:
|
|
637
|
+
from .resources.employees import AsyncEmployeesResourceWithRawResponse
|
|
638
|
+
|
|
639
|
+
return AsyncEmployeesResourceWithRawResponse(self._client.employees)
|
|
640
|
+
|
|
641
|
+
@cached_property
|
|
642
|
+
def integrations(self) -> integrations.AsyncIntegrationsResourceWithRawResponse:
|
|
643
|
+
from .resources.integrations import AsyncIntegrationsResourceWithRawResponse
|
|
644
|
+
|
|
645
|
+
return AsyncIntegrationsResourceWithRawResponse(self._client.integrations)
|
|
444
646
|
|
|
445
647
|
|
|
446
648
|
class BlueHiveWithStreamedResponse:
|
|
649
|
+
_client: BlueHive
|
|
650
|
+
|
|
447
651
|
def __init__(self, client: BlueHive) -> None:
|
|
448
|
-
self.
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
self.
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
652
|
+
self._client = client
|
|
653
|
+
|
|
654
|
+
@cached_property
|
|
655
|
+
def health(self) -> health.HealthResourceWithStreamingResponse:
|
|
656
|
+
from .resources.health import HealthResourceWithStreamingResponse
|
|
657
|
+
|
|
658
|
+
return HealthResourceWithStreamingResponse(self._client.health)
|
|
659
|
+
|
|
660
|
+
@cached_property
|
|
661
|
+
def version(self) -> version.VersionResourceWithStreamingResponse:
|
|
662
|
+
from .resources.version import VersionResourceWithStreamingResponse
|
|
663
|
+
|
|
664
|
+
return VersionResourceWithStreamingResponse(self._client.version)
|
|
665
|
+
|
|
666
|
+
@cached_property
|
|
667
|
+
def providers(self) -> providers.ProvidersResourceWithStreamingResponse:
|
|
668
|
+
from .resources.providers import ProvidersResourceWithStreamingResponse
|
|
669
|
+
|
|
670
|
+
return ProvidersResourceWithStreamingResponse(self._client.providers)
|
|
671
|
+
|
|
672
|
+
@cached_property
|
|
673
|
+
def database(self) -> database.DatabaseResourceWithStreamingResponse:
|
|
674
|
+
from .resources.database import DatabaseResourceWithStreamingResponse
|
|
675
|
+
|
|
676
|
+
return DatabaseResourceWithStreamingResponse(self._client.database)
|
|
677
|
+
|
|
678
|
+
@cached_property
|
|
679
|
+
def fax(self) -> fax.FaxResourceWithStreamingResponse:
|
|
680
|
+
from .resources.fax import FaxResourceWithStreamingResponse
|
|
681
|
+
|
|
682
|
+
return FaxResourceWithStreamingResponse(self._client.fax)
|
|
683
|
+
|
|
684
|
+
@cached_property
|
|
685
|
+
def employers(self) -> employers.EmployersResourceWithStreamingResponse:
|
|
686
|
+
from .resources.employers import EmployersResourceWithStreamingResponse
|
|
687
|
+
|
|
688
|
+
return EmployersResourceWithStreamingResponse(self._client.employers)
|
|
689
|
+
|
|
690
|
+
@cached_property
|
|
691
|
+
def hl7(self) -> hl7.Hl7ResourceWithStreamingResponse:
|
|
692
|
+
from .resources.hl7 import Hl7ResourceWithStreamingResponse
|
|
693
|
+
|
|
694
|
+
return Hl7ResourceWithStreamingResponse(self._client.hl7)
|
|
695
|
+
|
|
696
|
+
@cached_property
|
|
697
|
+
def orders(self) -> orders.OrdersResourceWithStreamingResponse:
|
|
698
|
+
from .resources.orders import OrdersResourceWithStreamingResponse
|
|
699
|
+
|
|
700
|
+
return OrdersResourceWithStreamingResponse(self._client.orders)
|
|
701
|
+
|
|
702
|
+
@cached_property
|
|
703
|
+
def employees(self) -> employees.EmployeesResourceWithStreamingResponse:
|
|
704
|
+
from .resources.employees import EmployeesResourceWithStreamingResponse
|
|
705
|
+
|
|
706
|
+
return EmployeesResourceWithStreamingResponse(self._client.employees)
|
|
707
|
+
|
|
708
|
+
@cached_property
|
|
709
|
+
def integrations(self) -> integrations.IntegrationsResourceWithStreamingResponse:
|
|
710
|
+
from .resources.integrations import IntegrationsResourceWithStreamingResponse
|
|
711
|
+
|
|
712
|
+
return IntegrationsResourceWithStreamingResponse(self._client.integrations)
|
|
458
713
|
|
|
459
714
|
|
|
460
715
|
class AsyncBlueHiveWithStreamedResponse:
|
|
716
|
+
_client: AsyncBlueHive
|
|
717
|
+
|
|
461
718
|
def __init__(self, client: AsyncBlueHive) -> None:
|
|
462
|
-
self.
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
self.
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
719
|
+
self._client = client
|
|
720
|
+
|
|
721
|
+
@cached_property
|
|
722
|
+
def health(self) -> health.AsyncHealthResourceWithStreamingResponse:
|
|
723
|
+
from .resources.health import AsyncHealthResourceWithStreamingResponse
|
|
724
|
+
|
|
725
|
+
return AsyncHealthResourceWithStreamingResponse(self._client.health)
|
|
726
|
+
|
|
727
|
+
@cached_property
|
|
728
|
+
def version(self) -> version.AsyncVersionResourceWithStreamingResponse:
|
|
729
|
+
from .resources.version import AsyncVersionResourceWithStreamingResponse
|
|
730
|
+
|
|
731
|
+
return AsyncVersionResourceWithStreamingResponse(self._client.version)
|
|
732
|
+
|
|
733
|
+
@cached_property
|
|
734
|
+
def providers(self) -> providers.AsyncProvidersResourceWithStreamingResponse:
|
|
735
|
+
from .resources.providers import AsyncProvidersResourceWithStreamingResponse
|
|
736
|
+
|
|
737
|
+
return AsyncProvidersResourceWithStreamingResponse(self._client.providers)
|
|
738
|
+
|
|
739
|
+
@cached_property
|
|
740
|
+
def database(self) -> database.AsyncDatabaseResourceWithStreamingResponse:
|
|
741
|
+
from .resources.database import AsyncDatabaseResourceWithStreamingResponse
|
|
742
|
+
|
|
743
|
+
return AsyncDatabaseResourceWithStreamingResponse(self._client.database)
|
|
744
|
+
|
|
745
|
+
@cached_property
|
|
746
|
+
def fax(self) -> fax.AsyncFaxResourceWithStreamingResponse:
|
|
747
|
+
from .resources.fax import AsyncFaxResourceWithStreamingResponse
|
|
748
|
+
|
|
749
|
+
return AsyncFaxResourceWithStreamingResponse(self._client.fax)
|
|
750
|
+
|
|
751
|
+
@cached_property
|
|
752
|
+
def employers(self) -> employers.AsyncEmployersResourceWithStreamingResponse:
|
|
753
|
+
from .resources.employers import AsyncEmployersResourceWithStreamingResponse
|
|
754
|
+
|
|
755
|
+
return AsyncEmployersResourceWithStreamingResponse(self._client.employers)
|
|
756
|
+
|
|
757
|
+
@cached_property
|
|
758
|
+
def hl7(self) -> hl7.AsyncHl7ResourceWithStreamingResponse:
|
|
759
|
+
from .resources.hl7 import AsyncHl7ResourceWithStreamingResponse
|
|
760
|
+
|
|
761
|
+
return AsyncHl7ResourceWithStreamingResponse(self._client.hl7)
|
|
762
|
+
|
|
763
|
+
@cached_property
|
|
764
|
+
def orders(self) -> orders.AsyncOrdersResourceWithStreamingResponse:
|
|
765
|
+
from .resources.orders import AsyncOrdersResourceWithStreamingResponse
|
|
766
|
+
|
|
767
|
+
return AsyncOrdersResourceWithStreamingResponse(self._client.orders)
|
|
768
|
+
|
|
769
|
+
@cached_property
|
|
770
|
+
def employees(self) -> employees.AsyncEmployeesResourceWithStreamingResponse:
|
|
771
|
+
from .resources.employees import AsyncEmployeesResourceWithStreamingResponse
|
|
772
|
+
|
|
773
|
+
return AsyncEmployeesResourceWithStreamingResponse(self._client.employees)
|
|
774
|
+
|
|
775
|
+
@cached_property
|
|
776
|
+
def integrations(self) -> integrations.AsyncIntegrationsResourceWithStreamingResponse:
|
|
777
|
+
from .resources.integrations import AsyncIntegrationsResourceWithStreamingResponse
|
|
778
|
+
|
|
779
|
+
return AsyncIntegrationsResourceWithStreamingResponse(self._client.integrations)
|
|
472
780
|
|
|
473
781
|
|
|
474
782
|
Client = BlueHive
|
bluehive/_models.py
CHANGED
|
@@ -3,7 +3,20 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
5
|
import weakref
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import (
|
|
7
|
+
IO,
|
|
8
|
+
TYPE_CHECKING,
|
|
9
|
+
Any,
|
|
10
|
+
Type,
|
|
11
|
+
Union,
|
|
12
|
+
Generic,
|
|
13
|
+
TypeVar,
|
|
14
|
+
Callable,
|
|
15
|
+
Iterable,
|
|
16
|
+
Optional,
|
|
17
|
+
AsyncIterable,
|
|
18
|
+
cast,
|
|
19
|
+
)
|
|
7
20
|
from datetime import date, datetime
|
|
8
21
|
from typing_extensions import (
|
|
9
22
|
List,
|
|
@@ -787,6 +800,7 @@ class FinalRequestOptionsInput(TypedDict, total=False):
|
|
|
787
800
|
timeout: float | Timeout | None
|
|
788
801
|
files: HttpxRequestFiles | None
|
|
789
802
|
idempotency_key: str
|
|
803
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None]
|
|
790
804
|
json_data: Body
|
|
791
805
|
extra_json: AnyMapping
|
|
792
806
|
follow_redirects: bool
|
|
@@ -805,6 +819,7 @@ class FinalRequestOptions(pydantic.BaseModel):
|
|
|
805
819
|
post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
|
|
806
820
|
follow_redirects: Union[bool, None] = None
|
|
807
821
|
|
|
822
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None] = None
|
|
808
823
|
# It should be noted that we cannot use `json` here as that would override
|
|
809
824
|
# a BaseModel method in an incompatible fashion.
|
|
810
825
|
json_data: Union[Body, None] = None
|
bluehive/_types.py
CHANGED
|
@@ -13,9 +13,11 @@ from typing import (
|
|
|
13
13
|
Mapping,
|
|
14
14
|
TypeVar,
|
|
15
15
|
Callable,
|
|
16
|
+
Iterable,
|
|
16
17
|
Iterator,
|
|
17
18
|
Optional,
|
|
18
19
|
Sequence,
|
|
20
|
+
AsyncIterable,
|
|
19
21
|
)
|
|
20
22
|
from typing_extensions import (
|
|
21
23
|
Set,
|
|
@@ -56,6 +58,13 @@ if TYPE_CHECKING:
|
|
|
56
58
|
else:
|
|
57
59
|
Base64FileInput = Union[IO[bytes], PathLike]
|
|
58
60
|
FileContent = Union[IO[bytes], bytes, PathLike] # PathLike is not subscriptable in Python 3.8.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# Used for sending raw binary data / streaming data in request bodies
|
|
64
|
+
# e.g. for file uploads without multipart encoding
|
|
65
|
+
BinaryTypes = Union[bytes, bytearray, IO[bytes], Iterable[bytes]]
|
|
66
|
+
AsyncBinaryTypes = Union[bytes, bytearray, IO[bytes], AsyncIterable[bytes]]
|
|
67
|
+
|
|
59
68
|
FileTypes = Union[
|
|
60
69
|
# file (or bytes)
|
|
61
70
|
FileContent,
|
bluehive/_version.py
CHANGED
|
@@ -12,6 +12,8 @@ __all__ = ["EmployeeListResponse", "Employee", "EmployeeAddress", "EmployeeExten
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class EmployeeAddress(BaseModel):
|
|
15
|
+
"""Employee address"""
|
|
16
|
+
|
|
15
17
|
city: str
|
|
16
18
|
"""City"""
|
|
17
19
|
|
|
@@ -51,6 +53,8 @@ class EmployeePhone(BaseModel):
|
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
class Employee(BaseModel):
|
|
56
|
+
"""Employee details"""
|
|
57
|
+
|
|
54
58
|
api_id: str = FieldInfo(alias="_id")
|
|
55
59
|
"""Unique identifier"""
|
|
56
60
|
|
|
@@ -104,6 +108,8 @@ class Employee(BaseModel):
|
|
|
104
108
|
|
|
105
109
|
|
|
106
110
|
class EmployeeListResponse(BaseModel):
|
|
111
|
+
"""Employees retrieved successfully"""
|
|
112
|
+
|
|
107
113
|
employees: List[Employee]
|
|
108
114
|
"""List of employees"""
|
|
109
115
|
|
|
@@ -12,6 +12,8 @@ __all__ = ["EmployeeRetrieveResponse", "Employee", "EmployeeAddress", "EmployeeE
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class EmployeeAddress(BaseModel):
|
|
15
|
+
"""Employee address"""
|
|
16
|
+
|
|
15
17
|
city: str
|
|
16
18
|
"""City"""
|
|
17
19
|
|
|
@@ -51,6 +53,8 @@ class EmployeePhone(BaseModel):
|
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
class Employee(BaseModel):
|
|
56
|
+
"""Employee details"""
|
|
57
|
+
|
|
54
58
|
api_id: str = FieldInfo(alias="_id")
|
|
55
59
|
"""Unique identifier"""
|
|
56
60
|
|
|
@@ -104,6 +108,8 @@ class Employee(BaseModel):
|
|
|
104
108
|
|
|
105
109
|
|
|
106
110
|
class EmployeeRetrieveResponse(BaseModel):
|
|
111
|
+
"""Employee found successfully"""
|
|
112
|
+
|
|
107
113
|
employee: Employee
|
|
108
114
|
"""Employee details"""
|
|
109
115
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bluehive
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.0a22
|
|
4
4
|
Summary: The official Python library for the bluehive API
|
|
5
5
|
Project-URL: Homepage, https://github.com/bluehive-health/bluehive-sdk-python
|
|
6
6
|
Project-URL: Repository, https://github.com/bluehive-health/bluehive-sdk-python
|
|
@@ -44,6 +44,15 @@ and offers both synchronous and asynchronous clients powered by [httpx](https://
|
|
|
44
44
|
|
|
45
45
|
It is generated with [Stainless](https://www.stainless.com/).
|
|
46
46
|
|
|
47
|
+
## MCP Server
|
|
48
|
+
|
|
49
|
+
Use the BlueHive MCP Server to enable AI assistants to interact with this API, allowing them to explore endpoints, make test requests, and use documentation to help integrate this SDK into your application.
|
|
50
|
+
|
|
51
|
+
[](https://cursor.com/en-US/install-mcp?name=%40bluehive%2Fsdk-mcp&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBibHVlaGl2ZS9zZGstbWNwIl19)
|
|
52
|
+
[](https://vscode.stainless.com/mcp/%7B%22name%22%3A%22%40bluehive%2Fsdk-mcp%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40bluehive%2Fsdk-mcp%22%5D%7D)
|
|
53
|
+
|
|
54
|
+
> Note: You may need to set environment variables in your MCP client.
|
|
55
|
+
|
|
47
56
|
## Documentation
|
|
48
57
|
|
|
49
58
|
The REST API documentation can be found on [docs.bluehive.com](https://docs.bluehive.com/). The full API of this library can be found in [api.md](https://github.com/bluehive-health/bluehive-sdk-python/tree/main/api.md).
|
|
@@ -52,7 +61,7 @@ The REST API documentation can be found on [docs.bluehive.com](https://docs.blue
|
|
|
52
61
|
|
|
53
62
|
```sh
|
|
54
63
|
# install from PyPI
|
|
55
|
-
pip install --pre bluehive
|
|
64
|
+
pip install '--pre bluehive'
|
|
56
65
|
```
|
|
57
66
|
|
|
58
67
|
## Usage
|
|
@@ -102,7 +111,7 @@ You can enable this by installing `aiohttp`:
|
|
|
102
111
|
|
|
103
112
|
```sh
|
|
104
113
|
# install from PyPI
|
|
105
|
-
pip install --pre bluehive[aiohttp]
|
|
114
|
+
pip install '--pre bluehive[aiohttp]'
|
|
106
115
|
```
|
|
107
116
|
|
|
108
117
|
Then you can enable it by instantiating the client with `http_client=DefaultAioHttpClient()`:
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
bluehive/__init__.py,sha256=r7geg3adw0joOxuZsSgIeZlSQOU6ao3zkI2Rrsml6x0,2683
|
|
2
|
-
bluehive/_base_client.py,sha256=
|
|
3
|
-
bluehive/_client.py,sha256=
|
|
2
|
+
bluehive/_base_client.py,sha256=DMdemJhv-oyYJJpLbhVqzX2g2XZror9Qm2ecb6QvoV4,73411
|
|
3
|
+
bluehive/_client.py,sha256=suRJhomJFF8iQQEjDw41DHFiSxYoPfnwXVrBqb0oieI,28720
|
|
4
4
|
bluehive/_compat.py,sha256=DQBVORjFb33zch24jzkhM14msvnzY7mmSmgDLaVFUM8,6562
|
|
5
5
|
bluehive/_constants.py,sha256=S14PFzyN9-I31wiV7SmIlL5Ga0MLHxdvegInGdXH7tM,462
|
|
6
6
|
bluehive/_exceptions.py,sha256=QOhLZv_tev7t7XO_pk0NoT7nzwA5VU6wtZdVWarToqo,3224
|
|
7
7
|
bluehive/_files.py,sha256=KnEzGi_O756MvKyJ4fOCW_u3JhOeWPQ4RsmDvqihDQU,3545
|
|
8
|
-
bluehive/_models.py,sha256=
|
|
8
|
+
bluehive/_models.py,sha256=R3MpO2z4XhTAnD3ObEks32suRXleF1g7BEgQTOLIxTs,32112
|
|
9
9
|
bluehive/_qs.py,sha256=craIKyvPktJ94cvf9zn8j8ekG9dWJzhWv0ob34lIOv4,4828
|
|
10
10
|
bluehive/_resource.py,sha256=MI2mGktYiePpr3PUh2uCPn1ubEsju6JkKoMupdTaqtc,1112
|
|
11
11
|
bluehive/_response.py,sha256=u3wZ9ksvCqcP549TZTsozw0LNZmHf1yPVWPo1hxMNDg,28800
|
|
12
12
|
bluehive/_streaming.py,sha256=XdfOw0CK5YOWsYw0YebCWmglGspKi9NOzjkR3Krj9To,10229
|
|
13
|
-
bluehive/_types.py,sha256=
|
|
14
|
-
bluehive/_version.py,sha256=
|
|
13
|
+
bluehive/_types.py,sha256=655Bwc25gjDjGefiVGfS54WqLqBGoUoa4kYqATl3Y_8,7596
|
|
14
|
+
bluehive/_version.py,sha256=fTD_rB92mZAqpYt-Hgn7IGe6vDpnxIgqF6tYA7B8Llc,169
|
|
15
15
|
bluehive/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
bluehive/_utils/__init__.py,sha256=7fch0GT9zpNnErbciSpUNa-SjTxxjY6kxHxKMOM4AGs,2305
|
|
17
17
|
bluehive/_utils/_compat.py,sha256=D8gtAvjJQrDWt9upS0XaG9Rr5l1QhiAx_I_1utT_tt0,1195
|
|
@@ -40,19 +40,19 @@ bluehive/resources/employers/__init__.py,sha256=-ovT4pUPpmcAS2DPbKjmVXA7AkTPtnYj
|
|
|
40
40
|
bluehive/resources/employers/employers.py,sha256=y1ntoaxVC0ItOoJvJKoZFZvUlyaOSdgwnMxaKPSFhII,15415
|
|
41
41
|
bluehive/resources/employers/service_bundles.py,sha256=EOKYyHZFLX_8w989a_DxLqiFrJ6mfcHNvgpW1R0LHZE,23160
|
|
42
42
|
bluehive/types/__init__.py,sha256=Hi8LR0U2r8dB-9tZRTF7ar_p2sK9sYIcR_VP2HbbcuY,4051
|
|
43
|
-
bluehive/types/database_check_health_response.py,sha256=
|
|
43
|
+
bluehive/types/database_check_health_response.py,sha256=CUYPCysskB9HYVxuBujxPWw5Q_HYtHDCnUpg_ja2FIA,1047
|
|
44
44
|
bluehive/types/employee_create_params.py,sha256=sDBBCKkTyuDobdh8aKuWo_nH1oi2PwKmS8UVkAp4KVI,1415
|
|
45
|
-
bluehive/types/employee_create_response.py,sha256=
|
|
46
|
-
bluehive/types/employee_delete_response.py,sha256=
|
|
45
|
+
bluehive/types/employee_create_response.py,sha256=sAtYkDdY5XJru1K4FLp25Jig3FCoKKNXefx2fYl3WAY,409
|
|
46
|
+
bluehive/types/employee_delete_response.py,sha256=tnUYLcnD5K833J0uuX9emcIX-0Ka4gWKMm96SFiqH78,277
|
|
47
47
|
bluehive/types/employee_link_user_params.py,sha256=joLgsTE_AdPXnkzMvSB_9wvh0VtDBT_416PTT-m70x0,525
|
|
48
|
-
bluehive/types/employee_link_user_response.py,sha256=
|
|
48
|
+
bluehive/types/employee_link_user_response.py,sha256=TDxxXURT9JtdIKDdHHISsS_nijUDI_33we46WQjmhGs,400
|
|
49
49
|
bluehive/types/employee_list_params.py,sha256=qQrXZb2wUxOExAYW9-yFlQGMae1OOkAOzThJRos-m7E,578
|
|
50
|
-
bluehive/types/employee_list_response.py,sha256=
|
|
51
|
-
bluehive/types/employee_retrieve_response.py,sha256=
|
|
50
|
+
bluehive/types/employee_list_response.py,sha256=c1OjU_zIKODFf4R_gefOMdFkFsp76-AhG3Ihn4frIaE,2838
|
|
51
|
+
bluehive/types/employee_retrieve_response.py,sha256=WDg66AlAgDNPSRgrI5spQlI2DuPFTha0HGts10yJRU4,2770
|
|
52
52
|
bluehive/types/employee_unlink_user_params.py,sha256=avms6rnR0HiTp2C5brQsfgDP_9FvqXOBOyt4WpOdvV4,541
|
|
53
|
-
bluehive/types/employee_unlink_user_response.py,sha256=
|
|
53
|
+
bluehive/types/employee_unlink_user_response.py,sha256=Lzgu4IJsV07UtfMTIdN9cD0dlP5XuoxXZZmRorSJP4Y,286
|
|
54
54
|
bluehive/types/employee_update_params.py,sha256=dyVSS4er6Pa3fwLTgDlK3KOsRpokEMeI_L4vm1HT7dM,1409
|
|
55
|
-
bluehive/types/employee_update_response.py,sha256=
|
|
55
|
+
bluehive/types/employee_update_response.py,sha256=hkELB-dcMnsZihkWUZUqNABTTY9YicLiFi5-fYCbB7k,277
|
|
56
56
|
bluehive/types/employer_create_params.py,sha256=DFsB8Vtaoyg8aqhvh3D877F31uSuPwP3P1ufE6imraQ,1224
|
|
57
57
|
bluehive/types/employer_create_response.py,sha256=Af4aHm6Y_S2tP4o7-hKsAUl671-lKqWwrgEnj-ukfrY,815
|
|
58
58
|
bluehive/types/employer_list_response.py,sha256=8PBOBuAFEUyyGhTyTu0mplilm9fbYybU2F9JT1TX2A0,252
|
|
@@ -62,7 +62,7 @@ bluehive/types/fax_retrieve_status_response.py,sha256=KU1eCgg0vvFMKLLmuUhq3KEMry
|
|
|
62
62
|
bluehive/types/fax_send_params.py,sha256=u_mEjVxij6F0le0HCLDYOjzRgskE6O8ipwBZj6vgs-s,1136
|
|
63
63
|
bluehive/types/fax_send_response.py,sha256=rv9t-MWLKKasWPETSn__QurGBXd5DWJdbAdZuQkTfH0,880
|
|
64
64
|
bluehive/types/health_check_response.py,sha256=WILSpTguVO6DHPF0TK-zKx9xz5ECurna_Mu0hrQ7zK4,259
|
|
65
|
-
bluehive/types/hl7_send_results_params.py,sha256=
|
|
65
|
+
bluehive/types/hl7_send_results_params.py,sha256=ROC75aywYlB35oonGFng6f8k7xOPcRgudxnT6J2A8gc,742
|
|
66
66
|
bluehive/types/hl7_send_results_response.py,sha256=KmOB5ULQtdPVvLu0bpiDFd8ABqygvvWx8borj9e9yGI,206
|
|
67
67
|
bluehive/types/integration_check_active_response.py,sha256=-07-eOa1xFat1JcO8DE6YKNePIgIq8SC7W0CENPbDyc,233
|
|
68
68
|
bluehive/types/integration_list_response.py,sha256=vx8WGfEzFBJNXPmNy9GLVkVX-3daPFAuXxZeXK8TwZI,490
|
|
@@ -91,7 +91,7 @@ bluehive/types/employers/service_bundle_list_response.py,sha256=vnZlYv7KObJ0OSSY
|
|
|
91
91
|
bluehive/types/employers/service_bundle_retrieve_response.py,sha256=9nwdzfgErAQFzqwivKhKCLqA9k7ZsMj4YbNig09-Eho,1030
|
|
92
92
|
bluehive/types/employers/service_bundle_update_params.py,sha256=gxRnvCSsBsUqi1M91nhEXgj-2l03xlrnPeXOPAQ1ujA,812
|
|
93
93
|
bluehive/types/employers/service_bundle_update_response.py,sha256=zUR_nYflDEmLSmTcFb4EaTELCInqZZI-VIBHgcPq7G4,1026
|
|
94
|
-
bluehive-0.1.
|
|
95
|
-
bluehive-0.1.
|
|
96
|
-
bluehive-0.1.
|
|
97
|
-
bluehive-0.1.
|
|
94
|
+
bluehive-0.1.0a22.dist-info/METADATA,sha256=P5yy6dHadC5hqMRnwKECM99XFUlroGVhIGGb6tmQT-s,15352
|
|
95
|
+
bluehive-0.1.0a22.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
|
96
|
+
bluehive-0.1.0a22.dist-info/licenses/LICENSE,sha256=ZHnXNtXLPBaOPoIsjBPGcs3xJ7n1mBEpTSXzz_4a5JY,11338
|
|
97
|
+
bluehive-0.1.0a22.dist-info/RECORD,,
|
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2026 BlueHive
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
|
File without changes
|