agenta 0.48.9__py3-none-any.whl → 0.49.0__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.

Potentially problematic release.


This version of agenta might be problematic. Click here for more details.

Files changed (297) hide show
  1. agenta/__init__.py +3 -2
  2. agenta/client/Readme.md +258 -80
  3. agenta/client/__init__.py +205 -29
  4. agenta/client/backend/__init__.py +461 -0
  5. agenta/client/backend/access_control/__init__.py +2 -0
  6. agenta/client/backend/access_control/client.py +53 -73
  7. agenta/client/backend/access_control/raw_client.py +180 -0
  8. agenta/client/backend/admin/__init__.py +2 -0
  9. agenta/client/backend/admin/client.py +473 -268
  10. agenta/client/backend/admin/raw_client.py +1017 -0
  11. agenta/client/backend/api_keys/__init__.py +2 -0
  12. agenta/client/backend/api_keys/client.py +43 -276
  13. agenta/client/backend/api_keys/raw_client.py +364 -0
  14. agenta/client/backend/apps/__init__.py +2 -0
  15. agenta/client/backend/apps/client.py +132 -895
  16. agenta/client/backend/apps/raw_client.py +1516 -0
  17. agenta/client/backend/bases/__init__.py +2 -0
  18. agenta/client/backend/bases/client.py +33 -73
  19. agenta/client/backend/bases/raw_client.py +179 -0
  20. agenta/client/backend/billing/__init__.py +3 -0
  21. agenta/client/backend/billing/client.py +564 -0
  22. agenta/client/backend/billing/raw_client.py +805 -0
  23. agenta/client/backend/client.py +1268 -0
  24. agenta/client/backend/configs/__init__.py +2 -0
  25. agenta/client/backend/configs/client.py +49 -361
  26. agenta/client/backend/configs/raw_client.py +402 -0
  27. agenta/client/backend/containers/__init__.py +1 -3
  28. agenta/client/backend/containers/client.py +25 -548
  29. agenta/client/backend/containers/raw_client.py +112 -0
  30. agenta/client/backend/core/__init__.py +5 -0
  31. agenta/client/backend/core/api_error.py +12 -6
  32. agenta/client/backend/core/client_wrapper.py +4 -4
  33. agenta/client/backend/core/file.py +1 -3
  34. agenta/client/backend/core/force_multipart.py +16 -0
  35. agenta/client/backend/core/http_client.py +78 -34
  36. agenta/client/backend/core/http_response.py +55 -0
  37. agenta/client/backend/core/jsonable_encoder.py +0 -1
  38. agenta/client/backend/core/pydantic_utilities.py +88 -113
  39. agenta/client/backend/core/serialization.py +9 -3
  40. agenta/client/backend/environment.py +7 -0
  41. agenta/client/backend/environments/__init__.py +2 -0
  42. agenta/client/backend/environments/client.py +43 -79
  43. agenta/client/backend/environments/raw_client.py +193 -0
  44. agenta/client/backend/errors/__init__.py +2 -0
  45. agenta/client/backend/errors/unprocessable_entity_error.py +8 -2
  46. agenta/client/backend/evals/__init__.py +3 -0
  47. agenta/client/backend/evals/client.py +1042 -0
  48. agenta/client/backend/evals/raw_client.py +1549 -0
  49. agenta/client/backend/evaluations/__init__.py +2 -0
  50. agenta/client/backend/evaluations/client.py +106 -590
  51. agenta/client/backend/evaluations/raw_client.py +1344 -0
  52. agenta/client/backend/evaluators/__init__.py +2 -0
  53. agenta/client/backend/evaluators/client.py +99 -516
  54. agenta/client/backend/evaluators/raw_client.py +1182 -0
  55. agenta/client/backend/human_evaluations/__init__.py +2 -0
  56. agenta/client/backend/human_evaluations/client.py +120 -680
  57. agenta/client/backend/human_evaluations/raw_client.py +1577 -0
  58. agenta/client/backend/observability/__init__.py +14 -2
  59. agenta/client/backend/observability/client.py +185 -341
  60. agenta/client/backend/observability/raw_client.py +943 -0
  61. agenta/client/backend/observability/types/__init__.py +10 -2
  62. agenta/client/backend/observability/types/{format.py → fetch_trace_by_id_request_trace_id.py} +1 -1
  63. agenta/client/backend/observability/types/fetch_trace_by_id_response.py +15 -0
  64. agenta/client/backend/observability/types/query_analytics_response.py +2 -1
  65. agenta/client/backend/observability/types/query_traces_response.py +7 -3
  66. agenta/client/backend/organization/__init__.py +2 -0
  67. agenta/client/backend/organization/client.py +105 -361
  68. agenta/client/backend/organization/raw_client.py +774 -0
  69. agenta/client/backend/raw_client.py +1432 -0
  70. agenta/client/backend/scopes/__init__.py +2 -0
  71. agenta/client/backend/scopes/client.py +31 -45
  72. agenta/client/backend/scopes/raw_client.py +105 -0
  73. agenta/client/backend/testsets/__init__.py +14 -0
  74. agenta/client/backend/testsets/client.py +1098 -653
  75. agenta/client/backend/testsets/raw_client.py +2348 -0
  76. agenta/client/backend/testsets/types/__init__.py +17 -0
  77. agenta/client/backend/testsets/types/create_testset_from_file_request_file_type.py +7 -0
  78. agenta/client/backend/testsets/types/fetch_testset_to_file_request_file_type.py +7 -0
  79. agenta/client/backend/testsets/types/update_testset_from_file_request_file_type.py +7 -0
  80. agenta/client/backend/tracing/__init__.py +7 -0
  81. agenta/client/backend/tracing/client.py +782 -0
  82. agenta/client/backend/tracing/raw_client.py +1223 -0
  83. agenta/client/backend/tracing/types/__init__.py +8 -0
  84. agenta/client/backend/{types/variant_action_enum.py → tracing/types/fetch_trace_request_trace_id.py} +1 -1
  85. agenta/client/backend/tracing/types/remove_trace_request_trace_id.py +5 -0
  86. agenta/client/backend/types/__init__.py +153 -26
  87. agenta/client/backend/types/account_request.py +24 -0
  88. agenta/client/backend/types/account_response.py +5 -7
  89. agenta/client/backend/types/agenta_node_dto.py +13 -13
  90. agenta/client/backend/types/agenta_node_dto_nodes_value.py +1 -0
  91. agenta/client/backend/types/agenta_nodes_response.py +14 -8
  92. agenta/client/backend/types/agenta_root_dto.py +16 -8
  93. agenta/client/backend/types/agenta_roots_response.py +16 -8
  94. agenta/client/backend/types/agenta_tree_dto.py +16 -8
  95. agenta/client/backend/types/agenta_trees_response.py +16 -8
  96. agenta/client/backend/types/aggregated_result.py +5 -7
  97. agenta/client/backend/types/aggregated_result_evaluator_config.py +1 -0
  98. agenta/client/backend/types/analytics_response.py +4 -6
  99. agenta/client/backend/types/annotation.py +50 -0
  100. agenta/client/backend/types/annotation_create.py +39 -0
  101. agenta/client/backend/types/annotation_edit.py +31 -0
  102. agenta/client/backend/types/annotation_kind.py +5 -0
  103. agenta/client/backend/types/{uri.py → annotation_link.py} +6 -7
  104. agenta/client/backend/types/{provider_key_dto.py → annotation_link_response.py} +6 -7
  105. agenta/client/backend/types/annotation_query.py +40 -0
  106. agenta/client/backend/types/annotation_query_request.py +20 -0
  107. agenta/client/backend/types/annotation_reference.py +21 -0
  108. agenta/client/backend/types/annotation_references.py +22 -0
  109. agenta/client/backend/types/{docker_env_vars.py → annotation_response.py} +6 -7
  110. agenta/client/backend/types/annotation_source.py +5 -0
  111. agenta/client/backend/types/annotations_response.py +24 -0
  112. agenta/client/backend/types/app.py +3 -5
  113. agenta/client/backend/types/app_variant_response.py +3 -6
  114. agenta/client/backend/types/app_variant_revision.py +5 -6
  115. agenta/client/backend/types/artifact.py +44 -0
  116. agenta/client/backend/types/base_output.py +3 -5
  117. agenta/client/backend/types/body_fetch_workflow_revision.py +21 -0
  118. agenta/client/backend/types/body_import_testset.py +3 -5
  119. agenta/client/backend/types/bucket_dto.py +4 -6
  120. agenta/client/backend/types/collect_status_response.py +3 -5
  121. agenta/client/backend/types/config_db.py +3 -5
  122. agenta/client/backend/types/config_dto.py +5 -7
  123. agenta/client/backend/types/config_response_model.py +5 -7
  124. agenta/client/backend/types/correct_answer.py +3 -5
  125. agenta/client/backend/types/create_app_output.py +3 -5
  126. agenta/client/backend/types/custom_model_settings_dto.py +3 -5
  127. agenta/client/backend/types/custom_provider_dto.py +6 -9
  128. agenta/client/backend/types/custom_provider_kind.py +5 -5
  129. agenta/client/backend/types/custom_provider_settings_dto.py +3 -5
  130. agenta/client/backend/types/data.py +2 -1
  131. agenta/client/backend/types/delete_evaluation.py +3 -5
  132. agenta/client/backend/types/environment_output.py +3 -5
  133. agenta/client/backend/types/environment_output_extended.py +4 -6
  134. agenta/client/backend/types/environment_revision.py +5 -5
  135. agenta/client/backend/types/error.py +3 -5
  136. agenta/client/backend/types/evaluation.py +6 -8
  137. agenta/client/backend/types/evaluation_scenario.py +5 -7
  138. agenta/client/backend/types/evaluation_scenario_input.py +3 -5
  139. agenta/client/backend/types/evaluation_scenario_output.py +4 -6
  140. agenta/client/backend/types/evaluation_scenario_result.py +4 -6
  141. agenta/client/backend/types/evaluator.py +31 -12
  142. agenta/client/backend/types/evaluator_config.py +3 -5
  143. agenta/client/backend/types/evaluator_flags.py +21 -0
  144. agenta/client/backend/types/evaluator_mapping_output_interface.py +3 -5
  145. agenta/client/backend/types/evaluator_output_interface.py +3 -5
  146. agenta/client/backend/types/evaluator_query.py +32 -0
  147. agenta/client/backend/types/evaluator_query_request.py +30 -0
  148. agenta/client/backend/types/evaluator_request.py +20 -0
  149. agenta/client/backend/types/evaluator_response.py +21 -0
  150. agenta/client/backend/types/evaluators_response.py +21 -0
  151. agenta/client/backend/types/exception_dto.py +3 -5
  152. agenta/client/backend/types/{o_tel_spans_response.py → extended_o_tel_tracing_response.py} +5 -7
  153. agenta/client/backend/types/focus.py +5 -0
  154. agenta/client/backend/types/format.py +5 -0
  155. agenta/client/backend/types/full_json_input.py +34 -0
  156. agenta/client/backend/types/full_json_output.py +29 -0
  157. agenta/client/backend/types/get_config_response.py +3 -5
  158. agenta/client/backend/types/{header_dto.py → header.py} +4 -6
  159. agenta/client/backend/types/http_validation_error.py +4 -6
  160. agenta/client/backend/types/human_evaluation.py +3 -5
  161. agenta/client/backend/types/human_evaluation_scenario.py +4 -6
  162. agenta/client/backend/types/human_evaluation_scenario_input.py +3 -5
  163. agenta/client/backend/types/human_evaluation_scenario_output.py +3 -5
  164. agenta/client/backend/types/invite_request.py +4 -6
  165. agenta/client/backend/types/legacy_analytics_response.py +4 -6
  166. agenta/client/backend/types/legacy_data_point.py +3 -5
  167. agenta/client/backend/types/legacy_evaluator.py +26 -0
  168. agenta/client/backend/types/legacy_scope_request.py +4 -6
  169. agenta/client/backend/types/legacy_scopes_response.py +3 -5
  170. agenta/client/backend/types/legacy_subscription_request.py +19 -0
  171. agenta/client/backend/types/legacy_user_request.py +5 -7
  172. agenta/client/backend/types/legacy_user_response.py +3 -5
  173. agenta/client/backend/types/lifecycle_dto.py +3 -5
  174. agenta/client/backend/types/link_dto.py +4 -6
  175. agenta/client/backend/types/list_api_keys_response.py +3 -5
  176. agenta/client/backend/types/llm_run_rate_limit.py +3 -5
  177. agenta/client/backend/types/meta_request.py +30 -0
  178. agenta/client/backend/types/metrics_dto.py +3 -5
  179. agenta/client/backend/types/new_testset.py +3 -5
  180. agenta/client/backend/types/node_dto.py +4 -6
  181. agenta/client/backend/types/o_tel_context_dto.py +3 -5
  182. agenta/client/backend/types/o_tel_event.py +35 -0
  183. agenta/client/backend/types/o_tel_event_dto.py +3 -5
  184. agenta/client/backend/types/o_tel_extra_dto.py +4 -6
  185. agenta/client/backend/types/o_tel_flat_span.py +56 -0
  186. agenta/client/backend/types/o_tel_flat_span_input_end_time.py +6 -0
  187. agenta/client/backend/types/o_tel_flat_span_input_start_time.py +6 -0
  188. agenta/client/backend/types/o_tel_flat_span_output_end_time.py +6 -0
  189. agenta/client/backend/types/o_tel_flat_span_output_start_time.py +6 -0
  190. agenta/client/backend/types/o_tel_link.py +34 -0
  191. agenta/client/backend/types/o_tel_link_dto.py +4 -6
  192. agenta/client/backend/types/o_tel_links_response.py +22 -0
  193. agenta/client/backend/types/o_tel_span.py +58 -0
  194. agenta/client/backend/types/o_tel_span_dto.py +8 -10
  195. agenta/client/backend/types/o_tel_span_input_end_time.py +6 -0
  196. agenta/client/backend/types/o_tel_span_input_spans_value.py +7 -0
  197. agenta/client/backend/types/o_tel_span_input_start_time.py +6 -0
  198. agenta/client/backend/types/o_tel_span_output_end_time.py +6 -0
  199. agenta/client/backend/types/o_tel_span_output_spans_value.py +30 -0
  200. agenta/client/backend/types/o_tel_span_output_start_time.py +6 -0
  201. agenta/client/backend/types/o_tel_spans_tree.py +22 -0
  202. agenta/client/backend/types/o_tel_spans_tree_input_spans_value.py +7 -0
  203. agenta/client/backend/types/o_tel_spans_tree_output_spans_value.py +5 -0
  204. agenta/client/backend/types/o_tel_status_code.py +1 -1
  205. agenta/client/backend/types/o_tel_tracing_data_response.py +22 -0
  206. agenta/client/backend/types/o_tel_tracing_request.py +22 -0
  207. agenta/client/backend/types/o_tel_tracing_response.py +27 -0
  208. agenta/client/backend/types/organization.py +3 -5
  209. agenta/client/backend/types/organization_details.py +3 -5
  210. agenta/client/backend/types/organization_membership_request.py +5 -7
  211. agenta/client/backend/types/organization_output.py +3 -5
  212. agenta/client/backend/types/organization_request.py +3 -5
  213. agenta/client/backend/types/parent_dto.py +3 -5
  214. agenta/client/backend/types/permission.py +11 -0
  215. agenta/client/backend/types/plan.py +14 -0
  216. agenta/client/backend/types/project_membership_request.py +5 -7
  217. agenta/client/backend/types/project_request.py +4 -6
  218. agenta/client/backend/types/project_scope.py +5 -7
  219. agenta/client/backend/types/projects_response.py +3 -5
  220. agenta/client/backend/types/recursive_types.py +23 -0
  221. agenta/client/backend/types/reference.py +18 -5
  222. agenta/client/backend/types/reference_dto.py +4 -5
  223. agenta/client/backend/types/reference_request_model.py +4 -5
  224. agenta/client/backend/types/result.py +4 -6
  225. agenta/client/backend/types/root_dto.py +3 -5
  226. agenta/client/backend/types/scopes_response_model.py +4 -6
  227. agenta/client/backend/types/secret_dto.py +5 -7
  228. agenta/client/backend/types/secret_response_dto.py +11 -11
  229. agenta/client/backend/types/simple_evaluation_output.py +4 -6
  230. agenta/client/backend/types/span_dto.py +18 -14
  231. agenta/client/backend/types/span_dto_nodes_value.py +1 -1
  232. agenta/client/backend/types/standard_provider_dto.py +5 -7
  233. agenta/client/backend/types/standard_provider_settings_dto.py +3 -5
  234. agenta/client/backend/types/status_dto.py +4 -6
  235. agenta/client/backend/types/tags_request.py +30 -0
  236. agenta/client/backend/types/test_set_output_response.py +5 -7
  237. agenta/client/backend/types/test_set_simple_response.py +3 -5
  238. agenta/client/backend/types/testcase_response.py +33 -0
  239. agenta/client/backend/types/testset.py +46 -0
  240. agenta/client/backend/types/testset_request.py +20 -0
  241. agenta/client/backend/types/testset_response.py +21 -0
  242. agenta/client/backend/types/testsets_response.py +21 -0
  243. agenta/client/backend/types/time_dto.py +3 -5
  244. agenta/client/backend/types/timestamp.py +6 -0
  245. agenta/client/backend/types/tree_dto.py +4 -6
  246. agenta/client/backend/types/update_app_output.py +3 -5
  247. agenta/client/backend/types/user_request.py +3 -5
  248. agenta/client/backend/types/validation_error.py +4 -6
  249. agenta/client/backend/types/workflow_artifact.py +45 -0
  250. agenta/client/backend/types/workflow_data.py +20 -0
  251. agenta/client/backend/types/workflow_flags.py +21 -0
  252. agenta/client/backend/types/workflow_request.py +20 -0
  253. agenta/client/backend/types/workflow_response.py +21 -0
  254. agenta/client/backend/types/workflow_revision.py +57 -0
  255. agenta/client/backend/types/workflow_revision_request.py +20 -0
  256. agenta/client/backend/types/workflow_revision_response.py +21 -0
  257. agenta/client/backend/types/workflow_revisions_response.py +21 -0
  258. agenta/client/backend/types/workflow_variant.py +48 -0
  259. agenta/client/backend/types/workflow_variant_request.py +20 -0
  260. agenta/client/backend/types/workflow_variant_response.py +21 -0
  261. agenta/client/backend/types/workflow_variants_response.py +21 -0
  262. agenta/client/backend/types/workflows_response.py +21 -0
  263. agenta/client/backend/types/workspace.py +3 -5
  264. agenta/client/backend/types/workspace_member_response.py +4 -6
  265. agenta/client/backend/types/workspace_membership_request.py +5 -7
  266. agenta/client/backend/types/workspace_permission.py +5 -7
  267. agenta/client/backend/types/workspace_request.py +4 -6
  268. agenta/client/backend/types/workspace_response.py +4 -6
  269. agenta/client/backend/variants/__init__.py +2 -0
  270. agenta/client/backend/variants/client.py +306 -1651
  271. agenta/client/backend/variants/raw_client.py +2482 -0
  272. agenta/client/backend/variants/types/__init__.py +2 -0
  273. agenta/client/backend/variants/types/add_variant_from_base_and_config_response.py +1 -0
  274. agenta/client/backend/vault/__init__.py +2 -0
  275. agenta/client/backend/vault/client.py +69 -323
  276. agenta/client/backend/vault/raw_client.py +616 -0
  277. agenta/client/backend/workflows/__init__.py +3 -0
  278. agenta/client/backend/workflows/client.py +2398 -0
  279. agenta/client/backend/workflows/raw_client.py +3639 -0
  280. agenta/client/backend/workspace/__init__.py +2 -0
  281. agenta/client/backend/workspace/client.py +46 -147
  282. agenta/client/backend/workspace/raw_client.py +376 -0
  283. agenta/client/types.py +4 -0
  284. agenta/sdk/litellm/mocks/__init__.py +144 -0
  285. agenta/sdk/middleware/auth.py +26 -25
  286. agenta/sdk/types.py +28 -1
  287. {agenta-0.48.9.dist-info → agenta-0.49.0.dist-info}/METADATA +1 -1
  288. agenta-0.49.0.dist-info/RECORD +362 -0
  289. agenta/client/backend/containers/types/__init__.py +0 -5
  290. agenta/client/backend/containers/types/container_templates_response.py +0 -6
  291. agenta/client/backend/types/image.py +0 -25
  292. agenta/client/backend/types/provider_kind.py +0 -21
  293. agenta/client/backend/types/template.py +0 -23
  294. agenta/client/backend/types/template_image_info.py +0 -29
  295. agenta/client/backend/types/variant_action.py +0 -22
  296. agenta-0.48.9.dist-info/RECORD +0 -255
  297. {agenta-0.48.9.dist-info → agenta-0.49.0.dist-info}/WHEEL +0 -0
