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,616 @@
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 ..core.serialization import convert_and_respect_annotation_metadata
13
+ from ..errors.unprocessable_entity_error import UnprocessableEntityError
14
+ from ..types.header import Header
15
+ from ..types.http_validation_error import HttpValidationError
16
+ from ..types.secret_dto import SecretDto
17
+ from ..types.secret_response_dto import SecretResponseDto
18
+
19
+ # this is used as the default value for optional parameters
20
+ OMIT = typing.cast(typing.Any, ...)
21
+
22
+
23
+ class RawVaultClient:
24
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
25
+ self._client_wrapper = client_wrapper
26
+
27
+ def list_secrets(
28
+ self, *, request_options: typing.Optional[RequestOptions] = None
29
+ ) -> HttpResponse[typing.List[SecretResponseDto]]:
30
+ """
31
+ Parameters
32
+ ----------
33
+ request_options : typing.Optional[RequestOptions]
34
+ Request-specific configuration.
35
+
36
+ Returns
37
+ -------
38
+ HttpResponse[typing.List[SecretResponseDto]]
39
+ Successful Response
40
+ """
41
+ _response = self._client_wrapper.httpx_client.request(
42
+ "vault/v1/secrets",
43
+ method="GET",
44
+ request_options=request_options,
45
+ )
46
+ try:
47
+ if 200 <= _response.status_code < 300:
48
+ _data = typing.cast(
49
+ typing.List[SecretResponseDto],
50
+ parse_obj_as(
51
+ type_=typing.List[SecretResponseDto], # type: ignore
52
+ object_=_response.json(),
53
+ ),
54
+ )
55
+ return HttpResponse(response=_response, data=_data)
56
+ _response_json = _response.json()
57
+ except JSONDecodeError:
58
+ raise ApiError(
59
+ status_code=_response.status_code,
60
+ headers=dict(_response.headers),
61
+ body=_response.text,
62
+ )
63
+ raise ApiError(
64
+ status_code=_response.status_code,
65
+ headers=dict(_response.headers),
66
+ body=_response_json,
67
+ )
68
+
69
+ def create_secret(
70
+ self,
71
+ *,
72
+ header: Header,
73
+ secret: SecretDto,
74
+ request_options: typing.Optional[RequestOptions] = None,
75
+ ) -> HttpResponse[SecretResponseDto]:
76
+ """
77
+ Parameters
78
+ ----------
79
+ header : Header
80
+
81
+ secret : SecretDto
82
+
83
+ request_options : typing.Optional[RequestOptions]
84
+ Request-specific configuration.
85
+
86
+ Returns
87
+ -------
88
+ HttpResponse[SecretResponseDto]
89
+ Successful Response
90
+ """
91
+ _response = self._client_wrapper.httpx_client.request(
92
+ "vault/v1/secrets",
93
+ method="POST",
94
+ json={
95
+ "header": convert_and_respect_annotation_metadata(
96
+ object_=header, annotation=Header, direction="write"
97
+ ),
98
+ "secret": convert_and_respect_annotation_metadata(
99
+ object_=secret, annotation=SecretDto, direction="write"
100
+ ),
101
+ },
102
+ headers={
103
+ "content-type": "application/json",
104
+ },
105
+ request_options=request_options,
106
+ omit=OMIT,
107
+ )
108
+ try:
109
+ if 200 <= _response.status_code < 300:
110
+ _data = typing.cast(
111
+ SecretResponseDto,
112
+ parse_obj_as(
113
+ type_=SecretResponseDto, # type: ignore
114
+ object_=_response.json(),
115
+ ),
116
+ )
117
+ return HttpResponse(response=_response, data=_data)
118
+ if _response.status_code == 422:
119
+ raise UnprocessableEntityError(
120
+ headers=dict(_response.headers),
121
+ body=typing.cast(
122
+ HttpValidationError,
123
+ parse_obj_as(
124
+ type_=HttpValidationError, # type: ignore
125
+ object_=_response.json(),
126
+ ),
127
+ ),
128
+ )
129
+ _response_json = _response.json()
130
+ except JSONDecodeError:
131
+ raise ApiError(
132
+ status_code=_response.status_code,
133
+ headers=dict(_response.headers),
134
+ body=_response.text,
135
+ )
136
+ raise ApiError(
137
+ status_code=_response.status_code,
138
+ headers=dict(_response.headers),
139
+ body=_response_json,
140
+ )
141
+
142
+ def read_secret(
143
+ self, secret_id: str, *, request_options: typing.Optional[RequestOptions] = None
144
+ ) -> HttpResponse[SecretResponseDto]:
145
+ """
146
+ Parameters
147
+ ----------
148
+ secret_id : str
149
+
150
+ request_options : typing.Optional[RequestOptions]
151
+ Request-specific configuration.
152
+
153
+ Returns
154
+ -------
155
+ HttpResponse[SecretResponseDto]
156
+ Successful Response
157
+ """
158
+ _response = self._client_wrapper.httpx_client.request(
159
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
160
+ method="GET",
161
+ request_options=request_options,
162
+ )
163
+ try:
164
+ if 200 <= _response.status_code < 300:
165
+ _data = typing.cast(
166
+ SecretResponseDto,
167
+ parse_obj_as(
168
+ type_=SecretResponseDto, # type: ignore
169
+ object_=_response.json(),
170
+ ),
171
+ )
172
+ return HttpResponse(response=_response, data=_data)
173
+ if _response.status_code == 422:
174
+ raise UnprocessableEntityError(
175
+ headers=dict(_response.headers),
176
+ body=typing.cast(
177
+ HttpValidationError,
178
+ parse_obj_as(
179
+ type_=HttpValidationError, # type: ignore
180
+ object_=_response.json(),
181
+ ),
182
+ ),
183
+ )
184
+ _response_json = _response.json()
185
+ except JSONDecodeError:
186
+ raise ApiError(
187
+ status_code=_response.status_code,
188
+ headers=dict(_response.headers),
189
+ body=_response.text,
190
+ )
191
+ raise ApiError(
192
+ status_code=_response.status_code,
193
+ headers=dict(_response.headers),
194
+ body=_response_json,
195
+ )
196
+
197
+ def update_secret(
198
+ self,
199
+ secret_id: str,
200
+ *,
201
+ header: typing.Optional[Header] = OMIT,
202
+ secret: typing.Optional[SecretDto] = OMIT,
203
+ request_options: typing.Optional[RequestOptions] = None,
204
+ ) -> HttpResponse[SecretResponseDto]:
205
+ """
206
+ Parameters
207
+ ----------
208
+ secret_id : str
209
+
210
+ header : typing.Optional[Header]
211
+
212
+ secret : typing.Optional[SecretDto]
213
+
214
+ request_options : typing.Optional[RequestOptions]
215
+ Request-specific configuration.
216
+
217
+ Returns
218
+ -------
219
+ HttpResponse[SecretResponseDto]
220
+ Successful Response
221
+ """
222
+ _response = self._client_wrapper.httpx_client.request(
223
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
224
+ method="PUT",
225
+ json={
226
+ "header": convert_and_respect_annotation_metadata(
227
+ object_=header, annotation=Header, direction="write"
228
+ ),
229
+ "secret": convert_and_respect_annotation_metadata(
230
+ object_=secret, annotation=SecretDto, direction="write"
231
+ ),
232
+ },
233
+ headers={
234
+ "content-type": "application/json",
235
+ },
236
+ request_options=request_options,
237
+ omit=OMIT,
238
+ )
239
+ try:
240
+ if 200 <= _response.status_code < 300:
241
+ _data = typing.cast(
242
+ SecretResponseDto,
243
+ parse_obj_as(
244
+ type_=SecretResponseDto, # type: ignore
245
+ object_=_response.json(),
246
+ ),
247
+ )
248
+ return HttpResponse(response=_response, data=_data)
249
+ if _response.status_code == 422:
250
+ raise UnprocessableEntityError(
251
+ headers=dict(_response.headers),
252
+ body=typing.cast(
253
+ HttpValidationError,
254
+ parse_obj_as(
255
+ type_=HttpValidationError, # type: ignore
256
+ object_=_response.json(),
257
+ ),
258
+ ),
259
+ )
260
+ _response_json = _response.json()
261
+ except JSONDecodeError:
262
+ raise ApiError(
263
+ status_code=_response.status_code,
264
+ headers=dict(_response.headers),
265
+ body=_response.text,
266
+ )
267
+ raise ApiError(
268
+ status_code=_response.status_code,
269
+ headers=dict(_response.headers),
270
+ body=_response_json,
271
+ )
272
+
273
+ def delete_secret(
274
+ self, secret_id: str, *, request_options: typing.Optional[RequestOptions] = None
275
+ ) -> HttpResponse[None]:
276
+ """
277
+ Parameters
278
+ ----------
279
+ secret_id : str
280
+
281
+ request_options : typing.Optional[RequestOptions]
282
+ Request-specific configuration.
283
+
284
+ Returns
285
+ -------
286
+ HttpResponse[None]
287
+ """
288
+ _response = self._client_wrapper.httpx_client.request(
289
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
290
+ method="DELETE",
291
+ request_options=request_options,
292
+ )
293
+ try:
294
+ if 200 <= _response.status_code < 300:
295
+ return HttpResponse(response=_response, data=None)
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
+
321
+ class AsyncRawVaultClient:
322
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
323
+ self._client_wrapper = client_wrapper
324
+
325
+ async def list_secrets(
326
+ self, *, request_options: typing.Optional[RequestOptions] = None
327
+ ) -> AsyncHttpResponse[typing.List[SecretResponseDto]]:
328
+ """
329
+ Parameters
330
+ ----------
331
+ request_options : typing.Optional[RequestOptions]
332
+ Request-specific configuration.
333
+
334
+ Returns
335
+ -------
336
+ AsyncHttpResponse[typing.List[SecretResponseDto]]
337
+ Successful Response
338
+ """
339
+ _response = await self._client_wrapper.httpx_client.request(
340
+ "vault/v1/secrets",
341
+ method="GET",
342
+ request_options=request_options,
343
+ )
344
+ try:
345
+ if 200 <= _response.status_code < 300:
346
+ _data = typing.cast(
347
+ typing.List[SecretResponseDto],
348
+ parse_obj_as(
349
+ type_=typing.List[SecretResponseDto], # type: ignore
350
+ object_=_response.json(),
351
+ ),
352
+ )
353
+ return AsyncHttpResponse(response=_response, data=_data)
354
+ _response_json = _response.json()
355
+ except JSONDecodeError:
356
+ raise ApiError(
357
+ status_code=_response.status_code,
358
+ headers=dict(_response.headers),
359
+ body=_response.text,
360
+ )
361
+ raise ApiError(
362
+ status_code=_response.status_code,
363
+ headers=dict(_response.headers),
364
+ body=_response_json,
365
+ )
366
+
367
+ async def create_secret(
368
+ self,
369
+ *,
370
+ header: Header,
371
+ secret: SecretDto,
372
+ request_options: typing.Optional[RequestOptions] = None,
373
+ ) -> AsyncHttpResponse[SecretResponseDto]:
374
+ """
375
+ Parameters
376
+ ----------
377
+ header : Header
378
+
379
+ secret : SecretDto
380
+
381
+ request_options : typing.Optional[RequestOptions]
382
+ Request-specific configuration.
383
+
384
+ Returns
385
+ -------
386
+ AsyncHttpResponse[SecretResponseDto]
387
+ Successful Response
388
+ """
389
+ _response = await self._client_wrapper.httpx_client.request(
390
+ "vault/v1/secrets",
391
+ method="POST",
392
+ json={
393
+ "header": convert_and_respect_annotation_metadata(
394
+ object_=header, annotation=Header, direction="write"
395
+ ),
396
+ "secret": convert_and_respect_annotation_metadata(
397
+ object_=secret, annotation=SecretDto, direction="write"
398
+ ),
399
+ },
400
+ headers={
401
+ "content-type": "application/json",
402
+ },
403
+ request_options=request_options,
404
+ omit=OMIT,
405
+ )
406
+ try:
407
+ if 200 <= _response.status_code < 300:
408
+ _data = typing.cast(
409
+ SecretResponseDto,
410
+ parse_obj_as(
411
+ type_=SecretResponseDto, # type: ignore
412
+ object_=_response.json(),
413
+ ),
414
+ )
415
+ return AsyncHttpResponse(response=_response, data=_data)
416
+ if _response.status_code == 422:
417
+ raise UnprocessableEntityError(
418
+ headers=dict(_response.headers),
419
+ body=typing.cast(
420
+ HttpValidationError,
421
+ parse_obj_as(
422
+ type_=HttpValidationError, # type: ignore
423
+ object_=_response.json(),
424
+ ),
425
+ ),
426
+ )
427
+ _response_json = _response.json()
428
+ except JSONDecodeError:
429
+ raise ApiError(
430
+ status_code=_response.status_code,
431
+ headers=dict(_response.headers),
432
+ body=_response.text,
433
+ )
434
+ raise ApiError(
435
+ status_code=_response.status_code,
436
+ headers=dict(_response.headers),
437
+ body=_response_json,
438
+ )
439
+
440
+ async def read_secret(
441
+ self, secret_id: str, *, request_options: typing.Optional[RequestOptions] = None
442
+ ) -> AsyncHttpResponse[SecretResponseDto]:
443
+ """
444
+ Parameters
445
+ ----------
446
+ secret_id : str
447
+
448
+ request_options : typing.Optional[RequestOptions]
449
+ Request-specific configuration.
450
+
451
+ Returns
452
+ -------
453
+ AsyncHttpResponse[SecretResponseDto]
454
+ Successful Response
455
+ """
456
+ _response = await self._client_wrapper.httpx_client.request(
457
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
458
+ method="GET",
459
+ request_options=request_options,
460
+ )
461
+ try:
462
+ if 200 <= _response.status_code < 300:
463
+ _data = typing.cast(
464
+ SecretResponseDto,
465
+ parse_obj_as(
466
+ type_=SecretResponseDto, # type: ignore
467
+ object_=_response.json(),
468
+ ),
469
+ )
470
+ return AsyncHttpResponse(response=_response, data=_data)
471
+ if _response.status_code == 422:
472
+ raise UnprocessableEntityError(
473
+ headers=dict(_response.headers),
474
+ body=typing.cast(
475
+ HttpValidationError,
476
+ parse_obj_as(
477
+ type_=HttpValidationError, # type: ignore
478
+ object_=_response.json(),
479
+ ),
480
+ ),
481
+ )
482
+ _response_json = _response.json()
483
+ except JSONDecodeError:
484
+ raise ApiError(
485
+ status_code=_response.status_code,
486
+ headers=dict(_response.headers),
487
+ body=_response.text,
488
+ )
489
+ raise ApiError(
490
+ status_code=_response.status_code,
491
+ headers=dict(_response.headers),
492
+ body=_response_json,
493
+ )
494
+
495
+ async def update_secret(
496
+ self,
497
+ secret_id: str,
498
+ *,
499
+ header: typing.Optional[Header] = OMIT,
500
+ secret: typing.Optional[SecretDto] = OMIT,
501
+ request_options: typing.Optional[RequestOptions] = None,
502
+ ) -> AsyncHttpResponse[SecretResponseDto]:
503
+ """
504
+ Parameters
505
+ ----------
506
+ secret_id : str
507
+
508
+ header : typing.Optional[Header]
509
+
510
+ secret : typing.Optional[SecretDto]
511
+
512
+ request_options : typing.Optional[RequestOptions]
513
+ Request-specific configuration.
514
+
515
+ Returns
516
+ -------
517
+ AsyncHttpResponse[SecretResponseDto]
518
+ Successful Response
519
+ """
520
+ _response = await self._client_wrapper.httpx_client.request(
521
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
522
+ method="PUT",
523
+ json={
524
+ "header": convert_and_respect_annotation_metadata(
525
+ object_=header, annotation=Header, direction="write"
526
+ ),
527
+ "secret": convert_and_respect_annotation_metadata(
528
+ object_=secret, annotation=SecretDto, direction="write"
529
+ ),
530
+ },
531
+ headers={
532
+ "content-type": "application/json",
533
+ },
534
+ request_options=request_options,
535
+ omit=OMIT,
536
+ )
537
+ try:
538
+ if 200 <= _response.status_code < 300:
539
+ _data = typing.cast(
540
+ SecretResponseDto,
541
+ parse_obj_as(
542
+ type_=SecretResponseDto, # type: ignore
543
+ object_=_response.json(),
544
+ ),
545
+ )
546
+ return AsyncHttpResponse(response=_response, data=_data)
547
+ if _response.status_code == 422:
548
+ raise UnprocessableEntityError(
549
+ headers=dict(_response.headers),
550
+ body=typing.cast(
551
+ HttpValidationError,
552
+ parse_obj_as(
553
+ type_=HttpValidationError, # type: ignore
554
+ object_=_response.json(),
555
+ ),
556
+ ),
557
+ )
558
+ _response_json = _response.json()
559
+ except JSONDecodeError:
560
+ raise ApiError(
561
+ status_code=_response.status_code,
562
+ headers=dict(_response.headers),
563
+ body=_response.text,
564
+ )
565
+ raise ApiError(
566
+ status_code=_response.status_code,
567
+ headers=dict(_response.headers),
568
+ body=_response_json,
569
+ )
570
+
571
+ async def delete_secret(
572
+ self, secret_id: str, *, request_options: typing.Optional[RequestOptions] = None
573
+ ) -> AsyncHttpResponse[None]:
574
+ """
575
+ Parameters
576
+ ----------
577
+ secret_id : str
578
+
579
+ request_options : typing.Optional[RequestOptions]
580
+ Request-specific configuration.
581
+
582
+ Returns
583
+ -------
584
+ AsyncHttpResponse[None]
585
+ """
586
+ _response = await self._client_wrapper.httpx_client.request(
587
+ f"vault/v1/secrets/{jsonable_encoder(secret_id)}",
588
+ method="DELETE",
589
+ request_options=request_options,
590
+ )
591
+ try:
592
+ if 200 <= _response.status_code < 300:
593
+ return AsyncHttpResponse(response=_response, data=None)
594
+ if _response.status_code == 422:
595
+ raise UnprocessableEntityError(
596
+ headers=dict(_response.headers),
597
+ body=typing.cast(
598
+ HttpValidationError,
599
+ parse_obj_as(
600
+ type_=HttpValidationError, # type: ignore
601
+ object_=_response.json(),
602
+ ),
603
+ ),
604
+ )
605
+ _response_json = _response.json()
606
+ except JSONDecodeError:
607
+ raise ApiError(
608
+ status_code=_response.status_code,
609
+ headers=dict(_response.headers),
610
+ body=_response.text,
611
+ )
612
+ raise ApiError(
613
+ status_code=_response.status_code,
614
+ headers=dict(_response.headers),
615
+ body=_response_json,
616
+ )
@@ -0,0 +1,3 @@
1
+ # This file was auto-generated by Fern from our API Definition.
2
+
3
+ # isort: skip_file