phenoml 0.0.6__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 (244) hide show
  1. phenoml/__init__.py +30 -0
  2. phenoml/agent/__init__.py +56 -0
  3. phenoml/agent/client.py +939 -0
  4. phenoml/agent/errors/__init__.py +11 -0
  5. phenoml/agent/errors/bad_request_error.py +10 -0
  6. phenoml/agent/errors/forbidden_error.py +10 -0
  7. phenoml/agent/errors/internal_server_error.py +10 -0
  8. phenoml/agent/errors/not_found_error.py +10 -0
  9. phenoml/agent/errors/unauthorized_error.py +10 -0
  10. phenoml/agent/prompts/__init__.py +7 -0
  11. phenoml/agent/prompts/client.py +707 -0
  12. phenoml/agent/prompts/raw_client.py +1345 -0
  13. phenoml/agent/prompts/types/__init__.py +8 -0
  14. phenoml/agent/prompts/types/prompts_delete_response.py +20 -0
  15. phenoml/agent/prompts/types/prompts_list_response.py +22 -0
  16. phenoml/agent/raw_client.py +1668 -0
  17. phenoml/agent/types/__init__.py +43 -0
  18. phenoml/agent/types/agent_chat_response.py +33 -0
  19. phenoml/agent/types/agent_create_request.py +53 -0
  20. phenoml/agent/types/agent_create_request_provider.py +5 -0
  21. phenoml/agent/types/agent_delete_response.py +20 -0
  22. phenoml/agent/types/agent_get_chat_messages_request_order.py +5 -0
  23. phenoml/agent/types/agent_get_chat_messages_response.py +22 -0
  24. phenoml/agent/types/agent_list_response.py +22 -0
  25. phenoml/agent/types/agent_prompts_response.py +22 -0
  26. phenoml/agent/types/agent_response.py +22 -0
  27. phenoml/agent/types/agent_template.py +58 -0
  28. phenoml/agent/types/agent_template_provider.py +5 -0
  29. phenoml/agent/types/chat_message_template.py +72 -0
  30. phenoml/agent/types/chat_session_template.py +67 -0
  31. phenoml/agent/types/json_patch.py +7 -0
  32. phenoml/agent/types/json_patch_operation.py +40 -0
  33. phenoml/agent/types/json_patch_operation_op.py +5 -0
  34. phenoml/agent/types/prompt_template.py +52 -0
  35. phenoml/agent/types/success_response.py +20 -0
  36. phenoml/authtoken/__init__.py +17 -0
  37. phenoml/authtoken/auth/__init__.py +7 -0
  38. phenoml/authtoken/auth/client.py +129 -0
  39. phenoml/authtoken/auth/raw_client.py +173 -0
  40. phenoml/authtoken/auth/types/__init__.py +7 -0
  41. phenoml/authtoken/auth/types/auth_generate_token_response.py +22 -0
  42. phenoml/authtoken/client.py +39 -0
  43. phenoml/authtoken/errors/__init__.py +8 -0
  44. phenoml/authtoken/errors/bad_request_error.py +10 -0
  45. phenoml/authtoken/errors/unauthorized_error.py +10 -0
  46. phenoml/authtoken/raw_client.py +13 -0
  47. phenoml/authtoken/types/__init__.py +8 -0
  48. phenoml/authtoken/types/bad_request_error_body.py +21 -0
  49. phenoml/authtoken/types/unauthorized_error_body.py +21 -0
  50. phenoml/client.py +177 -0
  51. phenoml/cohort/__init__.py +8 -0
  52. phenoml/cohort/client.py +113 -0
  53. phenoml/cohort/errors/__init__.py +9 -0
  54. phenoml/cohort/errors/bad_request_error.py +10 -0
  55. phenoml/cohort/errors/internal_server_error.py +10 -0
  56. phenoml/cohort/errors/unauthorized_error.py +10 -0
  57. phenoml/cohort/raw_client.py +185 -0
  58. phenoml/cohort/types/__init__.py +8 -0
  59. phenoml/cohort/types/cohort_response.py +33 -0
  60. phenoml/cohort/types/search_concept.py +37 -0
  61. phenoml/construe/__init__.py +45 -0
  62. phenoml/construe/client.py +399 -0
  63. phenoml/construe/errors/__init__.py +11 -0
  64. phenoml/construe/errors/bad_request_error.py +10 -0
  65. phenoml/construe/errors/conflict_error.py +10 -0
  66. phenoml/construe/errors/failed_dependency_error.py +10 -0
  67. phenoml/construe/errors/internal_server_error.py +10 -0
  68. phenoml/construe/errors/unauthorized_error.py +10 -0
  69. phenoml/construe/raw_client.py +706 -0
  70. phenoml/construe/types/__init__.py +41 -0
  71. phenoml/construe/types/bad_request_error_body.py +27 -0
  72. phenoml/construe/types/construe_cohort_request_config.py +37 -0
  73. phenoml/construe/types/construe_cohort_response.py +33 -0
  74. phenoml/construe/types/construe_cohort_response_queries_item.py +49 -0
  75. phenoml/construe/types/construe_cohort_response_queries_item_code_extract_results_item.py +31 -0
  76. phenoml/construe/types/construe_cohort_response_queries_item_code_extract_results_item_codes_item.py +32 -0
  77. phenoml/construe/types/construe_upload_code_system_response.py +19 -0
  78. phenoml/construe/types/extract_codes_result.py +22 -0
  79. phenoml/construe/types/extract_request_config.py +23 -0
  80. phenoml/construe/types/extract_request_config_chunking_method.py +5 -0
  81. phenoml/construe/types/extract_request_system.py +37 -0
  82. phenoml/construe/types/extracted_code_result.py +41 -0
  83. phenoml/construe/types/internal_server_error_body.py +27 -0
  84. phenoml/construe/types/unauthorized_error_body.py +27 -0
  85. phenoml/construe/types/upload_request_format.py +5 -0
  86. phenoml/core/__init__.py +52 -0
  87. phenoml/core/api_error.py +23 -0
  88. phenoml/core/client_wrapper.py +87 -0
  89. phenoml/core/datetime_utils.py +28 -0
  90. phenoml/core/file.py +67 -0
  91. phenoml/core/force_multipart.py +16 -0
  92. phenoml/core/http_client.py +543 -0
  93. phenoml/core/http_response.py +55 -0
  94. phenoml/core/jsonable_encoder.py +100 -0
  95. phenoml/core/pydantic_utilities.py +255 -0
  96. phenoml/core/query_encoder.py +58 -0
  97. phenoml/core/remove_none_from_dict.py +11 -0
  98. phenoml/core/request_options.py +35 -0
  99. phenoml/core/serialization.py +276 -0
  100. phenoml/environment.py +7 -0
  101. phenoml/fhir/__init__.py +36 -0
  102. phenoml/fhir/client.py +970 -0
  103. phenoml/fhir/errors/__init__.py +10 -0
  104. phenoml/fhir/errors/bad_request_error.py +10 -0
  105. phenoml/fhir/errors/internal_server_error.py +10 -0
  106. phenoml/fhir/errors/not_found_error.py +10 -0
  107. phenoml/fhir/errors/unauthorized_error.py +10 -0
  108. phenoml/fhir/raw_client.py +1385 -0
  109. phenoml/fhir/types/__init__.py +29 -0
  110. phenoml/fhir/types/error_response.py +36 -0
  111. phenoml/fhir/types/fhir_bundle.py +43 -0
  112. phenoml/fhir/types/fhir_bundle_entry_item.py +34 -0
  113. phenoml/fhir/types/fhir_bundle_entry_item_request.py +25 -0
  114. phenoml/fhir/types/fhir_bundle_entry_item_request_method.py +5 -0
  115. phenoml/fhir/types/fhir_bundle_entry_item_response.py +24 -0
  116. phenoml/fhir/types/fhir_patch_request_body_item.py +40 -0
  117. phenoml/fhir/types/fhir_patch_request_body_item_op.py +7 -0
  118. phenoml/fhir/types/fhir_resource.py +40 -0
  119. phenoml/fhir/types/fhir_resource_meta.py +28 -0
  120. phenoml/fhir/types/fhir_search_response.py +8 -0
  121. phenoml/fhir_provider/__init__.py +43 -0
  122. phenoml/fhir_provider/client.py +731 -0
  123. phenoml/fhir_provider/errors/__init__.py +11 -0
  124. phenoml/fhir_provider/errors/bad_request_error.py +10 -0
  125. phenoml/fhir_provider/errors/forbidden_error.py +10 -0
  126. phenoml/fhir_provider/errors/internal_server_error.py +10 -0
  127. phenoml/fhir_provider/errors/not_found_error.py +10 -0
  128. phenoml/fhir_provider/errors/unauthorized_error.py +10 -0
  129. phenoml/fhir_provider/raw_client.py +1445 -0
  130. phenoml/fhir_provider/types/__init__.py +35 -0
  131. phenoml/fhir_provider/types/auth_method.py +7 -0
  132. phenoml/fhir_provider/types/fhir_provider_auth_config.py +53 -0
  133. phenoml/fhir_provider/types/fhir_provider_delete_response.py +20 -0
  134. phenoml/fhir_provider/types/fhir_provider_list_response.py +22 -0
  135. phenoml/fhir_provider/types/fhir_provider_remove_auth_config_response.py +22 -0
  136. phenoml/fhir_provider/types/fhir_provider_response.py +22 -0
  137. phenoml/fhir_provider/types/fhir_provider_set_active_auth_config_response.py +22 -0
  138. phenoml/fhir_provider/types/fhir_provider_template.py +66 -0
  139. phenoml/fhir_provider/types/fhir_query_response.py +27 -0
  140. phenoml/fhir_provider/types/fhir_query_response_data.py +5 -0
  141. phenoml/fhir_provider/types/json_web_key.py +51 -0
  142. phenoml/fhir_provider/types/provider.py +8 -0
  143. phenoml/fhir_provider/types/service_account_key.py +35 -0
  144. phenoml/fhir_provider/types/smart_configuration.py +46 -0
  145. phenoml/lang2fhir/__init__.py +27 -0
  146. phenoml/lang2fhir/client.py +430 -0
  147. phenoml/lang2fhir/errors/__init__.py +11 -0
  148. phenoml/lang2fhir/errors/bad_request_error.py +10 -0
  149. phenoml/lang2fhir/errors/failed_dependency_error.py +10 -0
  150. phenoml/lang2fhir/errors/forbidden_error.py +10 -0
  151. phenoml/lang2fhir/errors/internal_server_error.py +10 -0
  152. phenoml/lang2fhir/errors/unauthorized_error.py +10 -0
  153. phenoml/lang2fhir/raw_client.py +788 -0
  154. phenoml/lang2fhir/types/__init__.py +19 -0
  155. phenoml/lang2fhir/types/create_request_resource.py +25 -0
  156. phenoml/lang2fhir/types/document_request_file_type.py +7 -0
  157. phenoml/lang2fhir/types/document_request_resource.py +5 -0
  158. phenoml/lang2fhir/types/fhir_resource.py +5 -0
  159. phenoml/lang2fhir/types/lang2fhir_upload_profile_response.py +23 -0
  160. phenoml/lang2fhir/types/search_response.py +33 -0
  161. phenoml/py.typed +0 -0
  162. phenoml/tools/__init__.py +37 -0
  163. phenoml/tools/client.py +359 -0
  164. phenoml/tools/errors/__init__.py +11 -0
  165. phenoml/tools/errors/bad_request_error.py +10 -0
  166. phenoml/tools/errors/failed_dependency_error.py +10 -0
  167. phenoml/tools/errors/forbidden_error.py +10 -0
  168. phenoml/tools/errors/internal_server_error.py +10 -0
  169. phenoml/tools/errors/unauthorized_error.py +10 -0
  170. phenoml/tools/mcp_server/__init__.py +7 -0
  171. phenoml/tools/mcp_server/client.py +336 -0
  172. phenoml/tools/mcp_server/raw_client.py +641 -0
  173. phenoml/tools/mcp_server/tools/__init__.py +4 -0
  174. phenoml/tools/mcp_server/tools/client.py +358 -0
  175. phenoml/tools/mcp_server/tools/raw_client.py +656 -0
  176. phenoml/tools/raw_client.py +696 -0
  177. phenoml/tools/types/__init__.py +27 -0
  178. phenoml/tools/types/cohort_response.py +49 -0
  179. phenoml/tools/types/lang2fhir_and_create_request_resource.py +25 -0
  180. phenoml/tools/types/lang2fhir_and_create_response.py +33 -0
  181. phenoml/tools/types/lang2fhir_and_search_response.py +40 -0
  182. phenoml/tools/types/mcp_server_response.py +33 -0
  183. phenoml/tools/types/mcp_server_response_data.py +51 -0
  184. phenoml/tools/types/mcp_server_tool_call_response.py +37 -0
  185. phenoml/tools/types/mcp_server_tool_response.py +33 -0
  186. phenoml/tools/types/mcp_server_tool_response_data.py +61 -0
  187. phenoml/tools/types/search_concept.py +41 -0
  188. phenoml/types/__init__.py +21 -0
  189. phenoml/types/cohort_response.py +5 -0
  190. phenoml/types/lang2fhir_and_create_response.py +5 -0
  191. phenoml/types/lang2fhir_and_search_response.py +5 -0
  192. phenoml/types/mcp_server_response.py +5 -0
  193. phenoml/types/mcp_server_tool_call_response.py +5 -0
  194. phenoml/types/mcp_server_tool_response.py +5 -0
  195. phenoml/types/search_concept.py +5 -0
  196. phenoml/version.py +3 -0
  197. phenoml/workflows/__init__.py +66 -0
  198. phenoml/workflows/client.py +210 -0
  199. phenoml/workflows/errors/__init__.py +11 -0
  200. phenoml/workflows/errors/bad_request_error.py +10 -0
  201. phenoml/workflows/errors/forbidden_error.py +10 -0
  202. phenoml/workflows/errors/internal_server_error.py +10 -0
  203. phenoml/workflows/errors/not_found_error.py +10 -0
  204. phenoml/workflows/errors/unauthorized_error.py +10 -0
  205. phenoml/workflows/mcp_server/__init__.py +7 -0
  206. phenoml/workflows/mcp_server/client.py +274 -0
  207. phenoml/workflows/mcp_server/raw_client.py +226 -0
  208. phenoml/workflows/mcp_server/tools/__init__.py +4 -0
  209. phenoml/workflows/mcp_server/tools/client.py +287 -0
  210. phenoml/workflows/mcp_server/tools/raw_client.py +244 -0
  211. phenoml/workflows/raw_client.py +169 -0
  212. phenoml/workflows/types/__init__.py +43 -0
  213. phenoml/workflows/types/create_workflow_response.py +44 -0
  214. phenoml/workflows/types/decision_node_definition.py +32 -0
  215. phenoml/workflows/types/execute_workflow_response.py +30 -0
  216. phenoml/workflows/types/execute_workflow_response_results.py +22 -0
  217. phenoml/workflows/types/lang2fhir_create_definition.py +37 -0
  218. phenoml/workflows/types/lang2fhir_search_definition.py +42 -0
  219. phenoml/workflows/types/list_workflows_response.py +39 -0
  220. phenoml/workflows/types/step_operation.py +26 -0
  221. phenoml/workflows/types/sub_workflow_definition.py +32 -0
  222. phenoml/workflows/types/workflow_config.py +27 -0
  223. phenoml/workflows/types/workflow_definition.py +57 -0
  224. phenoml/workflows/types/workflow_graph.py +23 -0
  225. phenoml/workflows/types/workflow_response.py +61 -0
  226. phenoml/workflows/types/workflow_response_graph.py +23 -0
  227. phenoml/workflows/types/workflow_step.py +55 -0
  228. phenoml/workflows/types/workflow_step_summary.py +47 -0
  229. phenoml/workflows/types/workflow_step_summary_type.py +5 -0
  230. phenoml/workflows/types/workflow_step_type.py +5 -0
  231. phenoml/workflows/workflows/__init__.py +19 -0
  232. phenoml/workflows/workflows/client.py +694 -0
  233. phenoml/workflows/workflows/raw_client.py +1266 -0
  234. phenoml/workflows/workflows/types/__init__.py +17 -0
  235. phenoml/workflows/workflows/types/create_workflow_request_fhir_provider_id.py +5 -0
  236. phenoml/workflows/workflows/types/update_workflow_request_fhir_provider_id.py +5 -0
  237. phenoml/workflows/workflows/types/workflows_delete_response.py +20 -0
  238. phenoml/workflows/workflows/types/workflows_get_response.py +26 -0
  239. phenoml/workflows/workflows/types/workflows_update_response.py +31 -0
  240. phenoml/wrapper_client.py +123 -0
  241. phenoml-0.0.6.dist-info/LICENSE +21 -0
  242. phenoml-0.0.6.dist-info/METADATA +192 -0
  243. phenoml-0.0.6.dist-info/RECORD +244 -0
  244. phenoml-0.0.6.dist-info/WHEEL +4 -0