@@ -0,0 +1,943 @@
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.pydantic_utilities import parse_obj_as
11
+ from ..core.request_options import RequestOptions
12
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
13
+ from ..types.collect_status_response import CollectStatusResponse
14
+ from ..types.format import Format
15
+ from ..types.http_validation_error import HttpValidationError
16
+ from .types.fetch_trace_by_id_request_trace_id import FetchTraceByIdRequestTraceId
17
+ from .types.fetch_trace_by_id_response import FetchTraceByIdResponse
18
+ from .types.query_analytics_response import QueryAnalyticsResponse
19
+ from .types.query_traces_response import QueryTracesResponse
20
+
21
+
22
+ class RawObservabilityClient:
23
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
24
+ self._client_wrapper = client_wrapper
25
+
26
+ def otlp_v_1_traces(
27
+ self, *, request_options: typing.Optional[RequestOptions] = None
28
+ ) -> HttpResponse[CollectStatusResponse]:
29
+ """
30
+ Receive traces via OTLP.
31
+
32
+ Parameters
33
+ ----------
34
+ request_options : typing.Optional[RequestOptions]
35
+ Request-specific configuration.
36
+
37
+ Returns
38
+ -------
39
+ HttpResponse[CollectStatusResponse]
40
+ Successful Response
41
+ """
42
+ _response = self._client_wrapper.httpx_client.request(
43
+ "otlp/v1/traces",
44
+ method="POST",
45
+ request_options=request_options,
46
+ )
47
+ try:
48
+ if 200 <= _response.status_code < 300:
49
+ _data = typing.cast(
50
+ CollectStatusResponse,
51
+ parse_obj_as(
52
+ type_=CollectStatusResponse, # type: ignore
53
+ object_=_response.json(),
54
+ ),
55
+ )
56
+ return HttpResponse(response=_response, data=_data)
57
+ _response_json = _response.json()
58
+ except JSONDecodeError:
59
+ raise ApiError(
60
+ status_code=_response.status_code,
61
+ headers=dict(_response.headers),
62
+ body=_response.text,
63
+ )
64
+ raise ApiError(
65
+ status_code=_response.status_code,
66
+ headers=dict(_response.headers),
67
+ body=_response_json,
68
+ )
69
+
70
+ def otlp_status(
71
+ self, *, request_options: typing.Optional[RequestOptions] = None
72
+ ) -> HttpResponse[CollectStatusResponse]:
73
+ """
74
+ Status of OTLP endpoint.
75
+
76
+ Parameters
77
+ ----------
78
+ request_options : typing.Optional[RequestOptions]
79
+ Request-specific configuration.
80
+
81
+ Returns
82
+ -------
83
+ HttpResponse[CollectStatusResponse]
84
+ Successful Response
85
+ """
86
+ _response = self._client_wrapper.httpx_client.request(
87
+ "observability/v1/otlp/traces",
88
+ method="GET",
89
+ request_options=request_options,
90
+ )
91
+ try:
92
+ if 200 <= _response.status_code < 300:
93
+ _data = typing.cast(
94
+ CollectStatusResponse,
95
+ parse_obj_as(
96
+ type_=CollectStatusResponse, # type: ignore
97
+ object_=_response.json(),
98
+ ),
99
+ )
100
+ return HttpResponse(response=_response, data=_data)
101
+ _response_json = _response.json()
102
+ except JSONDecodeError:
103
+ raise ApiError(
104
+ status_code=_response.status_code,
105
+ headers=dict(_response.headers),
106
+ body=_response.text,
107
+ )
108
+ raise ApiError(
109
+ status_code=_response.status_code,
110
+ headers=dict(_response.headers),
111
+ body=_response_json,
112
+ )
113
+
114
+ def otlp_receiver(
115
+ self, *, request_options: typing.Optional[RequestOptions] = None
116
+ ) -> HttpResponse[CollectStatusResponse]:
117
+ """
118
+ Receive traces via OTLP.
119
+
120
+ Parameters
121
+ ----------
122
+ request_options : typing.Optional[RequestOptions]
123
+ Request-specific configuration.
124
+
125
+ Returns
126
+ -------
127
+ HttpResponse[CollectStatusResponse]
128
+ Successful Response
129
+ """
130
+ _response = self._client_wrapper.httpx_client.request(
131
+ "observability/v1/otlp/traces",
132
+ method="POST",
133
+ request_options=request_options,
134
+ )
135
+ try:
136
+ if 200 <= _response.status_code < 300:
137
+ _data = typing.cast(
138
+ CollectStatusResponse,
139
+ parse_obj_as(
140
+ type_=CollectStatusResponse, # type: ignore
141
+ object_=_response.json(),
142
+ ),
143
+ )
144
+ return HttpResponse(response=_response, data=_data)
145
+ _response_json = _response.json()
146
+ except JSONDecodeError:
147
+ raise ApiError(
148
+ status_code=_response.status_code,
149
+ headers=dict(_response.headers),
150
+ body=_response.text,
151
+ )
152
+ raise ApiError(
153
+ status_code=_response.status_code,
154
+ headers=dict(_response.headers),
155
+ body=_response_json,
156
+ )
157
+
158
+ def query_traces(
159
+ self,
160
+ *,
161
+ format: typing.Optional[Format] = None,
162
+ focus: typing.Optional[str] = None,
163
+ oldest: typing.Optional[str] = None,
164
+ newest: typing.Optional[str] = None,
165
+ filtering: typing.Optional[str] = None,
166
+ page: typing.Optional[int] = None,
167
+ size: typing.Optional[int] = None,
168
+ next: typing.Optional[str] = None,
169
+ stop: typing.Optional[str] = None,
170
+ request_options: typing.Optional[RequestOptions] = None,
171
+ ) -> HttpResponse[QueryTracesResponse]:
172
+ """
173
+ Query traces, with optional grouping, windowing, filtering, and pagination.
174
+
175
+ Parameters
176
+ ----------
177
+ format : typing.Optional[Format]
178
+
179
+ focus : typing.Optional[str]
180
+
181
+ oldest : typing.Optional[str]
182
+
183
+ newest : typing.Optional[str]
184
+
185
+ filtering : typing.Optional[str]
186
+
187
+ page : typing.Optional[int]
188
+
189
+ size : typing.Optional[int]
190
+
191
+ next : typing.Optional[str]
192
+
193
+ stop : typing.Optional[str]
194
+
195
+ request_options : typing.Optional[RequestOptions]
196
+ Request-specific configuration.
197
+
198
+ Returns
199
+ -------
200
+ HttpResponse[QueryTracesResponse]
201
+ Successful Response
202
+ """
203
+ _response = self._client_wrapper.httpx_client.request(
204
+ "observability/v1/traces",
205
+ method="GET",
206
+ params={
207
+ "format": format,
208
+ "focus": focus,
209
+ "oldest": oldest,
210
+ "newest": newest,
211
+ "filtering": filtering,
212
+ "page": page,
213
+ "size": size,
214
+ "next": next,
215
+ "stop": stop,
216
+ },
217
+ request_options=request_options,
218
+ )
219
+ try:
220
+ if 200 <= _response.status_code < 300:
221
+ _data = typing.cast(
222
+ QueryTracesResponse,
223
+ parse_obj_as(
224
+ type_=QueryTracesResponse, # type: ignore
225
+ object_=_response.json(),
226
+ ),
227
+ )
228
+ return HttpResponse(response=_response, data=_data)
229
+ if _response.status_code == 422:
230
+ raise UnprocessableEntityError(
231
+ headers=dict(_response.headers),
232
+ body=typing.cast(
233
+ HttpValidationError,
234
+ parse_obj_as(
235
+ type_=HttpValidationError, # type: ignore
236
+ object_=_response.json(),
237
+ ),
238
+ ),
239
+ )
240
+ _response_json = _response.json()
241
+ except JSONDecodeError:
242
+ raise ApiError(
243
+ status_code=_response.status_code,
244
+ headers=dict(_response.headers),
245
+ body=_response.text,
246
+ )
247
+ raise ApiError(
248
+ status_code=_response.status_code,
249
+ headers=dict(_response.headers),
250
+ body=_response_json,
251
+ )
252
+
253
+ def delete_traces(
254
+ self,
255
+ *,
256
+ node_id: typing.Optional[str] = None,
257
+ node_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
258
+ request_options: typing.Optional[RequestOptions] = None,
259
+ ) -> HttpResponse[CollectStatusResponse]:
260
+ """
261
+ Delete trace.
262
+
263
+ Parameters
264
+ ----------
265
+ node_id : typing.Optional[str]
266
+
267
+ node_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
268
+
269
+ request_options : typing.Optional[RequestOptions]
270
+ Request-specific configuration.
271
+
272
+ Returns
273
+ -------
274
+ HttpResponse[CollectStatusResponse]
275
+ Successful Response
276
+ """
277
+ _response = self._client_wrapper.httpx_client.request(
278
+ "observability/v1/traces",
279
+ method="DELETE",
280
+ params={
281
+ "node_id": node_id,
282
+ "node_ids": node_ids,
283
+ },
284
+ request_options=request_options,
285
+ )
286
+ try:
287
+ if 200 <= _response.status_code < 300:
288
+ _data = typing.cast(
289
+ CollectStatusResponse,
290
+ parse_obj_as(
291
+ type_=CollectStatusResponse, # type: ignore
292
+ object_=_response.json(),
293
+ ),
294
+ )
295
+ return HttpResponse(response=_response, data=_data)
296
+ if _response.status_code == 422:
297
+ raise UnprocessableEntityError(
298
+ headers=dict(_response.headers),
299
+ body=typing.cast(
300
+ HttpValidationError,
301
+ parse_obj_as(
302
+ type_=HttpValidationError, # type: ignore
303
+ object_=_response.json(),
304
+ ),
305
+ ),
306
+ )
307
+ _response_json = _response.json()
308
+ except JSONDecodeError:
309
+ raise ApiError(
310
+ status_code=_response.status_code,
311
+ headers=dict(_response.headers),
312
+ body=_response.text,
313
+ )
314
+ raise ApiError(
315
+ status_code=_response.status_code,
316
+ headers=dict(_response.headers),
317
+ body=_response_json,
318
+ )
319
+
320
+ def query_analytics(
321
+ self,
322
+ *,
323
+ format: typing.Optional[Format] = None,
324
+ focus: typing.Optional[str] = None,
325
+ oldest: typing.Optional[str] = None,
326
+ newest: typing.Optional[str] = None,
327
+ window: typing.Optional[int] = None,
328
+ filtering: typing.Optional[str] = None,
329
+ time_range: typing.Optional[str] = None,
330
+ app_id: typing.Optional[str] = None,
331
+ environment: typing.Optional[str] = None,
332
+ variant: typing.Optional[str] = None,
333
+ request_options: typing.Optional[RequestOptions] = None,
334
+ ) -> HttpResponse[QueryAnalyticsResponse]:
335
+ """
336
+ Parameters
337
+ ----------
338
+ format : typing.Optional[Format]
339
+
340
+ focus : typing.Optional[str]
341
+
342
+ oldest : typing.Optional[str]
343
+
344
+ newest : typing.Optional[str]
345
+
346
+ window : typing.Optional[int]
347
+
348
+ filtering : typing.Optional[str]
349
+
350
+ time_range : typing.Optional[str]
351
+
352
+ app_id : typing.Optional[str]
353
+
354
+ environment : typing.Optional[str]
355
+
356
+ variant : typing.Optional[str]
357
+
358
+ request_options : typing.Optional[RequestOptions]
359
+ Request-specific configuration.
360
+
361
+ Returns
362
+ -------
363
+ HttpResponse[QueryAnalyticsResponse]
364
+ Successful Response
365
+ """
366
+ _response = self._client_wrapper.httpx_client.request(
367
+ "observability/v1/analytics",
368
+ method="GET",
369
+ params={
370
+ "format": format,
371
+ "focus": focus,
372
+ "oldest": oldest,
373
+ "newest": newest,
374
+ "window": window,
375
+ "filtering": filtering,
376
+ "timeRange": time_range,
377
+ "app_id": app_id,
378
+ "environment": environment,
379
+ "variant": variant,
380
+ },
381
+ request_options=request_options,
382
+ )
383
+ try:
384
+ if 200 <= _response.status_code < 300:
385
+ _data = typing.cast(
386
+ QueryAnalyticsResponse,
387
+ parse_obj_as(
388
+ type_=QueryAnalyticsResponse, # type: ignore
389
+ object_=_response.json(),
390
+ ),
391
+ )
392
+ return HttpResponse(response=_response, data=_data)
393
+ if _response.status_code == 422:
394
+ raise UnprocessableEntityError(
395
+ headers=dict(_response.headers),
396
+ body=typing.cast(
397
+ HttpValidationError,
398
+ parse_obj_as(
399
+ type_=HttpValidationError, # type: ignore
400
+ object_=_response.json(),
401
+ ),
402
+ ),
403
+ )
404
+ _response_json = _response.json()
405
+ except JSONDecodeError:
406
+ raise ApiError(
407
+ status_code=_response.status_code,
408
+ headers=dict(_response.headers),
409
+ body=_response.text,
410
+ )
411
+ raise ApiError(
412
+ status_code=_response.status_code,
413
+ headers=dict(_response.headers),
414
+ body=_response_json,
415
+ )
416
+
417
+ def fetch_trace_by_id(
418
+ self,
419
+ trace_id: FetchTraceByIdRequestTraceId,
420
+ *,
421
+ format: typing.Optional[Format] = None,
422
+ request_options: typing.Optional[RequestOptions] = None,
423
+ ) -> HttpResponse[FetchTraceByIdResponse]:
424
+ """
425
+ Fetch trace by ID.
426
+
427
+ Parameters
428
+ ----------
429
+ trace_id : FetchTraceByIdRequestTraceId
430
+
431
+ format : typing.Optional[Format]
432
+
433
+ request_options : typing.Optional[RequestOptions]
434
+ Request-specific configuration.
435
+
436
+ Returns
437
+ -------
438
+ HttpResponse[FetchTraceByIdResponse]
439
+ Successful Response
440
+ """
441
+ _response = self._client_wrapper.httpx_client.request(
442
+ f"observability/v1/traces/{jsonable_encoder(trace_id)}",
443
+ method="GET",
444
+ params={
445
+ "format": format,
446
+ },
447
+ request_options=request_options,
448
+ )
449
+ try:
450
+ if 200 <= _response.status_code < 300:
451
+ _data = typing.cast(
452
+ FetchTraceByIdResponse,
453
+ parse_obj_as(
454
+ type_=FetchTraceByIdResponse, # type: ignore
455
+ object_=_response.json(),
456
+ ),
457
+ )
458
+ return HttpResponse(response=_response, data=_data)
459
+ if _response.status_code == 422:
460
+ raise UnprocessableEntityError(
461
+ headers=dict(_response.headers),
462
+ body=typing.cast(
463
+ HttpValidationError,
464
+ parse_obj_as(
465
+ type_=HttpValidationError, # type: ignore
466
+ object_=_response.json(),
467
+ ),
468
+ ),
469
+ )
470
+ _response_json = _response.json()
471
+ except JSONDecodeError:
472
+ raise ApiError(
473
+ status_code=_response.status_code,
474
+ headers=dict(_response.headers),
475
+ body=_response.text,
476
+ )
477
+ raise ApiError(
478
+ status_code=_response.status_code,
479
+ headers=dict(_response.headers),
480
+ body=_response_json,
481
+ )
482
+
483
+
484
+ class AsyncRawObservabilityClient:
485
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
486
+ self._client_wrapper = client_wrapper
487
+
488
+ async def otlp_v_1_traces(
489
+ self, *, request_options: typing.Optional[RequestOptions] = None
490
+ ) -> AsyncHttpResponse[CollectStatusResponse]:
491
+ """
492
+ Receive traces via OTLP.
493
+
494
+ Parameters
495
+ ----------
496
+ request_options : typing.Optional[RequestOptions]
497
+ Request-specific configuration.
498
+
499
+ Returns
500
+ -------
501
+ AsyncHttpResponse[CollectStatusResponse]
502
+ Successful Response
503
+ """
504
+ _response = await self._client_wrapper.httpx_client.request(
505
+ "otlp/v1/traces",
506
+ method="POST",
507
+ request_options=request_options,
508
+ )
509
+ try:
510
+ if 200 <= _response.status_code < 300:
511
+ _data = typing.cast(
512
+ CollectStatusResponse,
513
+ parse_obj_as(
514
+ type_=CollectStatusResponse, # type: ignore
515
+ object_=_response.json(),
516
+ ),
517
+ )
518
+ return AsyncHttpResponse(response=_response, data=_data)
519
+ _response_json = _response.json()
520
+ except JSONDecodeError:
521
+ raise ApiError(
522
+ status_code=_response.status_code,
523
+ headers=dict(_response.headers),
524
+ body=_response.text,
525
+ )
526
+ raise ApiError(
527
+ status_code=_response.status_code,
528
+ headers=dict(_response.headers),
529
+ body=_response_json,
530
+ )
531
+
532
+ async def otlp_status(
533
+ self, *, request_options: typing.Optional[RequestOptions] = None
534
+ ) -> AsyncHttpResponse[CollectStatusResponse]:
535
+ """
536
+ Status of OTLP endpoint.
537
+
538
+ Parameters
539
+ ----------
540
+ request_options : typing.Optional[RequestOptions]
541
+ Request-specific configuration.
542
+
543
+ Returns
544
+ -------
545
+ AsyncHttpResponse[CollectStatusResponse]
546
+ Successful Response
547
+ """
548
+ _response = await self._client_wrapper.httpx_client.request(
549
+ "observability/v1/otlp/traces",
550
+ method="GET",
551
+ request_options=request_options,
552
+ )
553
+ try:
554
+ if 200 <= _response.status_code < 300:
555
+ _data = typing.cast(
556
+ CollectStatusResponse,
557
+ parse_obj_as(
558
+ type_=CollectStatusResponse, # type: ignore
559
+ object_=_response.json(),
560
+ ),
561
+ )
562
+ return AsyncHttpResponse(response=_response, data=_data)
563
+ _response_json = _response.json()
564
+ except JSONDecodeError:
565
+ raise ApiError(
566
+ status_code=_response.status_code,
567
+ headers=dict(_response.headers),
568
+ body=_response.text,
569
+ )
570
+ raise ApiError(
571
+ status_code=_response.status_code,
572
+ headers=dict(_response.headers),
573
+ body=_response_json,
574
+ )
575
+
576
+ async def otlp_receiver(
577
+ self, *, request_options: typing.Optional[RequestOptions] = None
578
+ ) -> AsyncHttpResponse[CollectStatusResponse]:
579
+ """
580
+ Receive traces via OTLP.
581
+
582
+ Parameters
583
+ ----------
584
+ request_options : typing.Optional[RequestOptions]
585
+ Request-specific configuration.
586
+
587
+ Returns
588
+ -------
589
+ AsyncHttpResponse[CollectStatusResponse]
590
+ Successful Response
591
+ """
592
+ _response = await self._client_wrapper.httpx_client.request(
593
+ "observability/v1/otlp/traces",
594
+ method="POST",
595
+ request_options=request_options,
596
+ )
597
+ try:
598
+ if 200 <= _response.status_code < 300:
599
+ _data = typing.cast(
600
+ CollectStatusResponse,
601
+ parse_obj_as(
602
+ type_=CollectStatusResponse, # type: ignore
603
+ object_=_response.json(),
604
+ ),
605
+ )
606
+ return AsyncHttpResponse(response=_response, data=_data)
607
+ _response_json = _response.json()
608
+ except JSONDecodeError:
609
+ raise ApiError(
610
+ status_code=_response.status_code,
611
+ headers=dict(_response.headers),
612
+ body=_response.text,
613
+ )
614
+ raise ApiError(
615
+ status_code=_response.status_code,
616
+ headers=dict(_response.headers),
617
+ body=_response_json,
618
+ )
619
+
620
+ async def query_traces(
621
+ self,
622
+ *,
623
+ format: typing.Optional[Format] = None,
624
+ focus: typing.Optional[str] = None,
625
+ oldest: typing.Optional[str] = None,
626
+ newest: typing.Optional[str] = None,
627
+ filtering: typing.Optional[str] = None,
628
+ page: typing.Optional[int] = None,
629
+ size: typing.Optional[int] = None,
630
+ next: typing.Optional[str] = None,
631
+ stop: typing.Optional[str] = None,
632
+ request_options: typing.Optional[RequestOptions] = None,
633
+ ) -> AsyncHttpResponse[QueryTracesResponse]:
634
+ """
635
+ Query traces, with optional grouping, windowing, filtering, and pagination.
636
+
637
+ Parameters
638
+ ----------
639
+ format : typing.Optional[Format]
640
+
641
+ focus : typing.Optional[str]
642
+
643
+ oldest : typing.Optional[str]
644
+
645
+ newest : typing.Optional[str]
646
+
647
+ filtering : typing.Optional[str]
648
+
649
+ page : typing.Optional[int]
650
+
651
+ size : typing.Optional[int]
652
+
653
+ next : typing.Optional[str]
654
+
655
+ stop : typing.Optional[str]
656
+
657
+ request_options : typing.Optional[RequestOptions]
658
+ Request-specific configuration.
659
+
660
+ Returns
661
+ -------
662
+ AsyncHttpResponse[QueryTracesResponse]
663
+ Successful Response
664
+ """
665
+ _response = await self._client_wrapper.httpx_client.request(
666
+ "observability/v1/traces",
667
+ method="GET",
668
+ params={
669
+ "format": format,
670
+ "focus": focus,
671
+ "oldest": oldest,
672
+ "newest": newest,
673
+ "filtering": filtering,
674
+ "page": page,
675
+ "size": size,
676
+ "next": next,
677
+ "stop": stop,
678
+ },
679
+ request_options=request_options,
680
+ )
681
+ try:
682
+ if 200 <= _response.status_code < 300:
683
+ _data = typing.cast(
684
+ QueryTracesResponse,
685
+ parse_obj_as(
686
+ type_=QueryTracesResponse, # type: ignore
687
+ object_=_response.json(),
688
+ ),
689
+ )
690
+ return AsyncHttpResponse(response=_response, data=_data)
691
+ if _response.status_code == 422:
692
+ raise UnprocessableEntityError(
693
+ headers=dict(_response.headers),
694
+ body=typing.cast(
695
+ HttpValidationError,
696
+ parse_obj_as(
697
+ type_=HttpValidationError, # type: ignore
698
+ object_=_response.json(),
699
+ ),
700
+ ),
701
+ )
702
+ _response_json = _response.json()
703
+ except JSONDecodeError:
704
+ raise ApiError(
705
+ status_code=_response.status_code,
706
+ headers=dict(_response.headers),
707
+ body=_response.text,
708
+ )
709
+ raise ApiError(
710
+ status_code=_response.status_code,
711
+ headers=dict(_response.headers),
712
+ body=_response_json,
713
+ )
714
+
715
+ async def delete_traces(
716
+ self,
717
+ *,
718
+ node_id: typing.Optional[str] = None,
719
+ node_ids: typing.Optional[typing.Union[str, typing.Sequence[str]]] = None,
720
+ request_options: typing.Optional[RequestOptions] = None,
721
+ ) -> AsyncHttpResponse[CollectStatusResponse]:
722
+ """
723
+ Delete trace.
724
+
725
+ Parameters
726
+ ----------
727
+ node_id : typing.Optional[str]
728
+
729
+ node_ids : typing.Optional[typing.Union[str, typing.Sequence[str]]]
730
+
731
+ request_options : typing.Optional[RequestOptions]
732
+ Request-specific configuration.
733
+
734
+ Returns
735
+ -------
736
+ AsyncHttpResponse[CollectStatusResponse]
737
+ Successful Response
738
+ """
739
+ _response = await self._client_wrapper.httpx_client.request(
740
+ "observability/v1/traces",
741
+ method="DELETE",
742
+ params={
743
+ "node_id": node_id,
744
+ "node_ids": node_ids,
745
+ },
746
+ request_options=request_options,
747
+ )
748
+ try:
749
+ if 200 <= _response.status_code < 300:
750
+ _data = typing.cast(
751
+ CollectStatusResponse,
752
+ parse_obj_as(
753
+ type_=CollectStatusResponse, # type: ignore
754
+ object_=_response.json(),
755
+ ),
756
+ )
757
+ return AsyncHttpResponse(response=_response, data=_data)
758
+ if _response.status_code == 422:
759
+ raise UnprocessableEntityError(
760
+ headers=dict(_response.headers),
761
+ body=typing.cast(
762
+ HttpValidationError,
763
+ parse_obj_as(
764
+ type_=HttpValidationError, # type: ignore
765
+ object_=_response.json(),
766
+ ),
767
+ ),
768
+ )
769
+ _response_json = _response.json()
770
+ except JSONDecodeError:
771
+ raise ApiError(
772
+ status_code=_response.status_code,
773
+ headers=dict(_response.headers),
774
+ body=_response.text,
775
+ )
776
+ raise ApiError(
777
+ status_code=_response.status_code,
778
+ headers=dict(_response.headers),
779
+ body=_response_json,
780
+ )
781
+
782
+ async def query_analytics(
783
+ self,
784
+ *,
785
+ format: typing.Optional[Format] = None,
786
+ focus: typing.Optional[str] = None,
787
+ oldest: typing.Optional[str] = None,
788
+ newest: typing.Optional[str] = None,
789
+ window: typing.Optional[int] = None,
790
+ filtering: typing.Optional[str] = None,
791
+ time_range: typing.Optional[str] = None,
792
+ app_id: typing.Optional[str] = None,
793
+ environment: typing.Optional[str] = None,
794
+ variant: typing.Optional[str] = None,
795
+ request_options: typing.Optional[RequestOptions] = None,
796
+ ) -> AsyncHttpResponse[QueryAnalyticsResponse]:
797
+ """
798
+ Parameters
799
+ ----------
800
+ format : typing.Optional[Format]
801
+
802
+ focus : typing.Optional[str]
803
+
804
+ oldest : typing.Optional[str]
805
+
806
+ newest : typing.Optional[str]
807
+
808
+ window : typing.Optional[int]
809
+
810
+ filtering : typing.Optional[str]
811
+
812
+ time_range : typing.Optional[str]
813
+
814
+ app_id : typing.Optional[str]
815
+
816
+ environment : typing.Optional[str]
817
+
818
+ variant : typing.Optional[str]
819
+
820
+ request_options : typing.Optional[RequestOptions]
821
+ Request-specific configuration.
822
+
823
+ Returns
824
+ -------
825
+ AsyncHttpResponse[QueryAnalyticsResponse]
826
+ Successful Response
827
+ """
828
+ _response = await self._client_wrapper.httpx_client.request(
829
+ "observability/v1/analytics",
830
+ method="GET",
831
+ params={
832
+ "format": format,
833
+ "focus": focus,
834
+ "oldest": oldest,
835
+ "newest": newest,
836
+ "window": window,
837
+ "filtering": filtering,
838
+ "timeRange": time_range,
839
+ "app_id": app_id,
840
+ "environment": environment,
841
+ "variant": variant,
842
+ },
843
+ request_options=request_options,
844
+ )
845
+ try:
846
+ if 200 <= _response.status_code < 300:
847
+ _data = typing.cast(
848
+ QueryAnalyticsResponse,
849
+ parse_obj_as(
850
+ type_=QueryAnalyticsResponse, # type: ignore
851
+ object_=_response.json(),
852
+ ),
853
+ )
854
+ return AsyncHttpResponse(response=_response, data=_data)
855
+ if _response.status_code == 422:
856
+ raise UnprocessableEntityError(
857
+ headers=dict(_response.headers),
858
+ body=typing.cast(
859
+ HttpValidationError,
860
+ parse_obj_as(
861
+ type_=HttpValidationError, # type: ignore
862
+ object_=_response.json(),
863
+ ),
864
+ ),
865
+ )
866
+ _response_json = _response.json()
867
+ except JSONDecodeError:
868
+ raise ApiError(
869
+ status_code=_response.status_code,
870
+ headers=dict(_response.headers),
871
+ body=_response.text,
872
+ )
873
+ raise ApiError(
874
+ status_code=_response.status_code,
875
+ headers=dict(_response.headers),
876
+ body=_response_json,
877
+ )
878
+
879
+ async def fetch_trace_by_id(
880
+ self,
881
+ trace_id: FetchTraceByIdRequestTraceId,
882
+ *,
883
+ format: typing.Optional[Format] = None,
884
+ request_options: typing.Optional[RequestOptions] = None,
885
+ ) -> AsyncHttpResponse[FetchTraceByIdResponse]:
886
+ """
887
+ Fetch trace by ID.
888
+
889
+ Parameters
890
+ ----------
891
+ trace_id : FetchTraceByIdRequestTraceId
892
+
893
+ format : typing.Optional[Format]
894
+
895
+ request_options : typing.Optional[RequestOptions]
896
+ Request-specific configuration.
897
+
898
+ Returns
899
+ -------
900
+ AsyncHttpResponse[FetchTraceByIdResponse]
901
+ Successful Response
902
+ """
903
+ _response = await self._client_wrapper.httpx_client.request(
904
+ f"observability/v1/traces/{jsonable_encoder(trace_id)}",
905
+ method="GET",
906
+ params={
907
+ "format": format,
908
+ },
909
+ request_options=request_options,
910
+ )
911
+ try:
912
+ if 200 <= _response.status_code < 300:
913
+ _data = typing.cast(
914
+ FetchTraceByIdResponse,
915
+ parse_obj_as(
916
+ type_=FetchTraceByIdResponse, # type: ignore
917
+ object_=_response.json(),
918
+ ),
919
+ )
920
+ return AsyncHttpResponse(response=_response, data=_data)
921
+ if _response.status_code == 422:
922
+ raise UnprocessableEntityError(
923
+ headers=dict(_response.headers),
924
+ body=typing.cast(
925
+ HttpValidationError,
926
+ parse_obj_as(
927
+ type_=HttpValidationError, # type: ignore
928
+ object_=_response.json(),
929
+ ),
930
+ ),
931
+ )
932
+ _response_json = _response.json()
933
+ except JSONDecodeError:
934
+ raise ApiError(
935
+ status_code=_response.status_code,
936
+ headers=dict(_response.headers),
937
+ body=_response.text,
938
+ )
939
+ raise ApiError(
940
+ status_code=_response.status_code,
941
+ headers=dict(_response.headers),
942
+ body=_response_json,
943
+ )