@@ -0,0 +1,226 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+ from json.decoder import JSONDecodeError
5
+
6
+ from ...core.api_error import ApiError
7
+ from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
+ from ...core.http_response import AsyncHttpResponse, HttpResponse
9
+ from ...core.jsonable_encoder import jsonable_encoder
10
+ from ...core.request_options import RequestOptions
11
+
12
+
13
+ class RawMcpServerClient:
14
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
15
+ self._client_wrapper = client_wrapper
16
+
17
+ def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
18
+ """
19
+ Parameters
20
+ ----------
21
+ request_options : typing.Optional[RequestOptions]
22
+ Request-specific configuration.
23
+
24
+ Returns
25
+ -------
26
+ HttpResponse[None]
27
+ """
28
+ _response = self._client_wrapper.httpx_client.request(
29
+ "tools/mcp-server/create",
30
+ method="POST",
31
+ request_options=request_options,
32
+ )
33
+ try:
34
+ if 200 <= _response.status_code < 300:
35
+ return HttpResponse(response=_response, data=None)
36
+ _response_json = _response.json()
37
+ except JSONDecodeError:
38
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
39
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
40
+
41
+ def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
42
+ """
43
+ Parameters
44
+ ----------
45
+ request_options : typing.Optional[RequestOptions]
46
+ Request-specific configuration.
47
+
48
+ Returns
49
+ -------
50
+ HttpResponse[None]
51
+ """
52
+ _response = self._client_wrapper.httpx_client.request(
53
+ "tools/mcp-server/list",
54
+ method="GET",
55
+ request_options=request_options,
56
+ )
57
+ try:
58
+ if 200 <= _response.status_code < 300:
59
+ return HttpResponse(response=_response, data=None)
60
+ _response_json = _response.json()
61
+ except JSONDecodeError:
62
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
63
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
64
+
65
+ def get(self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> HttpResponse[None]:
66
+ """
67
+ Parameters
68
+ ----------
69
+ mcp_server_id : str
70
+
71
+ request_options : typing.Optional[RequestOptions]
72
+ Request-specific configuration.
73
+
74
+ Returns
75
+ -------
76
+ HttpResponse[None]
77
+ """
78
+ _response = self._client_wrapper.httpx_client.request(
79
+ f"tools/mcp-server/{jsonable_encoder(mcp_server_id)}",
80
+ method="GET",
81
+ request_options=request_options,
82
+ )
83
+ try:
84
+ if 200 <= _response.status_code < 300:
85
+ return HttpResponse(response=_response, data=None)
86
+ _response_json = _response.json()
87
+ except JSONDecodeError:
88
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
89
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
90
+
91
+ def delete(
92
+ self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None
93
+ ) -> HttpResponse[None]:
94
+ """
95
+ Parameters
96
+ ----------
97
+ mcp_server_id : str
98
+
99
+ request_options : typing.Optional[RequestOptions]
100
+ Request-specific configuration.
101
+
102
+ Returns
103
+ -------
104
+ HttpResponse[None]
105
+ """
106
+ _response = self._client_wrapper.httpx_client.request(
107
+ f"tools/mcp-server/{jsonable_encoder(mcp_server_id)}",
108
+ method="DELETE",
109
+ request_options=request_options,
110
+ )
111
+ try:
112
+ if 200 <= _response.status_code < 300:
113
+ return HttpResponse(response=_response, data=None)
114
+ _response_json = _response.json()
115
+ except JSONDecodeError:
116
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
117
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
118
+
119
+
120
+ class AsyncRawMcpServerClient:
121
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
122
+ self._client_wrapper = client_wrapper
123
+
124
+ async def create(self, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[None]:
125
+ """
126
+ Parameters
127
+ ----------
128
+ request_options : typing.Optional[RequestOptions]
129
+ Request-specific configuration.
130
+
131
+ Returns
132
+ -------
133
+ AsyncHttpResponse[None]
134
+ """
135
+ _response = await self._client_wrapper.httpx_client.request(
136
+ "tools/mcp-server/create",
137
+ method="POST",
138
+ request_options=request_options,
139
+ )
140
+ try:
141
+ if 200 <= _response.status_code < 300:
142
+ return AsyncHttpResponse(response=_response, data=None)
143
+ _response_json = _response.json()
144
+ except JSONDecodeError:
145
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
146
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
147
+
148
+ async def list(self, *, request_options: typing.Optional[RequestOptions] = None) -> AsyncHttpResponse[None]:
149
+ """
150
+ Parameters
151
+ ----------
152
+ request_options : typing.Optional[RequestOptions]
153
+ Request-specific configuration.
154
+
155
+ Returns
156
+ -------
157
+ AsyncHttpResponse[None]
158
+ """
159
+ _response = await self._client_wrapper.httpx_client.request(
160
+ "tools/mcp-server/list",
161
+ method="GET",
162
+ request_options=request_options,
163
+ )
164
+ try:
165
+ if 200 <= _response.status_code < 300:
166
+ return AsyncHttpResponse(response=_response, data=None)
167
+ _response_json = _response.json()
168
+ except JSONDecodeError:
169
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
170
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
171
+
172
+ async def get(
173
+ self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None
174
+ ) -> AsyncHttpResponse[None]:
175
+ """
176
+ Parameters
177
+ ----------
178
+ mcp_server_id : str
179
+
180
+ request_options : typing.Optional[RequestOptions]
181
+ Request-specific configuration.
182
+
183
+ Returns
184
+ -------
185
+ AsyncHttpResponse[None]
186
+ """
187
+ _response = await self._client_wrapper.httpx_client.request(
188
+ f"tools/mcp-server/{jsonable_encoder(mcp_server_id)}",
189
+ method="GET",
190
+ request_options=request_options,
191
+ )
192
+ try:
193
+ if 200 <= _response.status_code < 300:
194
+ return AsyncHttpResponse(response=_response, data=None)
195
+ _response_json = _response.json()
196
+ except JSONDecodeError:
197
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
198
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
199
+
200
+ async def delete(
201
+ self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None
202
+ ) -> AsyncHttpResponse[None]:
203
+ """
204
+ Parameters
205
+ ----------
206
+ mcp_server_id : str
207
+
208
+ request_options : typing.Optional[RequestOptions]
209
+ Request-specific configuration.
210
+
211
+ Returns
212
+ -------
213
+ AsyncHttpResponse[None]
214
+ """
215
+ _response = await self._client_wrapper.httpx_client.request(
216
+ f"tools/mcp-server/{jsonable_encoder(mcp_server_id)}",
217
+ method="DELETE",
218
+ request_options=request_options,
219
+ )
220
+ try:
221
+ if 200 <= _response.status_code < 300:
222
+ return AsyncHttpResponse(response=_response, data=None)
223
+ _response_json = _response.json()
224
+ except JSONDecodeError:
225
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response.text)
226
+ raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
@@ -0,0 +1,4 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file
4
+
@@ -0,0 +1,287 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ import typing
4
+
5
+ from ....core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
+ from ....core.request_options import RequestOptions
7
+ from .raw_client import AsyncRawToolsClient, RawToolsClient
8
+
9
+
10
+ class ToolsClient:
11
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
12
+ self._raw_client = RawToolsClient(client_wrapper=client_wrapper)
13
+
14
+ @property
15
+ def with_raw_response(self) -> RawToolsClient:
16
+ """
17
+ Retrieves a raw implementation of this client that returns raw responses.
18
+
19
+ Returns
20
+ -------
21
+ RawToolsClient
22
+ """
23
+ return self._raw_client
24
+
25
+ def list(self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
26
+ """
27
+ Parameters
28
+ ----------
29
+ mcp_server_id : str
30
+
31
+ request_options : typing.Optional[RequestOptions]
32
+ Request-specific configuration.
33
+
34
+ Returns
35
+ -------
36
+ None
37
+
38
+ Examples
39
+ --------
40
+ from phenoml import phenoml
41
+
42
+ client = phenoml(
43
+ token="YOUR_TOKEN",
44
+ )
45
+ client.workflows.mcp_server.tools.list(
46
+ mcp_server_id="mcp_server_id",
47
+ )
48
+ """
49
+ _response = self._raw_client.list(mcp_server_id, request_options=request_options)
50
+ return _response.data
51
+
52
+ def get(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
53
+ """
54
+ Parameters
55
+ ----------
56
+ mcp_server_tool_id : str
57
+
58
+ request_options : typing.Optional[RequestOptions]
59
+ Request-specific configuration.
60
+
61
+ Returns
62
+ -------
63
+ None
64
+
65
+ Examples
66
+ --------
67
+ from phenoml import phenoml
68
+
69
+ client = phenoml(
70
+ token="YOUR_TOKEN",
71
+ )
72
+ client.workflows.mcp_server.tools.get(
73
+ mcp_server_tool_id="mcp_server_tool_id",
74
+ )
75
+ """
76
+ _response = self._raw_client.get(mcp_server_tool_id, request_options=request_options)
77
+ return _response.data
78
+
79
+ def delete(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
80
+ """
81
+ Parameters
82
+ ----------
83
+ mcp_server_tool_id : str
84
+
85
+ request_options : typing.Optional[RequestOptions]
86
+ Request-specific configuration.
87
+
88
+ Returns
89
+ -------
90
+ None
91
+
92
+ Examples
93
+ --------
94
+ from phenoml import phenoml
95
+
96
+ client = phenoml(
97
+ token="YOUR_TOKEN",
98
+ )
99
+ client.workflows.mcp_server.tools.delete(
100
+ mcp_server_tool_id="mcp_server_tool_id",
101
+ )
102
+ """
103
+ _response = self._raw_client.delete(mcp_server_tool_id, request_options=request_options)
104
+ return _response.data
105
+
106
+ def call(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
107
+ """
108
+ Parameters
109
+ ----------
110
+ mcp_server_tool_id : str
111
+
112
+ request_options : typing.Optional[RequestOptions]
113
+ Request-specific configuration.
114
+
115
+ Returns
116
+ -------
117
+ None
118
+
119
+ Examples
120
+ --------
121
+ from phenoml import phenoml
122
+
123
+ client = phenoml(
124
+ token="YOUR_TOKEN",
125
+ )
126
+ client.workflows.mcp_server.tools.call(
127
+ mcp_server_tool_id="mcp_server_tool_id",
128
+ )
129
+ """
130
+ _response = self._raw_client.call(mcp_server_tool_id, request_options=request_options)
131
+ return _response.data
132
+
133
+
134
+ class AsyncToolsClient:
135
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
136
+ self._raw_client = AsyncRawToolsClient(client_wrapper=client_wrapper)
137
+
138
+ @property
139
+ def with_raw_response(self) -> AsyncRawToolsClient:
140
+ """
141
+ Retrieves a raw implementation of this client that returns raw responses.
142
+
143
+ Returns
144
+ -------
145
+ AsyncRawToolsClient
146
+ """
147
+ return self._raw_client
148
+
149
+ async def list(self, mcp_server_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
150
+ """
151
+ Parameters
152
+ ----------
153
+ mcp_server_id : str
154
+
155
+ request_options : typing.Optional[RequestOptions]
156
+ Request-specific configuration.
157
+
158
+ Returns
159
+ -------
160
+ None
161
+
162
+ Examples
163
+ --------
164
+ import asyncio
165
+
166
+ from phenoml import Asyncphenoml
167
+
168
+ client = Asyncphenoml(
169
+ token="YOUR_TOKEN",
170
+ )
171
+
172
+
173
+ async def main() -> None:
174
+ await client.workflows.mcp_server.tools.list(
175
+ mcp_server_id="mcp_server_id",
176
+ )
177
+
178
+
179
+ asyncio.run(main())
180
+ """
181
+ _response = await self._raw_client.list(mcp_server_id, request_options=request_options)
182
+ return _response.data
183
+
184
+ async def get(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
185
+ """
186
+ Parameters
187
+ ----------
188
+ mcp_server_tool_id : str
189
+
190
+ request_options : typing.Optional[RequestOptions]
191
+ Request-specific configuration.
192
+
193
+ Returns
194
+ -------
195
+ None
196
+
197
+ Examples
198
+ --------
199
+ import asyncio
200
+
201
+ from phenoml import Asyncphenoml
202
+
203
+ client = Asyncphenoml(
204
+ token="YOUR_TOKEN",
205
+ )
206
+
207
+
208
+ async def main() -> None:
209
+ await client.workflows.mcp_server.tools.get(
210
+ mcp_server_tool_id="mcp_server_tool_id",
211
+ )
212
+
213
+
214
+ asyncio.run(main())
215
+ """
216
+ _response = await self._raw_client.get(mcp_server_tool_id, request_options=request_options)
217
+ return _response.data
218
+
219
+ async def delete(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
220
+ """
221
+ Parameters
222
+ ----------
223
+ mcp_server_tool_id : str
224
+
225
+ request_options : typing.Optional[RequestOptions]
226
+ Request-specific configuration.
227
+
228
+ Returns
229
+ -------
230
+ None
231
+
232
+ Examples
233
+ --------
234
+ import asyncio
235
+
236
+ from phenoml import Asyncphenoml
237
+
238
+ client = Asyncphenoml(
239
+ token="YOUR_TOKEN",
240
+ )
241
+
242
+
243
+ async def main() -> None:
244
+ await client.workflows.mcp_server.tools.delete(
245
+ mcp_server_tool_id="mcp_server_tool_id",
246
+ )
247
+
248
+
249
+ asyncio.run(main())
250
+ """
251
+ _response = await self._raw_client.delete(mcp_server_tool_id, request_options=request_options)
252
+ return _response.data
253
+
254
+ async def call(self, mcp_server_tool_id: str, *, request_options: typing.Optional[RequestOptions] = None) -> None:
255
+ """
256
+ Parameters
257
+ ----------
258
+ mcp_server_tool_id : str
259
+
260
+ request_options : typing.Optional[RequestOptions]
261
+ Request-specific configuration.
262
+
263
+ Returns
264
+ -------
265
+ None
266
+
267
+ Examples
268
+ --------
269
+ import asyncio
270
+
271
+ from phenoml import Asyncphenoml
272
+
273
+ client = Asyncphenoml(
274
+ token="YOUR_TOKEN",
275
+ )
276
+
277
+
278
+ async def main() -> None:
279
+ await client.workflows.mcp_server.tools.call(
280
+ mcp_server_tool_id="mcp_server_tool_id",
281
+ )
282
+
283
+
284
+ asyncio.run(main())
285
+ """
286
+ _response = await self._raw_client.call(mcp_server_tool_id, request_options=request_options)
287
+ return _response.data