agenta 0.48.9__py3-none-any.whl → 0.48.10__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 (295) 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/types.py +28 -1
  285. {agenta-0.48.9.dist-info → agenta-0.48.10.dist-info}/METADATA +1 -1
  286. agenta-0.48.10.dist-info/RECORD +362 -0
  287. agenta/client/backend/containers/types/__init__.py +0 -5
  288. agenta/client/backend/containers/types/container_templates_response.py +0 -6
  289. agenta/client/backend/types/image.py +0 -25
  290. agenta/client/backend/types/provider_kind.py +0 -21
  291. agenta/client/backend/types/template.py +0 -23
  292. agenta/client/backend/types/template_image_info.py +0 -29
  293. agenta/client/backend/types/variant_action.py +0 -22
  294. agenta-0.48.9.dist-info/RECORD +0 -255
  295. {agenta-0.48.9.dist-info → agenta-0.48.10.dist-info}/WHEEL +0 -0
@@ -0,0 +1,3639 @@
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.http_validation_error import HttpValidationError
15
+ from ..types.reference import Reference
16
+ from ..types.workflow_artifact import WorkflowArtifact
17
+ from ..types.workflow_response import WorkflowResponse
18
+ from ..types.workflow_revision import WorkflowRevision
19
+ from ..types.workflow_revision_response import WorkflowRevisionResponse
20
+ from ..types.workflow_revisions_response import WorkflowRevisionsResponse
21
+ from ..types.workflow_variant import WorkflowVariant
22
+ from ..types.workflow_variant_response import WorkflowVariantResponse
23
+ from ..types.workflow_variants_response import WorkflowVariantsResponse
24
+ from ..types.workflows_response import WorkflowsResponse
25
+
26
+ # this is used as the default value for optional parameters
27
+ OMIT = typing.cast(typing.Any, ...)
28
+
29
+
30
+ class RawWorkflowsClient:
31
+ def __init__(self, *, client_wrapper: SyncClientWrapper):
32
+ self._client_wrapper = client_wrapper
33
+
34
+ def list_workflows(
35
+ self,
36
+ *,
37
+ workflow_ref: typing.Optional[str] = None,
38
+ workflow_flags: typing.Optional[str] = None,
39
+ workflow_meta: typing.Optional[str] = None,
40
+ include_archived: typing.Optional[bool] = None,
41
+ request_options: typing.Optional[RequestOptions] = None,
42
+ ) -> HttpResponse[WorkflowsResponse]:
43
+ """
44
+ Parameters
45
+ ----------
46
+ workflow_ref : typing.Optional[str]
47
+ JSON string of ref, e.g. {"key": value}
48
+
49
+ workflow_flags : typing.Optional[str]
50
+ JSON string of flags, e.g. {"key": value}
51
+
52
+ workflow_meta : typing.Optional[str]
53
+ JSON string of meta, e.g. {"key": value}
54
+
55
+ include_archived : typing.Optional[bool]
56
+
57
+ request_options : typing.Optional[RequestOptions]
58
+ Request-specific configuration.
59
+
60
+ Returns
61
+ -------
62
+ HttpResponse[WorkflowsResponse]
63
+ Successful Response
64
+ """
65
+ _response = self._client_wrapper.httpx_client.request(
66
+ "preview/base/workflows/",
67
+ method="GET",
68
+ params={
69
+ "workflow_ref": workflow_ref,
70
+ "workflow_flags": workflow_flags,
71
+ "workflow_meta": workflow_meta,
72
+ "include_archived": include_archived,
73
+ },
74
+ request_options=request_options,
75
+ )
76
+ try:
77
+ if 200 <= _response.status_code < 300:
78
+ _data = typing.cast(
79
+ WorkflowsResponse,
80
+ parse_obj_as(
81
+ type_=WorkflowsResponse, # type: ignore
82
+ object_=_response.json(),
83
+ ),
84
+ )
85
+ return HttpResponse(response=_response, data=_data)
86
+ if _response.status_code == 422:
87
+ raise UnprocessableEntityError(
88
+ headers=dict(_response.headers),
89
+ body=typing.cast(
90
+ HttpValidationError,
91
+ parse_obj_as(
92
+ type_=HttpValidationError, # type: ignore
93
+ object_=_response.json(),
94
+ ),
95
+ ),
96
+ )
97
+ _response_json = _response.json()
98
+ except JSONDecodeError:
99
+ raise ApiError(
100
+ status_code=_response.status_code,
101
+ headers=dict(_response.headers),
102
+ body=_response.text,
103
+ )
104
+ raise ApiError(
105
+ status_code=_response.status_code,
106
+ headers=dict(_response.headers),
107
+ body=_response_json,
108
+ )
109
+
110
+ def create_workflow(
111
+ self,
112
+ *,
113
+ workflow: WorkflowArtifact,
114
+ request_options: typing.Optional[RequestOptions] = None,
115
+ ) -> HttpResponse[WorkflowResponse]:
116
+ """
117
+ Parameters
118
+ ----------
119
+ workflow : WorkflowArtifact
120
+
121
+ request_options : typing.Optional[RequestOptions]
122
+ Request-specific configuration.
123
+
124
+ Returns
125
+ -------
126
+ HttpResponse[WorkflowResponse]
127
+ Successful Response
128
+ """
129
+ _response = self._client_wrapper.httpx_client.request(
130
+ "preview/base/workflows/",
131
+ method="POST",
132
+ json={
133
+ "workflow": convert_and_respect_annotation_metadata(
134
+ object_=workflow, annotation=WorkflowArtifact, direction="write"
135
+ ),
136
+ },
137
+ headers={
138
+ "content-type": "application/json",
139
+ },
140
+ request_options=request_options,
141
+ omit=OMIT,
142
+ )
143
+ try:
144
+ if 200 <= _response.status_code < 300:
145
+ _data = typing.cast(
146
+ WorkflowResponse,
147
+ parse_obj_as(
148
+ type_=WorkflowResponse, # type: ignore
149
+ object_=_response.json(),
150
+ ),
151
+ )
152
+ return HttpResponse(response=_response, data=_data)
153
+ if _response.status_code == 422:
154
+ raise UnprocessableEntityError(
155
+ headers=dict(_response.headers),
156
+ body=typing.cast(
157
+ HttpValidationError,
158
+ parse_obj_as(
159
+ type_=HttpValidationError, # type: ignore
160
+ object_=_response.json(),
161
+ ),
162
+ ),
163
+ )
164
+ _response_json = _response.json()
165
+ except JSONDecodeError:
166
+ raise ApiError(
167
+ status_code=_response.status_code,
168
+ headers=dict(_response.headers),
169
+ body=_response.text,
170
+ )
171
+ raise ApiError(
172
+ status_code=_response.status_code,
173
+ headers=dict(_response.headers),
174
+ body=_response_json,
175
+ )
176
+
177
+ def fetch_workflow(
178
+ self,
179
+ workflow_id: str,
180
+ *,
181
+ artifact_id: str,
182
+ request_options: typing.Optional[RequestOptions] = None,
183
+ ) -> HttpResponse[WorkflowResponse]:
184
+ """
185
+ Parameters
186
+ ----------
187
+ workflow_id : str
188
+
189
+ artifact_id : str
190
+
191
+ request_options : typing.Optional[RequestOptions]
192
+ Request-specific configuration.
193
+
194
+ Returns
195
+ -------
196
+ HttpResponse[WorkflowResponse]
197
+ Successful Response
198
+ """
199
+ _response = self._client_wrapper.httpx_client.request(
200
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}",
201
+ method="GET",
202
+ params={
203
+ "artifact_id": artifact_id,
204
+ },
205
+ request_options=request_options,
206
+ )
207
+ try:
208
+ if 200 <= _response.status_code < 300:
209
+ _data = typing.cast(
210
+ WorkflowResponse,
211
+ parse_obj_as(
212
+ type_=WorkflowResponse, # type: ignore
213
+ object_=_response.json(),
214
+ ),
215
+ )
216
+ return HttpResponse(response=_response, data=_data)
217
+ if _response.status_code == 422:
218
+ raise UnprocessableEntityError(
219
+ headers=dict(_response.headers),
220
+ body=typing.cast(
221
+ HttpValidationError,
222
+ parse_obj_as(
223
+ type_=HttpValidationError, # type: ignore
224
+ object_=_response.json(),
225
+ ),
226
+ ),
227
+ )
228
+ _response_json = _response.json()
229
+ except JSONDecodeError:
230
+ raise ApiError(
231
+ status_code=_response.status_code,
232
+ headers=dict(_response.headers),
233
+ body=_response.text,
234
+ )
235
+ raise ApiError(
236
+ status_code=_response.status_code,
237
+ headers=dict(_response.headers),
238
+ body=_response_json,
239
+ )
240
+
241
+ def edit_workflow(
242
+ self,
243
+ workflow_id: str,
244
+ *,
245
+ workflow: WorkflowArtifact,
246
+ request_options: typing.Optional[RequestOptions] = None,
247
+ ) -> HttpResponse[WorkflowResponse]:
248
+ """
249
+ Parameters
250
+ ----------
251
+ workflow_id : str
252
+
253
+ workflow : WorkflowArtifact
254
+
255
+ request_options : typing.Optional[RequestOptions]
256
+ Request-specific configuration.
257
+
258
+ Returns
259
+ -------
260
+ HttpResponse[WorkflowResponse]
261
+ Successful Response
262
+ """
263
+ _response = self._client_wrapper.httpx_client.request(
264
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}",
265
+ method="PUT",
266
+ json={
267
+ "workflow": convert_and_respect_annotation_metadata(
268
+ object_=workflow, annotation=WorkflowArtifact, direction="write"
269
+ ),
270
+ },
271
+ headers={
272
+ "content-type": "application/json",
273
+ },
274
+ request_options=request_options,
275
+ omit=OMIT,
276
+ )
277
+ try:
278
+ if 200 <= _response.status_code < 300:
279
+ _data = typing.cast(
280
+ WorkflowResponse,
281
+ parse_obj_as(
282
+ type_=WorkflowResponse, # type: ignore
283
+ object_=_response.json(),
284
+ ),
285
+ )
286
+ return HttpResponse(response=_response, data=_data)
287
+ if _response.status_code == 422:
288
+ raise UnprocessableEntityError(
289
+ headers=dict(_response.headers),
290
+ body=typing.cast(
291
+ HttpValidationError,
292
+ parse_obj_as(
293
+ type_=HttpValidationError, # type: ignore
294
+ object_=_response.json(),
295
+ ),
296
+ ),
297
+ )
298
+ _response_json = _response.json()
299
+ except JSONDecodeError:
300
+ raise ApiError(
301
+ status_code=_response.status_code,
302
+ headers=dict(_response.headers),
303
+ body=_response.text,
304
+ )
305
+ raise ApiError(
306
+ status_code=_response.status_code,
307
+ headers=dict(_response.headers),
308
+ body=_response_json,
309
+ )
310
+
311
+ def archive_workflow(
312
+ self,
313
+ workflow_id: str,
314
+ *,
315
+ artifact_id: str,
316
+ request_options: typing.Optional[RequestOptions] = None,
317
+ ) -> HttpResponse[WorkflowResponse]:
318
+ """
319
+ Parameters
320
+ ----------
321
+ workflow_id : str
322
+
323
+ artifact_id : str
324
+
325
+ request_options : typing.Optional[RequestOptions]
326
+ Request-specific configuration.
327
+
328
+ Returns
329
+ -------
330
+ HttpResponse[WorkflowResponse]
331
+ Successful Response
332
+ """
333
+ _response = self._client_wrapper.httpx_client.request(
334
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}/archive",
335
+ method="POST",
336
+ params={
337
+ "artifact_id": artifact_id,
338
+ },
339
+ request_options=request_options,
340
+ )
341
+ try:
342
+ if 200 <= _response.status_code < 300:
343
+ _data = typing.cast(
344
+ WorkflowResponse,
345
+ parse_obj_as(
346
+ type_=WorkflowResponse, # type: ignore
347
+ object_=_response.json(),
348
+ ),
349
+ )
350
+ return HttpResponse(response=_response, data=_data)
351
+ if _response.status_code == 422:
352
+ raise UnprocessableEntityError(
353
+ headers=dict(_response.headers),
354
+ body=typing.cast(
355
+ HttpValidationError,
356
+ parse_obj_as(
357
+ type_=HttpValidationError, # type: ignore
358
+ object_=_response.json(),
359
+ ),
360
+ ),
361
+ )
362
+ _response_json = _response.json()
363
+ except JSONDecodeError:
364
+ raise ApiError(
365
+ status_code=_response.status_code,
366
+ headers=dict(_response.headers),
367
+ body=_response.text,
368
+ )
369
+ raise ApiError(
370
+ status_code=_response.status_code,
371
+ headers=dict(_response.headers),
372
+ body=_response_json,
373
+ )
374
+
375
+ def unarchive_workflow(
376
+ self,
377
+ workflow_id: str,
378
+ *,
379
+ artifact_id: str,
380
+ request_options: typing.Optional[RequestOptions] = None,
381
+ ) -> HttpResponse[WorkflowResponse]:
382
+ """
383
+ Parameters
384
+ ----------
385
+ workflow_id : str
386
+
387
+ artifact_id : str
388
+
389
+ request_options : typing.Optional[RequestOptions]
390
+ Request-specific configuration.
391
+
392
+ Returns
393
+ -------
394
+ HttpResponse[WorkflowResponse]
395
+ Successful Response
396
+ """
397
+ _response = self._client_wrapper.httpx_client.request(
398
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}/unarchive",
399
+ method="POST",
400
+ params={
401
+ "artifact_id": artifact_id,
402
+ },
403
+ request_options=request_options,
404
+ )
405
+ try:
406
+ if 200 <= _response.status_code < 300:
407
+ _data = typing.cast(
408
+ WorkflowResponse,
409
+ parse_obj_as(
410
+ type_=WorkflowResponse, # type: ignore
411
+ object_=_response.json(),
412
+ ),
413
+ )
414
+ return HttpResponse(response=_response, data=_data)
415
+ if _response.status_code == 422:
416
+ raise UnprocessableEntityError(
417
+ headers=dict(_response.headers),
418
+ body=typing.cast(
419
+ HttpValidationError,
420
+ parse_obj_as(
421
+ type_=HttpValidationError, # type: ignore
422
+ object_=_response.json(),
423
+ ),
424
+ ),
425
+ )
426
+ _response_json = _response.json()
427
+ except JSONDecodeError:
428
+ raise ApiError(
429
+ status_code=_response.status_code,
430
+ headers=dict(_response.headers),
431
+ body=_response.text,
432
+ )
433
+ raise ApiError(
434
+ status_code=_response.status_code,
435
+ headers=dict(_response.headers),
436
+ body=_response_json,
437
+ )
438
+
439
+ def query_workflows(
440
+ self,
441
+ *,
442
+ workflow_ref: typing.Optional[str] = None,
443
+ workflow_flags: typing.Optional[str] = None,
444
+ workflow_meta: typing.Optional[str] = None,
445
+ include_archived: typing.Optional[bool] = None,
446
+ request_options: typing.Optional[RequestOptions] = None,
447
+ ) -> HttpResponse[WorkflowsResponse]:
448
+ """
449
+ Parameters
450
+ ----------
451
+ workflow_ref : typing.Optional[str]
452
+ JSON string of ref, e.g. {"key": value}
453
+
454
+ workflow_flags : typing.Optional[str]
455
+ JSON string of flags, e.g. {"key": value}
456
+
457
+ workflow_meta : typing.Optional[str]
458
+ JSON string of meta, e.g. {"key": value}
459
+
460
+ include_archived : typing.Optional[bool]
461
+
462
+ request_options : typing.Optional[RequestOptions]
463
+ Request-specific configuration.
464
+
465
+ Returns
466
+ -------
467
+ HttpResponse[WorkflowsResponse]
468
+ Successful Response
469
+ """
470
+ _response = self._client_wrapper.httpx_client.request(
471
+ "preview/base/workflows/query",
472
+ method="POST",
473
+ params={
474
+ "workflow_ref": workflow_ref,
475
+ "workflow_flags": workflow_flags,
476
+ "workflow_meta": workflow_meta,
477
+ "include_archived": include_archived,
478
+ },
479
+ request_options=request_options,
480
+ )
481
+ try:
482
+ if 200 <= _response.status_code < 300:
483
+ _data = typing.cast(
484
+ WorkflowsResponse,
485
+ parse_obj_as(
486
+ type_=WorkflowsResponse, # type: ignore
487
+ object_=_response.json(),
488
+ ),
489
+ )
490
+ return HttpResponse(response=_response, data=_data)
491
+ if _response.status_code == 422:
492
+ raise UnprocessableEntityError(
493
+ headers=dict(_response.headers),
494
+ body=typing.cast(
495
+ HttpValidationError,
496
+ parse_obj_as(
497
+ type_=HttpValidationError, # type: ignore
498
+ object_=_response.json(),
499
+ ),
500
+ ),
501
+ )
502
+ _response_json = _response.json()
503
+ except JSONDecodeError:
504
+ raise ApiError(
505
+ status_code=_response.status_code,
506
+ headers=dict(_response.headers),
507
+ body=_response.text,
508
+ )
509
+ raise ApiError(
510
+ status_code=_response.status_code,
511
+ headers=dict(_response.headers),
512
+ body=_response_json,
513
+ )
514
+
515
+ def list_workflow_variants(
516
+ self,
517
+ *,
518
+ workflow_ref: typing.Optional[str] = None,
519
+ variant_ref: typing.Optional[str] = None,
520
+ variant_meta: typing.Optional[str] = None,
521
+ variant_flags: typing.Optional[str] = None,
522
+ include_archived: typing.Optional[bool] = None,
523
+ request_options: typing.Optional[RequestOptions] = None,
524
+ ) -> HttpResponse[WorkflowVariantsResponse]:
525
+ """
526
+ Parameters
527
+ ----------
528
+ workflow_ref : typing.Optional[str]
529
+ JSON string of reference, e.g. {"key": value}
530
+
531
+ variant_ref : typing.Optional[str]
532
+ JSON string of reference, e.g. {"key": value}
533
+
534
+ variant_meta : typing.Optional[str]
535
+ JSON string of meta, e.g. {"key": value}
536
+
537
+ variant_flags : typing.Optional[str]
538
+ JSON string of flags, e.g. {"key": value}
539
+
540
+ include_archived : typing.Optional[bool]
541
+
542
+ request_options : typing.Optional[RequestOptions]
543
+ Request-specific configuration.
544
+
545
+ Returns
546
+ -------
547
+ HttpResponse[WorkflowVariantsResponse]
548
+ Successful Response
549
+ """
550
+ _response = self._client_wrapper.httpx_client.request(
551
+ "preview/base/workflows/variants/",
552
+ method="GET",
553
+ params={
554
+ "workflow_ref": workflow_ref,
555
+ "variant_ref": variant_ref,
556
+ "variant_meta": variant_meta,
557
+ "variant_flags": variant_flags,
558
+ "include_archived": include_archived,
559
+ },
560
+ request_options=request_options,
561
+ )
562
+ try:
563
+ if 200 <= _response.status_code < 300:
564
+ _data = typing.cast(
565
+ WorkflowVariantsResponse,
566
+ parse_obj_as(
567
+ type_=WorkflowVariantsResponse, # type: ignore
568
+ object_=_response.json(),
569
+ ),
570
+ )
571
+ return HttpResponse(response=_response, data=_data)
572
+ if _response.status_code == 422:
573
+ raise UnprocessableEntityError(
574
+ headers=dict(_response.headers),
575
+ body=typing.cast(
576
+ HttpValidationError,
577
+ parse_obj_as(
578
+ type_=HttpValidationError, # type: ignore
579
+ object_=_response.json(),
580
+ ),
581
+ ),
582
+ )
583
+ _response_json = _response.json()
584
+ except JSONDecodeError:
585
+ raise ApiError(
586
+ status_code=_response.status_code,
587
+ headers=dict(_response.headers),
588
+ body=_response.text,
589
+ )
590
+ raise ApiError(
591
+ status_code=_response.status_code,
592
+ headers=dict(_response.headers),
593
+ body=_response_json,
594
+ )
595
+
596
+ def create_workflow_variant(
597
+ self,
598
+ *,
599
+ variant: WorkflowVariant,
600
+ request_options: typing.Optional[RequestOptions] = None,
601
+ ) -> HttpResponse[WorkflowVariantResponse]:
602
+ """
603
+ Parameters
604
+ ----------
605
+ variant : WorkflowVariant
606
+
607
+ request_options : typing.Optional[RequestOptions]
608
+ Request-specific configuration.
609
+
610
+ Returns
611
+ -------
612
+ HttpResponse[WorkflowVariantResponse]
613
+ Successful Response
614
+ """
615
+ _response = self._client_wrapper.httpx_client.request(
616
+ "preview/base/workflows/variants/",
617
+ method="POST",
618
+ json={
619
+ "variant": convert_and_respect_annotation_metadata(
620
+ object_=variant, annotation=WorkflowVariant, direction="write"
621
+ ),
622
+ },
623
+ headers={
624
+ "content-type": "application/json",
625
+ },
626
+ request_options=request_options,
627
+ omit=OMIT,
628
+ )
629
+ try:
630
+ if 200 <= _response.status_code < 300:
631
+ _data = typing.cast(
632
+ WorkflowVariantResponse,
633
+ parse_obj_as(
634
+ type_=WorkflowVariantResponse, # type: ignore
635
+ object_=_response.json(),
636
+ ),
637
+ )
638
+ return HttpResponse(response=_response, data=_data)
639
+ if _response.status_code == 422:
640
+ raise UnprocessableEntityError(
641
+ headers=dict(_response.headers),
642
+ body=typing.cast(
643
+ HttpValidationError,
644
+ parse_obj_as(
645
+ type_=HttpValidationError, # type: ignore
646
+ object_=_response.json(),
647
+ ),
648
+ ),
649
+ )
650
+ _response_json = _response.json()
651
+ except JSONDecodeError:
652
+ raise ApiError(
653
+ status_code=_response.status_code,
654
+ headers=dict(_response.headers),
655
+ body=_response.text,
656
+ )
657
+ raise ApiError(
658
+ status_code=_response.status_code,
659
+ headers=dict(_response.headers),
660
+ body=_response_json,
661
+ )
662
+
663
+ def fetch_workflow_variant(
664
+ self,
665
+ variant_id: str,
666
+ *,
667
+ request_options: typing.Optional[RequestOptions] = None,
668
+ ) -> HttpResponse[WorkflowVariantResponse]:
669
+ """
670
+ Parameters
671
+ ----------
672
+ variant_id : str
673
+
674
+ request_options : typing.Optional[RequestOptions]
675
+ Request-specific configuration.
676
+
677
+ Returns
678
+ -------
679
+ HttpResponse[WorkflowVariantResponse]
680
+ Successful Response
681
+ """
682
+ _response = self._client_wrapper.httpx_client.request(
683
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}",
684
+ method="GET",
685
+ request_options=request_options,
686
+ )
687
+ try:
688
+ if 200 <= _response.status_code < 300:
689
+ _data = typing.cast(
690
+ WorkflowVariantResponse,
691
+ parse_obj_as(
692
+ type_=WorkflowVariantResponse, # type: ignore
693
+ object_=_response.json(),
694
+ ),
695
+ )
696
+ return HttpResponse(response=_response, data=_data)
697
+ if _response.status_code == 422:
698
+ raise UnprocessableEntityError(
699
+ headers=dict(_response.headers),
700
+ body=typing.cast(
701
+ HttpValidationError,
702
+ parse_obj_as(
703
+ type_=HttpValidationError, # type: ignore
704
+ object_=_response.json(),
705
+ ),
706
+ ),
707
+ )
708
+ _response_json = _response.json()
709
+ except JSONDecodeError:
710
+ raise ApiError(
711
+ status_code=_response.status_code,
712
+ headers=dict(_response.headers),
713
+ body=_response.text,
714
+ )
715
+ raise ApiError(
716
+ status_code=_response.status_code,
717
+ headers=dict(_response.headers),
718
+ body=_response_json,
719
+ )
720
+
721
+ def edit_workflow_variant(
722
+ self,
723
+ variant_id: str,
724
+ *,
725
+ variant: WorkflowVariant,
726
+ request_options: typing.Optional[RequestOptions] = None,
727
+ ) -> HttpResponse[WorkflowVariantResponse]:
728
+ """
729
+ Parameters
730
+ ----------
731
+ variant_id : str
732
+
733
+ variant : WorkflowVariant
734
+
735
+ request_options : typing.Optional[RequestOptions]
736
+ Request-specific configuration.
737
+
738
+ Returns
739
+ -------
740
+ HttpResponse[WorkflowVariantResponse]
741
+ Successful Response
742
+ """
743
+ _response = self._client_wrapper.httpx_client.request(
744
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}",
745
+ method="PUT",
746
+ json={
747
+ "variant": convert_and_respect_annotation_metadata(
748
+ object_=variant, annotation=WorkflowVariant, direction="write"
749
+ ),
750
+ },
751
+ headers={
752
+ "content-type": "application/json",
753
+ },
754
+ request_options=request_options,
755
+ omit=OMIT,
756
+ )
757
+ try:
758
+ if 200 <= _response.status_code < 300:
759
+ _data = typing.cast(
760
+ WorkflowVariantResponse,
761
+ parse_obj_as(
762
+ type_=WorkflowVariantResponse, # type: ignore
763
+ object_=_response.json(),
764
+ ),
765
+ )
766
+ return HttpResponse(response=_response, data=_data)
767
+ if _response.status_code == 422:
768
+ raise UnprocessableEntityError(
769
+ headers=dict(_response.headers),
770
+ body=typing.cast(
771
+ HttpValidationError,
772
+ parse_obj_as(
773
+ type_=HttpValidationError, # type: ignore
774
+ object_=_response.json(),
775
+ ),
776
+ ),
777
+ )
778
+ _response_json = _response.json()
779
+ except JSONDecodeError:
780
+ raise ApiError(
781
+ status_code=_response.status_code,
782
+ headers=dict(_response.headers),
783
+ body=_response.text,
784
+ )
785
+ raise ApiError(
786
+ status_code=_response.status_code,
787
+ headers=dict(_response.headers),
788
+ body=_response_json,
789
+ )
790
+
791
+ def archive_workflow_variant(
792
+ self,
793
+ variant_id: str,
794
+ *,
795
+ request_options: typing.Optional[RequestOptions] = None,
796
+ ) -> HttpResponse[WorkflowVariantResponse]:
797
+ """
798
+ Parameters
799
+ ----------
800
+ variant_id : str
801
+
802
+ request_options : typing.Optional[RequestOptions]
803
+ Request-specific configuration.
804
+
805
+ Returns
806
+ -------
807
+ HttpResponse[WorkflowVariantResponse]
808
+ Successful Response
809
+ """
810
+ _response = self._client_wrapper.httpx_client.request(
811
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/archive",
812
+ method="POST",
813
+ request_options=request_options,
814
+ )
815
+ try:
816
+ if 200 <= _response.status_code < 300:
817
+ _data = typing.cast(
818
+ WorkflowVariantResponse,
819
+ parse_obj_as(
820
+ type_=WorkflowVariantResponse, # type: ignore
821
+ object_=_response.json(),
822
+ ),
823
+ )
824
+ return HttpResponse(response=_response, data=_data)
825
+ if _response.status_code == 422:
826
+ raise UnprocessableEntityError(
827
+ headers=dict(_response.headers),
828
+ body=typing.cast(
829
+ HttpValidationError,
830
+ parse_obj_as(
831
+ type_=HttpValidationError, # type: ignore
832
+ object_=_response.json(),
833
+ ),
834
+ ),
835
+ )
836
+ _response_json = _response.json()
837
+ except JSONDecodeError:
838
+ raise ApiError(
839
+ status_code=_response.status_code,
840
+ headers=dict(_response.headers),
841
+ body=_response.text,
842
+ )
843
+ raise ApiError(
844
+ status_code=_response.status_code,
845
+ headers=dict(_response.headers),
846
+ body=_response_json,
847
+ )
848
+
849
+ def unarchive_workflow_variant(
850
+ self,
851
+ variant_id: str,
852
+ *,
853
+ request_options: typing.Optional[RequestOptions] = None,
854
+ ) -> HttpResponse[WorkflowVariantResponse]:
855
+ """
856
+ Parameters
857
+ ----------
858
+ variant_id : str
859
+
860
+ request_options : typing.Optional[RequestOptions]
861
+ Request-specific configuration.
862
+
863
+ Returns
864
+ -------
865
+ HttpResponse[WorkflowVariantResponse]
866
+ Successful Response
867
+ """
868
+ _response = self._client_wrapper.httpx_client.request(
869
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/unarchive",
870
+ method="POST",
871
+ request_options=request_options,
872
+ )
873
+ try:
874
+ if 200 <= _response.status_code < 300:
875
+ _data = typing.cast(
876
+ WorkflowVariantResponse,
877
+ parse_obj_as(
878
+ type_=WorkflowVariantResponse, # type: ignore
879
+ object_=_response.json(),
880
+ ),
881
+ )
882
+ return HttpResponse(response=_response, data=_data)
883
+ if _response.status_code == 422:
884
+ raise UnprocessableEntityError(
885
+ headers=dict(_response.headers),
886
+ body=typing.cast(
887
+ HttpValidationError,
888
+ parse_obj_as(
889
+ type_=HttpValidationError, # type: ignore
890
+ object_=_response.json(),
891
+ ),
892
+ ),
893
+ )
894
+ _response_json = _response.json()
895
+ except JSONDecodeError:
896
+ raise ApiError(
897
+ status_code=_response.status_code,
898
+ headers=dict(_response.headers),
899
+ body=_response.text,
900
+ )
901
+ raise ApiError(
902
+ status_code=_response.status_code,
903
+ headers=dict(_response.headers),
904
+ body=_response_json,
905
+ )
906
+
907
+ def query_workflow_variants(
908
+ self,
909
+ *,
910
+ workflow_ref: typing.Optional[str] = None,
911
+ variant_ref: typing.Optional[str] = None,
912
+ variant_meta: typing.Optional[str] = None,
913
+ variant_flags: typing.Optional[str] = None,
914
+ include_archived: typing.Optional[bool] = None,
915
+ request_options: typing.Optional[RequestOptions] = None,
916
+ ) -> HttpResponse[WorkflowVariantsResponse]:
917
+ """
918
+ Parameters
919
+ ----------
920
+ workflow_ref : typing.Optional[str]
921
+ JSON string of reference, e.g. {"key": value}
922
+
923
+ variant_ref : typing.Optional[str]
924
+ JSON string of reference, e.g. {"key": value}
925
+
926
+ variant_meta : typing.Optional[str]
927
+ JSON string of meta, e.g. {"key": value}
928
+
929
+ variant_flags : typing.Optional[str]
930
+ JSON string of flags, e.g. {"key": value}
931
+
932
+ include_archived : typing.Optional[bool]
933
+
934
+ request_options : typing.Optional[RequestOptions]
935
+ Request-specific configuration.
936
+
937
+ Returns
938
+ -------
939
+ HttpResponse[WorkflowVariantsResponse]
940
+ Successful Response
941
+ """
942
+ _response = self._client_wrapper.httpx_client.request(
943
+ "preview/base/workflows/variants/query",
944
+ method="POST",
945
+ params={
946
+ "workflow_ref": workflow_ref,
947
+ "variant_ref": variant_ref,
948
+ "variant_meta": variant_meta,
949
+ "variant_flags": variant_flags,
950
+ "include_archived": include_archived,
951
+ },
952
+ request_options=request_options,
953
+ )
954
+ try:
955
+ if 200 <= _response.status_code < 300:
956
+ _data = typing.cast(
957
+ WorkflowVariantsResponse,
958
+ parse_obj_as(
959
+ type_=WorkflowVariantsResponse, # type: ignore
960
+ object_=_response.json(),
961
+ ),
962
+ )
963
+ return HttpResponse(response=_response, data=_data)
964
+ if _response.status_code == 422:
965
+ raise UnprocessableEntityError(
966
+ headers=dict(_response.headers),
967
+ body=typing.cast(
968
+ HttpValidationError,
969
+ parse_obj_as(
970
+ type_=HttpValidationError, # type: ignore
971
+ object_=_response.json(),
972
+ ),
973
+ ),
974
+ )
975
+ _response_json = _response.json()
976
+ except JSONDecodeError:
977
+ raise ApiError(
978
+ status_code=_response.status_code,
979
+ headers=dict(_response.headers),
980
+ body=_response.text,
981
+ )
982
+ raise ApiError(
983
+ status_code=_response.status_code,
984
+ headers=dict(_response.headers),
985
+ body=_response_json,
986
+ )
987
+
988
+ def commit_workflow_revision_by_variant_id(
989
+ self,
990
+ variant_id: typing.Optional[str],
991
+ *,
992
+ revision: WorkflowRevision,
993
+ request_options: typing.Optional[RequestOptions] = None,
994
+ ) -> HttpResponse[WorkflowRevisionResponse]:
995
+ """
996
+ Parameters
997
+ ----------
998
+ variant_id : typing.Optional[str]
999
+
1000
+ revision : WorkflowRevision
1001
+
1002
+ request_options : typing.Optional[RequestOptions]
1003
+ Request-specific configuration.
1004
+
1005
+ Returns
1006
+ -------
1007
+ HttpResponse[WorkflowRevisionResponse]
1008
+ Successful Response
1009
+ """
1010
+ _response = self._client_wrapper.httpx_client.request(
1011
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/commit",
1012
+ method="POST",
1013
+ json={
1014
+ "revision": convert_and_respect_annotation_metadata(
1015
+ object_=revision, annotation=WorkflowRevision, direction="write"
1016
+ ),
1017
+ },
1018
+ headers={
1019
+ "content-type": "application/json",
1020
+ },
1021
+ request_options=request_options,
1022
+ omit=OMIT,
1023
+ )
1024
+ try:
1025
+ if 200 <= _response.status_code < 300:
1026
+ _data = typing.cast(
1027
+ WorkflowRevisionResponse,
1028
+ parse_obj_as(
1029
+ type_=WorkflowRevisionResponse, # type: ignore
1030
+ object_=_response.json(),
1031
+ ),
1032
+ )
1033
+ return HttpResponse(response=_response, data=_data)
1034
+ if _response.status_code == 422:
1035
+ raise UnprocessableEntityError(
1036
+ headers=dict(_response.headers),
1037
+ body=typing.cast(
1038
+ HttpValidationError,
1039
+ parse_obj_as(
1040
+ type_=HttpValidationError, # type: ignore
1041
+ object_=_response.json(),
1042
+ ),
1043
+ ),
1044
+ )
1045
+ _response_json = _response.json()
1046
+ except JSONDecodeError:
1047
+ raise ApiError(
1048
+ status_code=_response.status_code,
1049
+ headers=dict(_response.headers),
1050
+ body=_response.text,
1051
+ )
1052
+ raise ApiError(
1053
+ status_code=_response.status_code,
1054
+ headers=dict(_response.headers),
1055
+ body=_response_json,
1056
+ )
1057
+
1058
+ def fork_workflow_variant(
1059
+ self,
1060
+ variant_id: typing.Optional[str],
1061
+ *,
1062
+ revision: WorkflowRevision,
1063
+ revision_id: typing.Optional[str] = None,
1064
+ request_options: typing.Optional[RequestOptions] = None,
1065
+ ) -> HttpResponse[WorkflowVariantResponse]:
1066
+ """
1067
+ Parameters
1068
+ ----------
1069
+ variant_id : typing.Optional[str]
1070
+
1071
+ revision : WorkflowRevision
1072
+
1073
+ revision_id : typing.Optional[str]
1074
+
1075
+ request_options : typing.Optional[RequestOptions]
1076
+ Request-specific configuration.
1077
+
1078
+ Returns
1079
+ -------
1080
+ HttpResponse[WorkflowVariantResponse]
1081
+ Successful Response
1082
+ """
1083
+ _response = self._client_wrapper.httpx_client.request(
1084
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/fork",
1085
+ method="POST",
1086
+ params={
1087
+ "revision_id": revision_id,
1088
+ },
1089
+ json={
1090
+ "revision": convert_and_respect_annotation_metadata(
1091
+ object_=revision, annotation=WorkflowRevision, direction="write"
1092
+ ),
1093
+ },
1094
+ headers={
1095
+ "content-type": "application/json",
1096
+ },
1097
+ request_options=request_options,
1098
+ omit=OMIT,
1099
+ )
1100
+ try:
1101
+ if 200 <= _response.status_code < 300:
1102
+ _data = typing.cast(
1103
+ WorkflowVariantResponse,
1104
+ parse_obj_as(
1105
+ type_=WorkflowVariantResponse, # type: ignore
1106
+ object_=_response.json(),
1107
+ ),
1108
+ )
1109
+ return HttpResponse(response=_response, data=_data)
1110
+ if _response.status_code == 422:
1111
+ raise UnprocessableEntityError(
1112
+ headers=dict(_response.headers),
1113
+ body=typing.cast(
1114
+ HttpValidationError,
1115
+ parse_obj_as(
1116
+ type_=HttpValidationError, # type: ignore
1117
+ object_=_response.json(),
1118
+ ),
1119
+ ),
1120
+ )
1121
+ _response_json = _response.json()
1122
+ except JSONDecodeError:
1123
+ raise ApiError(
1124
+ status_code=_response.status_code,
1125
+ headers=dict(_response.headers),
1126
+ body=_response.text,
1127
+ )
1128
+ raise ApiError(
1129
+ status_code=_response.status_code,
1130
+ headers=dict(_response.headers),
1131
+ body=_response_json,
1132
+ )
1133
+
1134
+ def list_workflow_revisions(
1135
+ self,
1136
+ *,
1137
+ variant_ref: typing.Optional[str] = None,
1138
+ revision_ref: typing.Optional[str] = None,
1139
+ revision_meta: typing.Optional[str] = None,
1140
+ revision_flags: typing.Optional[str] = None,
1141
+ include_archived: typing.Optional[bool] = None,
1142
+ request_options: typing.Optional[RequestOptions] = None,
1143
+ ) -> HttpResponse[WorkflowRevisionsResponse]:
1144
+ """
1145
+ Parameters
1146
+ ----------
1147
+ variant_ref : typing.Optional[str]
1148
+ JSON string of ref, e.g. {"key": value}
1149
+
1150
+ revision_ref : typing.Optional[str]
1151
+ JSON string of ref, e.g. {"key": value}
1152
+
1153
+ revision_meta : typing.Optional[str]
1154
+ JSON string of meta, e.g. {"key": value}
1155
+
1156
+ revision_flags : typing.Optional[str]
1157
+ JSON string of flags, e.g. {"key": value}
1158
+
1159
+ include_archived : typing.Optional[bool]
1160
+
1161
+ request_options : typing.Optional[RequestOptions]
1162
+ Request-specific configuration.
1163
+
1164
+ Returns
1165
+ -------
1166
+ HttpResponse[WorkflowRevisionsResponse]
1167
+ Successful Response
1168
+ """
1169
+ _response = self._client_wrapper.httpx_client.request(
1170
+ "preview/base/workflows/revisions/",
1171
+ method="GET",
1172
+ params={
1173
+ "variant_ref": variant_ref,
1174
+ "revision_ref": revision_ref,
1175
+ "revision_meta": revision_meta,
1176
+ "revision_flags": revision_flags,
1177
+ "include_archived": include_archived,
1178
+ },
1179
+ request_options=request_options,
1180
+ )
1181
+ try:
1182
+ if 200 <= _response.status_code < 300:
1183
+ _data = typing.cast(
1184
+ WorkflowRevisionsResponse,
1185
+ parse_obj_as(
1186
+ type_=WorkflowRevisionsResponse, # type: ignore
1187
+ object_=_response.json(),
1188
+ ),
1189
+ )
1190
+ return HttpResponse(response=_response, data=_data)
1191
+ if _response.status_code == 422:
1192
+ raise UnprocessableEntityError(
1193
+ headers=dict(_response.headers),
1194
+ body=typing.cast(
1195
+ HttpValidationError,
1196
+ parse_obj_as(
1197
+ type_=HttpValidationError, # type: ignore
1198
+ object_=_response.json(),
1199
+ ),
1200
+ ),
1201
+ )
1202
+ _response_json = _response.json()
1203
+ except JSONDecodeError:
1204
+ raise ApiError(
1205
+ status_code=_response.status_code,
1206
+ headers=dict(_response.headers),
1207
+ body=_response.text,
1208
+ )
1209
+ raise ApiError(
1210
+ status_code=_response.status_code,
1211
+ headers=dict(_response.headers),
1212
+ body=_response_json,
1213
+ )
1214
+
1215
+ def create_workflow_revision(
1216
+ self,
1217
+ *,
1218
+ revision: WorkflowRevision,
1219
+ request_options: typing.Optional[RequestOptions] = None,
1220
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1221
+ """
1222
+ Parameters
1223
+ ----------
1224
+ revision : WorkflowRevision
1225
+
1226
+ request_options : typing.Optional[RequestOptions]
1227
+ Request-specific configuration.
1228
+
1229
+ Returns
1230
+ -------
1231
+ HttpResponse[WorkflowRevisionResponse]
1232
+ Successful Response
1233
+ """
1234
+ _response = self._client_wrapper.httpx_client.request(
1235
+ "preview/base/workflows/revisions/",
1236
+ method="POST",
1237
+ json={
1238
+ "revision": convert_and_respect_annotation_metadata(
1239
+ object_=revision, annotation=WorkflowRevision, direction="write"
1240
+ ),
1241
+ },
1242
+ headers={
1243
+ "content-type": "application/json",
1244
+ },
1245
+ request_options=request_options,
1246
+ omit=OMIT,
1247
+ )
1248
+ try:
1249
+ if 200 <= _response.status_code < 300:
1250
+ _data = typing.cast(
1251
+ WorkflowRevisionResponse,
1252
+ parse_obj_as(
1253
+ type_=WorkflowRevisionResponse, # type: ignore
1254
+ object_=_response.json(),
1255
+ ),
1256
+ )
1257
+ return HttpResponse(response=_response, data=_data)
1258
+ if _response.status_code == 422:
1259
+ raise UnprocessableEntityError(
1260
+ headers=dict(_response.headers),
1261
+ body=typing.cast(
1262
+ HttpValidationError,
1263
+ parse_obj_as(
1264
+ type_=HttpValidationError, # type: ignore
1265
+ object_=_response.json(),
1266
+ ),
1267
+ ),
1268
+ )
1269
+ _response_json = _response.json()
1270
+ except JSONDecodeError:
1271
+ raise ApiError(
1272
+ status_code=_response.status_code,
1273
+ headers=dict(_response.headers),
1274
+ body=_response.text,
1275
+ )
1276
+ raise ApiError(
1277
+ status_code=_response.status_code,
1278
+ headers=dict(_response.headers),
1279
+ body=_response_json,
1280
+ )
1281
+
1282
+ def fetch_workflow_revision(
1283
+ self,
1284
+ revision_id: str,
1285
+ *,
1286
+ request_options: typing.Optional[RequestOptions] = None,
1287
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1288
+ """
1289
+ Parameters
1290
+ ----------
1291
+ revision_id : str
1292
+
1293
+ request_options : typing.Optional[RequestOptions]
1294
+ Request-specific configuration.
1295
+
1296
+ Returns
1297
+ -------
1298
+ HttpResponse[WorkflowRevisionResponse]
1299
+ Successful Response
1300
+ """
1301
+ _response = self._client_wrapper.httpx_client.request(
1302
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}",
1303
+ method="GET",
1304
+ request_options=request_options,
1305
+ )
1306
+ try:
1307
+ if 200 <= _response.status_code < 300:
1308
+ _data = typing.cast(
1309
+ WorkflowRevisionResponse,
1310
+ parse_obj_as(
1311
+ type_=WorkflowRevisionResponse, # type: ignore
1312
+ object_=_response.json(),
1313
+ ),
1314
+ )
1315
+ return HttpResponse(response=_response, data=_data)
1316
+ if _response.status_code == 422:
1317
+ raise UnprocessableEntityError(
1318
+ headers=dict(_response.headers),
1319
+ body=typing.cast(
1320
+ HttpValidationError,
1321
+ parse_obj_as(
1322
+ type_=HttpValidationError, # type: ignore
1323
+ object_=_response.json(),
1324
+ ),
1325
+ ),
1326
+ )
1327
+ _response_json = _response.json()
1328
+ except JSONDecodeError:
1329
+ raise ApiError(
1330
+ status_code=_response.status_code,
1331
+ headers=dict(_response.headers),
1332
+ body=_response.text,
1333
+ )
1334
+ raise ApiError(
1335
+ status_code=_response.status_code,
1336
+ headers=dict(_response.headers),
1337
+ body=_response_json,
1338
+ )
1339
+
1340
+ def edit_workflow_revision(
1341
+ self,
1342
+ revision_id: str,
1343
+ *,
1344
+ revision: WorkflowRevision,
1345
+ request_options: typing.Optional[RequestOptions] = None,
1346
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1347
+ """
1348
+ Parameters
1349
+ ----------
1350
+ revision_id : str
1351
+
1352
+ revision : WorkflowRevision
1353
+
1354
+ request_options : typing.Optional[RequestOptions]
1355
+ Request-specific configuration.
1356
+
1357
+ Returns
1358
+ -------
1359
+ HttpResponse[WorkflowRevisionResponse]
1360
+ Successful Response
1361
+ """
1362
+ _response = self._client_wrapper.httpx_client.request(
1363
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}",
1364
+ method="PUT",
1365
+ json={
1366
+ "revision": convert_and_respect_annotation_metadata(
1367
+ object_=revision, annotation=WorkflowRevision, direction="write"
1368
+ ),
1369
+ },
1370
+ headers={
1371
+ "content-type": "application/json",
1372
+ },
1373
+ request_options=request_options,
1374
+ omit=OMIT,
1375
+ )
1376
+ try:
1377
+ if 200 <= _response.status_code < 300:
1378
+ _data = typing.cast(
1379
+ WorkflowRevisionResponse,
1380
+ parse_obj_as(
1381
+ type_=WorkflowRevisionResponse, # type: ignore
1382
+ object_=_response.json(),
1383
+ ),
1384
+ )
1385
+ return HttpResponse(response=_response, data=_data)
1386
+ if _response.status_code == 422:
1387
+ raise UnprocessableEntityError(
1388
+ headers=dict(_response.headers),
1389
+ body=typing.cast(
1390
+ HttpValidationError,
1391
+ parse_obj_as(
1392
+ type_=HttpValidationError, # type: ignore
1393
+ object_=_response.json(),
1394
+ ),
1395
+ ),
1396
+ )
1397
+ _response_json = _response.json()
1398
+ except JSONDecodeError:
1399
+ raise ApiError(
1400
+ status_code=_response.status_code,
1401
+ headers=dict(_response.headers),
1402
+ body=_response.text,
1403
+ )
1404
+ raise ApiError(
1405
+ status_code=_response.status_code,
1406
+ headers=dict(_response.headers),
1407
+ body=_response_json,
1408
+ )
1409
+
1410
+ def archive_workflow_revision_rpc(
1411
+ self,
1412
+ revision_id: str,
1413
+ *,
1414
+ request_options: typing.Optional[RequestOptions] = None,
1415
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1416
+ """
1417
+ Parameters
1418
+ ----------
1419
+ revision_id : str
1420
+
1421
+ request_options : typing.Optional[RequestOptions]
1422
+ Request-specific configuration.
1423
+
1424
+ Returns
1425
+ -------
1426
+ HttpResponse[WorkflowRevisionResponse]
1427
+ Successful Response
1428
+ """
1429
+ _response = self._client_wrapper.httpx_client.request(
1430
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/archive",
1431
+ method="POST",
1432
+ request_options=request_options,
1433
+ )
1434
+ try:
1435
+ if 200 <= _response.status_code < 300:
1436
+ _data = typing.cast(
1437
+ WorkflowRevisionResponse,
1438
+ parse_obj_as(
1439
+ type_=WorkflowRevisionResponse, # type: ignore
1440
+ object_=_response.json(),
1441
+ ),
1442
+ )
1443
+ return HttpResponse(response=_response, data=_data)
1444
+ if _response.status_code == 422:
1445
+ raise UnprocessableEntityError(
1446
+ headers=dict(_response.headers),
1447
+ body=typing.cast(
1448
+ HttpValidationError,
1449
+ parse_obj_as(
1450
+ type_=HttpValidationError, # type: ignore
1451
+ object_=_response.json(),
1452
+ ),
1453
+ ),
1454
+ )
1455
+ _response_json = _response.json()
1456
+ except JSONDecodeError:
1457
+ raise ApiError(
1458
+ status_code=_response.status_code,
1459
+ headers=dict(_response.headers),
1460
+ body=_response.text,
1461
+ )
1462
+ raise ApiError(
1463
+ status_code=_response.status_code,
1464
+ headers=dict(_response.headers),
1465
+ body=_response_json,
1466
+ )
1467
+
1468
+ def unarchive_workflow_revision_rpc(
1469
+ self,
1470
+ revision_id: str,
1471
+ *,
1472
+ request_options: typing.Optional[RequestOptions] = None,
1473
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1474
+ """
1475
+ Parameters
1476
+ ----------
1477
+ revision_id : str
1478
+
1479
+ request_options : typing.Optional[RequestOptions]
1480
+ Request-specific configuration.
1481
+
1482
+ Returns
1483
+ -------
1484
+ HttpResponse[WorkflowRevisionResponse]
1485
+ Successful Response
1486
+ """
1487
+ _response = self._client_wrapper.httpx_client.request(
1488
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/unarchive",
1489
+ method="POST",
1490
+ request_options=request_options,
1491
+ )
1492
+ try:
1493
+ if 200 <= _response.status_code < 300:
1494
+ _data = typing.cast(
1495
+ WorkflowRevisionResponse,
1496
+ parse_obj_as(
1497
+ type_=WorkflowRevisionResponse, # type: ignore
1498
+ object_=_response.json(),
1499
+ ),
1500
+ )
1501
+ return HttpResponse(response=_response, data=_data)
1502
+ if _response.status_code == 422:
1503
+ raise UnprocessableEntityError(
1504
+ headers=dict(_response.headers),
1505
+ body=typing.cast(
1506
+ HttpValidationError,
1507
+ parse_obj_as(
1508
+ type_=HttpValidationError, # type: ignore
1509
+ object_=_response.json(),
1510
+ ),
1511
+ ),
1512
+ )
1513
+ _response_json = _response.json()
1514
+ except JSONDecodeError:
1515
+ raise ApiError(
1516
+ status_code=_response.status_code,
1517
+ headers=dict(_response.headers),
1518
+ body=_response.text,
1519
+ )
1520
+ raise ApiError(
1521
+ status_code=_response.status_code,
1522
+ headers=dict(_response.headers),
1523
+ body=_response_json,
1524
+ )
1525
+
1526
+ def query_workflow_revisions(
1527
+ self,
1528
+ *,
1529
+ variant_ref: typing.Optional[str] = None,
1530
+ revision_ref: typing.Optional[str] = None,
1531
+ revision_meta: typing.Optional[str] = None,
1532
+ revision_flags: typing.Optional[str] = None,
1533
+ include_archived: typing.Optional[bool] = None,
1534
+ request_options: typing.Optional[RequestOptions] = None,
1535
+ ) -> HttpResponse[WorkflowRevisionsResponse]:
1536
+ """
1537
+ Parameters
1538
+ ----------
1539
+ variant_ref : typing.Optional[str]
1540
+ JSON string of ref, e.g. {"key": value}
1541
+
1542
+ revision_ref : typing.Optional[str]
1543
+ JSON string of ref, e.g. {"key": value}
1544
+
1545
+ revision_meta : typing.Optional[str]
1546
+ JSON string of meta, e.g. {"key": value}
1547
+
1548
+ revision_flags : typing.Optional[str]
1549
+ JSON string of flags, e.g. {"key": value}
1550
+
1551
+ include_archived : typing.Optional[bool]
1552
+
1553
+ request_options : typing.Optional[RequestOptions]
1554
+ Request-specific configuration.
1555
+
1556
+ Returns
1557
+ -------
1558
+ HttpResponse[WorkflowRevisionsResponse]
1559
+ Successful Response
1560
+ """
1561
+ _response = self._client_wrapper.httpx_client.request(
1562
+ "preview/base/workflows/revisions/query",
1563
+ method="POST",
1564
+ params={
1565
+ "variant_ref": variant_ref,
1566
+ "revision_ref": revision_ref,
1567
+ "revision_meta": revision_meta,
1568
+ "revision_flags": revision_flags,
1569
+ "include_archived": include_archived,
1570
+ },
1571
+ request_options=request_options,
1572
+ )
1573
+ try:
1574
+ if 200 <= _response.status_code < 300:
1575
+ _data = typing.cast(
1576
+ WorkflowRevisionsResponse,
1577
+ parse_obj_as(
1578
+ type_=WorkflowRevisionsResponse, # type: ignore
1579
+ object_=_response.json(),
1580
+ ),
1581
+ )
1582
+ return HttpResponse(response=_response, data=_data)
1583
+ if _response.status_code == 422:
1584
+ raise UnprocessableEntityError(
1585
+ headers=dict(_response.headers),
1586
+ body=typing.cast(
1587
+ HttpValidationError,
1588
+ parse_obj_as(
1589
+ type_=HttpValidationError, # type: ignore
1590
+ object_=_response.json(),
1591
+ ),
1592
+ ),
1593
+ )
1594
+ _response_json = _response.json()
1595
+ except JSONDecodeError:
1596
+ raise ApiError(
1597
+ status_code=_response.status_code,
1598
+ headers=dict(_response.headers),
1599
+ body=_response.text,
1600
+ )
1601
+ raise ApiError(
1602
+ status_code=_response.status_code,
1603
+ headers=dict(_response.headers),
1604
+ body=_response_json,
1605
+ )
1606
+
1607
+ def fork_workflow_variant_by_revision_id(
1608
+ self,
1609
+ revision_id: typing.Optional[str],
1610
+ *,
1611
+ revision: WorkflowRevision,
1612
+ variant_id: typing.Optional[str] = None,
1613
+ request_options: typing.Optional[RequestOptions] = None,
1614
+ ) -> HttpResponse[WorkflowVariantResponse]:
1615
+ """
1616
+ Parameters
1617
+ ----------
1618
+ revision_id : typing.Optional[str]
1619
+
1620
+ revision : WorkflowRevision
1621
+
1622
+ variant_id : typing.Optional[str]
1623
+
1624
+ request_options : typing.Optional[RequestOptions]
1625
+ Request-specific configuration.
1626
+
1627
+ Returns
1628
+ -------
1629
+ HttpResponse[WorkflowVariantResponse]
1630
+ Successful Response
1631
+ """
1632
+ _response = self._client_wrapper.httpx_client.request(
1633
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/fork",
1634
+ method="POST",
1635
+ params={
1636
+ "variant_id": variant_id,
1637
+ },
1638
+ json={
1639
+ "revision": convert_and_respect_annotation_metadata(
1640
+ object_=revision, annotation=WorkflowRevision, direction="write"
1641
+ ),
1642
+ },
1643
+ headers={
1644
+ "content-type": "application/json",
1645
+ },
1646
+ request_options=request_options,
1647
+ omit=OMIT,
1648
+ )
1649
+ try:
1650
+ if 200 <= _response.status_code < 300:
1651
+ _data = typing.cast(
1652
+ WorkflowVariantResponse,
1653
+ parse_obj_as(
1654
+ type_=WorkflowVariantResponse, # type: ignore
1655
+ object_=_response.json(),
1656
+ ),
1657
+ )
1658
+ return HttpResponse(response=_response, data=_data)
1659
+ if _response.status_code == 422:
1660
+ raise UnprocessableEntityError(
1661
+ headers=dict(_response.headers),
1662
+ body=typing.cast(
1663
+ HttpValidationError,
1664
+ parse_obj_as(
1665
+ type_=HttpValidationError, # type: ignore
1666
+ object_=_response.json(),
1667
+ ),
1668
+ ),
1669
+ )
1670
+ _response_json = _response.json()
1671
+ except JSONDecodeError:
1672
+ raise ApiError(
1673
+ status_code=_response.status_code,
1674
+ headers=dict(_response.headers),
1675
+ body=_response.text,
1676
+ )
1677
+ raise ApiError(
1678
+ status_code=_response.status_code,
1679
+ headers=dict(_response.headers),
1680
+ body=_response_json,
1681
+ )
1682
+
1683
+ def commit_workflow_revision(
1684
+ self,
1685
+ *,
1686
+ revision: WorkflowRevision,
1687
+ variant_id: typing.Optional[str] = None,
1688
+ request_options: typing.Optional[RequestOptions] = None,
1689
+ ) -> HttpResponse[WorkflowRevisionResponse]:
1690
+ """
1691
+ Parameters
1692
+ ----------
1693
+ revision : WorkflowRevision
1694
+
1695
+ variant_id : typing.Optional[str]
1696
+
1697
+ request_options : typing.Optional[RequestOptions]
1698
+ Request-specific configuration.
1699
+
1700
+ Returns
1701
+ -------
1702
+ HttpResponse[WorkflowRevisionResponse]
1703
+ Successful Response
1704
+ """
1705
+ _response = self._client_wrapper.httpx_client.request(
1706
+ "preview/base/workflows/revisions/commit",
1707
+ method="POST",
1708
+ params={
1709
+ "variant_id": variant_id,
1710
+ },
1711
+ json={
1712
+ "revision": convert_and_respect_annotation_metadata(
1713
+ object_=revision, annotation=WorkflowRevision, direction="write"
1714
+ ),
1715
+ },
1716
+ headers={
1717
+ "content-type": "application/json",
1718
+ },
1719
+ request_options=request_options,
1720
+ omit=OMIT,
1721
+ )
1722
+ try:
1723
+ if 200 <= _response.status_code < 300:
1724
+ _data = typing.cast(
1725
+ WorkflowRevisionResponse,
1726
+ parse_obj_as(
1727
+ type_=WorkflowRevisionResponse, # type: ignore
1728
+ object_=_response.json(),
1729
+ ),
1730
+ )
1731
+ return HttpResponse(response=_response, data=_data)
1732
+ if _response.status_code == 422:
1733
+ raise UnprocessableEntityError(
1734
+ headers=dict(_response.headers),
1735
+ body=typing.cast(
1736
+ HttpValidationError,
1737
+ parse_obj_as(
1738
+ type_=HttpValidationError, # type: ignore
1739
+ object_=_response.json(),
1740
+ ),
1741
+ ),
1742
+ )
1743
+ _response_json = _response.json()
1744
+ except JSONDecodeError:
1745
+ raise ApiError(
1746
+ status_code=_response.status_code,
1747
+ headers=dict(_response.headers),
1748
+ body=_response.text,
1749
+ )
1750
+ raise ApiError(
1751
+ status_code=_response.status_code,
1752
+ headers=dict(_response.headers),
1753
+ body=_response_json,
1754
+ )
1755
+
1756
+ def log_workflow_revisions(
1757
+ self,
1758
+ *,
1759
+ depth: typing.Optional[int] = None,
1760
+ variant_ref: typing.Optional[Reference] = OMIT,
1761
+ revision_ref: typing.Optional[Reference] = OMIT,
1762
+ request_options: typing.Optional[RequestOptions] = None,
1763
+ ) -> HttpResponse[WorkflowRevisionsResponse]:
1764
+ """
1765
+ Parameters
1766
+ ----------
1767
+ depth : typing.Optional[int]
1768
+
1769
+ variant_ref : typing.Optional[Reference]
1770
+
1771
+ revision_ref : typing.Optional[Reference]
1772
+
1773
+ request_options : typing.Optional[RequestOptions]
1774
+ Request-specific configuration.
1775
+
1776
+ Returns
1777
+ -------
1778
+ HttpResponse[WorkflowRevisionsResponse]
1779
+ Successful Response
1780
+ """
1781
+ _response = self._client_wrapper.httpx_client.request(
1782
+ "preview/base/workflows/revisions/log",
1783
+ method="POST",
1784
+ params={
1785
+ "depth": depth,
1786
+ },
1787
+ json={
1788
+ "variant_ref": convert_and_respect_annotation_metadata(
1789
+ object_=variant_ref, annotation=Reference, direction="write"
1790
+ ),
1791
+ "revision_ref": convert_and_respect_annotation_metadata(
1792
+ object_=revision_ref, annotation=Reference, direction="write"
1793
+ ),
1794
+ },
1795
+ headers={
1796
+ "content-type": "application/json",
1797
+ },
1798
+ request_options=request_options,
1799
+ omit=OMIT,
1800
+ )
1801
+ try:
1802
+ if 200 <= _response.status_code < 300:
1803
+ _data = typing.cast(
1804
+ WorkflowRevisionsResponse,
1805
+ parse_obj_as(
1806
+ type_=WorkflowRevisionsResponse, # type: ignore
1807
+ object_=_response.json(),
1808
+ ),
1809
+ )
1810
+ return HttpResponse(response=_response, data=_data)
1811
+ if _response.status_code == 422:
1812
+ raise UnprocessableEntityError(
1813
+ headers=dict(_response.headers),
1814
+ body=typing.cast(
1815
+ HttpValidationError,
1816
+ parse_obj_as(
1817
+ type_=HttpValidationError, # type: ignore
1818
+ object_=_response.json(),
1819
+ ),
1820
+ ),
1821
+ )
1822
+ _response_json = _response.json()
1823
+ except JSONDecodeError:
1824
+ raise ApiError(
1825
+ status_code=_response.status_code,
1826
+ headers=dict(_response.headers),
1827
+ body=_response.text,
1828
+ )
1829
+ raise ApiError(
1830
+ status_code=_response.status_code,
1831
+ headers=dict(_response.headers),
1832
+ body=_response_json,
1833
+ )
1834
+
1835
+
1836
+ class AsyncRawWorkflowsClient:
1837
+ def __init__(self, *, client_wrapper: AsyncClientWrapper):
1838
+ self._client_wrapper = client_wrapper
1839
+
1840
+ async def list_workflows(
1841
+ self,
1842
+ *,
1843
+ workflow_ref: typing.Optional[str] = None,
1844
+ workflow_flags: typing.Optional[str] = None,
1845
+ workflow_meta: typing.Optional[str] = None,
1846
+ include_archived: typing.Optional[bool] = None,
1847
+ request_options: typing.Optional[RequestOptions] = None,
1848
+ ) -> AsyncHttpResponse[WorkflowsResponse]:
1849
+ """
1850
+ Parameters
1851
+ ----------
1852
+ workflow_ref : typing.Optional[str]
1853
+ JSON string of ref, e.g. {"key": value}
1854
+
1855
+ workflow_flags : typing.Optional[str]
1856
+ JSON string of flags, e.g. {"key": value}
1857
+
1858
+ workflow_meta : typing.Optional[str]
1859
+ JSON string of meta, e.g. {"key": value}
1860
+
1861
+ include_archived : typing.Optional[bool]
1862
+
1863
+ request_options : typing.Optional[RequestOptions]
1864
+ Request-specific configuration.
1865
+
1866
+ Returns
1867
+ -------
1868
+ AsyncHttpResponse[WorkflowsResponse]
1869
+ Successful Response
1870
+ """
1871
+ _response = await self._client_wrapper.httpx_client.request(
1872
+ "preview/base/workflows/",
1873
+ method="GET",
1874
+ params={
1875
+ "workflow_ref": workflow_ref,
1876
+ "workflow_flags": workflow_flags,
1877
+ "workflow_meta": workflow_meta,
1878
+ "include_archived": include_archived,
1879
+ },
1880
+ request_options=request_options,
1881
+ )
1882
+ try:
1883
+ if 200 <= _response.status_code < 300:
1884
+ _data = typing.cast(
1885
+ WorkflowsResponse,
1886
+ parse_obj_as(
1887
+ type_=WorkflowsResponse, # type: ignore
1888
+ object_=_response.json(),
1889
+ ),
1890
+ )
1891
+ return AsyncHttpResponse(response=_response, data=_data)
1892
+ if _response.status_code == 422:
1893
+ raise UnprocessableEntityError(
1894
+ headers=dict(_response.headers),
1895
+ body=typing.cast(
1896
+ HttpValidationError,
1897
+ parse_obj_as(
1898
+ type_=HttpValidationError, # type: ignore
1899
+ object_=_response.json(),
1900
+ ),
1901
+ ),
1902
+ )
1903
+ _response_json = _response.json()
1904
+ except JSONDecodeError:
1905
+ raise ApiError(
1906
+ status_code=_response.status_code,
1907
+ headers=dict(_response.headers),
1908
+ body=_response.text,
1909
+ )
1910
+ raise ApiError(
1911
+ status_code=_response.status_code,
1912
+ headers=dict(_response.headers),
1913
+ body=_response_json,
1914
+ )
1915
+
1916
+ async def create_workflow(
1917
+ self,
1918
+ *,
1919
+ workflow: WorkflowArtifact,
1920
+ request_options: typing.Optional[RequestOptions] = None,
1921
+ ) -> AsyncHttpResponse[WorkflowResponse]:
1922
+ """
1923
+ Parameters
1924
+ ----------
1925
+ workflow : WorkflowArtifact
1926
+
1927
+ request_options : typing.Optional[RequestOptions]
1928
+ Request-specific configuration.
1929
+
1930
+ Returns
1931
+ -------
1932
+ AsyncHttpResponse[WorkflowResponse]
1933
+ Successful Response
1934
+ """
1935
+ _response = await self._client_wrapper.httpx_client.request(
1936
+ "preview/base/workflows/",
1937
+ method="POST",
1938
+ json={
1939
+ "workflow": convert_and_respect_annotation_metadata(
1940
+ object_=workflow, annotation=WorkflowArtifact, direction="write"
1941
+ ),
1942
+ },
1943
+ headers={
1944
+ "content-type": "application/json",
1945
+ },
1946
+ request_options=request_options,
1947
+ omit=OMIT,
1948
+ )
1949
+ try:
1950
+ if 200 <= _response.status_code < 300:
1951
+ _data = typing.cast(
1952
+ WorkflowResponse,
1953
+ parse_obj_as(
1954
+ type_=WorkflowResponse, # type: ignore
1955
+ object_=_response.json(),
1956
+ ),
1957
+ )
1958
+ return AsyncHttpResponse(response=_response, data=_data)
1959
+ if _response.status_code == 422:
1960
+ raise UnprocessableEntityError(
1961
+ headers=dict(_response.headers),
1962
+ body=typing.cast(
1963
+ HttpValidationError,
1964
+ parse_obj_as(
1965
+ type_=HttpValidationError, # type: ignore
1966
+ object_=_response.json(),
1967
+ ),
1968
+ ),
1969
+ )
1970
+ _response_json = _response.json()
1971
+ except JSONDecodeError:
1972
+ raise ApiError(
1973
+ status_code=_response.status_code,
1974
+ headers=dict(_response.headers),
1975
+ body=_response.text,
1976
+ )
1977
+ raise ApiError(
1978
+ status_code=_response.status_code,
1979
+ headers=dict(_response.headers),
1980
+ body=_response_json,
1981
+ )
1982
+
1983
+ async def fetch_workflow(
1984
+ self,
1985
+ workflow_id: str,
1986
+ *,
1987
+ artifact_id: str,
1988
+ request_options: typing.Optional[RequestOptions] = None,
1989
+ ) -> AsyncHttpResponse[WorkflowResponse]:
1990
+ """
1991
+ Parameters
1992
+ ----------
1993
+ workflow_id : str
1994
+
1995
+ artifact_id : str
1996
+
1997
+ request_options : typing.Optional[RequestOptions]
1998
+ Request-specific configuration.
1999
+
2000
+ Returns
2001
+ -------
2002
+ AsyncHttpResponse[WorkflowResponse]
2003
+ Successful Response
2004
+ """
2005
+ _response = await self._client_wrapper.httpx_client.request(
2006
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}",
2007
+ method="GET",
2008
+ params={
2009
+ "artifact_id": artifact_id,
2010
+ },
2011
+ request_options=request_options,
2012
+ )
2013
+ try:
2014
+ if 200 <= _response.status_code < 300:
2015
+ _data = typing.cast(
2016
+ WorkflowResponse,
2017
+ parse_obj_as(
2018
+ type_=WorkflowResponse, # type: ignore
2019
+ object_=_response.json(),
2020
+ ),
2021
+ )
2022
+ return AsyncHttpResponse(response=_response, data=_data)
2023
+ if _response.status_code == 422:
2024
+ raise UnprocessableEntityError(
2025
+ headers=dict(_response.headers),
2026
+ body=typing.cast(
2027
+ HttpValidationError,
2028
+ parse_obj_as(
2029
+ type_=HttpValidationError, # type: ignore
2030
+ object_=_response.json(),
2031
+ ),
2032
+ ),
2033
+ )
2034
+ _response_json = _response.json()
2035
+ except JSONDecodeError:
2036
+ raise ApiError(
2037
+ status_code=_response.status_code,
2038
+ headers=dict(_response.headers),
2039
+ body=_response.text,
2040
+ )
2041
+ raise ApiError(
2042
+ status_code=_response.status_code,
2043
+ headers=dict(_response.headers),
2044
+ body=_response_json,
2045
+ )
2046
+
2047
+ async def edit_workflow(
2048
+ self,
2049
+ workflow_id: str,
2050
+ *,
2051
+ workflow: WorkflowArtifact,
2052
+ request_options: typing.Optional[RequestOptions] = None,
2053
+ ) -> AsyncHttpResponse[WorkflowResponse]:
2054
+ """
2055
+ Parameters
2056
+ ----------
2057
+ workflow_id : str
2058
+
2059
+ workflow : WorkflowArtifact
2060
+
2061
+ request_options : typing.Optional[RequestOptions]
2062
+ Request-specific configuration.
2063
+
2064
+ Returns
2065
+ -------
2066
+ AsyncHttpResponse[WorkflowResponse]
2067
+ Successful Response
2068
+ """
2069
+ _response = await self._client_wrapper.httpx_client.request(
2070
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}",
2071
+ method="PUT",
2072
+ json={
2073
+ "workflow": convert_and_respect_annotation_metadata(
2074
+ object_=workflow, annotation=WorkflowArtifact, direction="write"
2075
+ ),
2076
+ },
2077
+ headers={
2078
+ "content-type": "application/json",
2079
+ },
2080
+ request_options=request_options,
2081
+ omit=OMIT,
2082
+ )
2083
+ try:
2084
+ if 200 <= _response.status_code < 300:
2085
+ _data = typing.cast(
2086
+ WorkflowResponse,
2087
+ parse_obj_as(
2088
+ type_=WorkflowResponse, # type: ignore
2089
+ object_=_response.json(),
2090
+ ),
2091
+ )
2092
+ return AsyncHttpResponse(response=_response, data=_data)
2093
+ if _response.status_code == 422:
2094
+ raise UnprocessableEntityError(
2095
+ headers=dict(_response.headers),
2096
+ body=typing.cast(
2097
+ HttpValidationError,
2098
+ parse_obj_as(
2099
+ type_=HttpValidationError, # type: ignore
2100
+ object_=_response.json(),
2101
+ ),
2102
+ ),
2103
+ )
2104
+ _response_json = _response.json()
2105
+ except JSONDecodeError:
2106
+ raise ApiError(
2107
+ status_code=_response.status_code,
2108
+ headers=dict(_response.headers),
2109
+ body=_response.text,
2110
+ )
2111
+ raise ApiError(
2112
+ status_code=_response.status_code,
2113
+ headers=dict(_response.headers),
2114
+ body=_response_json,
2115
+ )
2116
+
2117
+ async def archive_workflow(
2118
+ self,
2119
+ workflow_id: str,
2120
+ *,
2121
+ artifact_id: str,
2122
+ request_options: typing.Optional[RequestOptions] = None,
2123
+ ) -> AsyncHttpResponse[WorkflowResponse]:
2124
+ """
2125
+ Parameters
2126
+ ----------
2127
+ workflow_id : str
2128
+
2129
+ artifact_id : str
2130
+
2131
+ request_options : typing.Optional[RequestOptions]
2132
+ Request-specific configuration.
2133
+
2134
+ Returns
2135
+ -------
2136
+ AsyncHttpResponse[WorkflowResponse]
2137
+ Successful Response
2138
+ """
2139
+ _response = await self._client_wrapper.httpx_client.request(
2140
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}/archive",
2141
+ method="POST",
2142
+ params={
2143
+ "artifact_id": artifact_id,
2144
+ },
2145
+ request_options=request_options,
2146
+ )
2147
+ try:
2148
+ if 200 <= _response.status_code < 300:
2149
+ _data = typing.cast(
2150
+ WorkflowResponse,
2151
+ parse_obj_as(
2152
+ type_=WorkflowResponse, # type: ignore
2153
+ object_=_response.json(),
2154
+ ),
2155
+ )
2156
+ return AsyncHttpResponse(response=_response, data=_data)
2157
+ if _response.status_code == 422:
2158
+ raise UnprocessableEntityError(
2159
+ headers=dict(_response.headers),
2160
+ body=typing.cast(
2161
+ HttpValidationError,
2162
+ parse_obj_as(
2163
+ type_=HttpValidationError, # type: ignore
2164
+ object_=_response.json(),
2165
+ ),
2166
+ ),
2167
+ )
2168
+ _response_json = _response.json()
2169
+ except JSONDecodeError:
2170
+ raise ApiError(
2171
+ status_code=_response.status_code,
2172
+ headers=dict(_response.headers),
2173
+ body=_response.text,
2174
+ )
2175
+ raise ApiError(
2176
+ status_code=_response.status_code,
2177
+ headers=dict(_response.headers),
2178
+ body=_response_json,
2179
+ )
2180
+
2181
+ async def unarchive_workflow(
2182
+ self,
2183
+ workflow_id: str,
2184
+ *,
2185
+ artifact_id: str,
2186
+ request_options: typing.Optional[RequestOptions] = None,
2187
+ ) -> AsyncHttpResponse[WorkflowResponse]:
2188
+ """
2189
+ Parameters
2190
+ ----------
2191
+ workflow_id : str
2192
+
2193
+ artifact_id : str
2194
+
2195
+ request_options : typing.Optional[RequestOptions]
2196
+ Request-specific configuration.
2197
+
2198
+ Returns
2199
+ -------
2200
+ AsyncHttpResponse[WorkflowResponse]
2201
+ Successful Response
2202
+ """
2203
+ _response = await self._client_wrapper.httpx_client.request(
2204
+ f"preview/base/workflows/{jsonable_encoder(workflow_id)}/unarchive",
2205
+ method="POST",
2206
+ params={
2207
+ "artifact_id": artifact_id,
2208
+ },
2209
+ request_options=request_options,
2210
+ )
2211
+ try:
2212
+ if 200 <= _response.status_code < 300:
2213
+ _data = typing.cast(
2214
+ WorkflowResponse,
2215
+ parse_obj_as(
2216
+ type_=WorkflowResponse, # type: ignore
2217
+ object_=_response.json(),
2218
+ ),
2219
+ )
2220
+ return AsyncHttpResponse(response=_response, data=_data)
2221
+ if _response.status_code == 422:
2222
+ raise UnprocessableEntityError(
2223
+ headers=dict(_response.headers),
2224
+ body=typing.cast(
2225
+ HttpValidationError,
2226
+ parse_obj_as(
2227
+ type_=HttpValidationError, # type: ignore
2228
+ object_=_response.json(),
2229
+ ),
2230
+ ),
2231
+ )
2232
+ _response_json = _response.json()
2233
+ except JSONDecodeError:
2234
+ raise ApiError(
2235
+ status_code=_response.status_code,
2236
+ headers=dict(_response.headers),
2237
+ body=_response.text,
2238
+ )
2239
+ raise ApiError(
2240
+ status_code=_response.status_code,
2241
+ headers=dict(_response.headers),
2242
+ body=_response_json,
2243
+ )
2244
+
2245
+ async def query_workflows(
2246
+ self,
2247
+ *,
2248
+ workflow_ref: typing.Optional[str] = None,
2249
+ workflow_flags: typing.Optional[str] = None,
2250
+ workflow_meta: typing.Optional[str] = None,
2251
+ include_archived: typing.Optional[bool] = None,
2252
+ request_options: typing.Optional[RequestOptions] = None,
2253
+ ) -> AsyncHttpResponse[WorkflowsResponse]:
2254
+ """
2255
+ Parameters
2256
+ ----------
2257
+ workflow_ref : typing.Optional[str]
2258
+ JSON string of ref, e.g. {"key": value}
2259
+
2260
+ workflow_flags : typing.Optional[str]
2261
+ JSON string of flags, e.g. {"key": value}
2262
+
2263
+ workflow_meta : typing.Optional[str]
2264
+ JSON string of meta, e.g. {"key": value}
2265
+
2266
+ include_archived : typing.Optional[bool]
2267
+
2268
+ request_options : typing.Optional[RequestOptions]
2269
+ Request-specific configuration.
2270
+
2271
+ Returns
2272
+ -------
2273
+ AsyncHttpResponse[WorkflowsResponse]
2274
+ Successful Response
2275
+ """
2276
+ _response = await self._client_wrapper.httpx_client.request(
2277
+ "preview/base/workflows/query",
2278
+ method="POST",
2279
+ params={
2280
+ "workflow_ref": workflow_ref,
2281
+ "workflow_flags": workflow_flags,
2282
+ "workflow_meta": workflow_meta,
2283
+ "include_archived": include_archived,
2284
+ },
2285
+ request_options=request_options,
2286
+ )
2287
+ try:
2288
+ if 200 <= _response.status_code < 300:
2289
+ _data = typing.cast(
2290
+ WorkflowsResponse,
2291
+ parse_obj_as(
2292
+ type_=WorkflowsResponse, # type: ignore
2293
+ object_=_response.json(),
2294
+ ),
2295
+ )
2296
+ return AsyncHttpResponse(response=_response, data=_data)
2297
+ if _response.status_code == 422:
2298
+ raise UnprocessableEntityError(
2299
+ headers=dict(_response.headers),
2300
+ body=typing.cast(
2301
+ HttpValidationError,
2302
+ parse_obj_as(
2303
+ type_=HttpValidationError, # type: ignore
2304
+ object_=_response.json(),
2305
+ ),
2306
+ ),
2307
+ )
2308
+ _response_json = _response.json()
2309
+ except JSONDecodeError:
2310
+ raise ApiError(
2311
+ status_code=_response.status_code,
2312
+ headers=dict(_response.headers),
2313
+ body=_response.text,
2314
+ )
2315
+ raise ApiError(
2316
+ status_code=_response.status_code,
2317
+ headers=dict(_response.headers),
2318
+ body=_response_json,
2319
+ )
2320
+
2321
+ async def list_workflow_variants(
2322
+ self,
2323
+ *,
2324
+ workflow_ref: typing.Optional[str] = None,
2325
+ variant_ref: typing.Optional[str] = None,
2326
+ variant_meta: typing.Optional[str] = None,
2327
+ variant_flags: typing.Optional[str] = None,
2328
+ include_archived: typing.Optional[bool] = None,
2329
+ request_options: typing.Optional[RequestOptions] = None,
2330
+ ) -> AsyncHttpResponse[WorkflowVariantsResponse]:
2331
+ """
2332
+ Parameters
2333
+ ----------
2334
+ workflow_ref : typing.Optional[str]
2335
+ JSON string of reference, e.g. {"key": value}
2336
+
2337
+ variant_ref : typing.Optional[str]
2338
+ JSON string of reference, e.g. {"key": value}
2339
+
2340
+ variant_meta : typing.Optional[str]
2341
+ JSON string of meta, e.g. {"key": value}
2342
+
2343
+ variant_flags : typing.Optional[str]
2344
+ JSON string of flags, e.g. {"key": value}
2345
+
2346
+ include_archived : typing.Optional[bool]
2347
+
2348
+ request_options : typing.Optional[RequestOptions]
2349
+ Request-specific configuration.
2350
+
2351
+ Returns
2352
+ -------
2353
+ AsyncHttpResponse[WorkflowVariantsResponse]
2354
+ Successful Response
2355
+ """
2356
+ _response = await self._client_wrapper.httpx_client.request(
2357
+ "preview/base/workflows/variants/",
2358
+ method="GET",
2359
+ params={
2360
+ "workflow_ref": workflow_ref,
2361
+ "variant_ref": variant_ref,
2362
+ "variant_meta": variant_meta,
2363
+ "variant_flags": variant_flags,
2364
+ "include_archived": include_archived,
2365
+ },
2366
+ request_options=request_options,
2367
+ )
2368
+ try:
2369
+ if 200 <= _response.status_code < 300:
2370
+ _data = typing.cast(
2371
+ WorkflowVariantsResponse,
2372
+ parse_obj_as(
2373
+ type_=WorkflowVariantsResponse, # type: ignore
2374
+ object_=_response.json(),
2375
+ ),
2376
+ )
2377
+ return AsyncHttpResponse(response=_response, data=_data)
2378
+ if _response.status_code == 422:
2379
+ raise UnprocessableEntityError(
2380
+ headers=dict(_response.headers),
2381
+ body=typing.cast(
2382
+ HttpValidationError,
2383
+ parse_obj_as(
2384
+ type_=HttpValidationError, # type: ignore
2385
+ object_=_response.json(),
2386
+ ),
2387
+ ),
2388
+ )
2389
+ _response_json = _response.json()
2390
+ except JSONDecodeError:
2391
+ raise ApiError(
2392
+ status_code=_response.status_code,
2393
+ headers=dict(_response.headers),
2394
+ body=_response.text,
2395
+ )
2396
+ raise ApiError(
2397
+ status_code=_response.status_code,
2398
+ headers=dict(_response.headers),
2399
+ body=_response_json,
2400
+ )
2401
+
2402
+ async def create_workflow_variant(
2403
+ self,
2404
+ *,
2405
+ variant: WorkflowVariant,
2406
+ request_options: typing.Optional[RequestOptions] = None,
2407
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2408
+ """
2409
+ Parameters
2410
+ ----------
2411
+ variant : WorkflowVariant
2412
+
2413
+ request_options : typing.Optional[RequestOptions]
2414
+ Request-specific configuration.
2415
+
2416
+ Returns
2417
+ -------
2418
+ AsyncHttpResponse[WorkflowVariantResponse]
2419
+ Successful Response
2420
+ """
2421
+ _response = await self._client_wrapper.httpx_client.request(
2422
+ "preview/base/workflows/variants/",
2423
+ method="POST",
2424
+ json={
2425
+ "variant": convert_and_respect_annotation_metadata(
2426
+ object_=variant, annotation=WorkflowVariant, direction="write"
2427
+ ),
2428
+ },
2429
+ headers={
2430
+ "content-type": "application/json",
2431
+ },
2432
+ request_options=request_options,
2433
+ omit=OMIT,
2434
+ )
2435
+ try:
2436
+ if 200 <= _response.status_code < 300:
2437
+ _data = typing.cast(
2438
+ WorkflowVariantResponse,
2439
+ parse_obj_as(
2440
+ type_=WorkflowVariantResponse, # type: ignore
2441
+ object_=_response.json(),
2442
+ ),
2443
+ )
2444
+ return AsyncHttpResponse(response=_response, data=_data)
2445
+ if _response.status_code == 422:
2446
+ raise UnprocessableEntityError(
2447
+ headers=dict(_response.headers),
2448
+ body=typing.cast(
2449
+ HttpValidationError,
2450
+ parse_obj_as(
2451
+ type_=HttpValidationError, # type: ignore
2452
+ object_=_response.json(),
2453
+ ),
2454
+ ),
2455
+ )
2456
+ _response_json = _response.json()
2457
+ except JSONDecodeError:
2458
+ raise ApiError(
2459
+ status_code=_response.status_code,
2460
+ headers=dict(_response.headers),
2461
+ body=_response.text,
2462
+ )
2463
+ raise ApiError(
2464
+ status_code=_response.status_code,
2465
+ headers=dict(_response.headers),
2466
+ body=_response_json,
2467
+ )
2468
+
2469
+ async def fetch_workflow_variant(
2470
+ self,
2471
+ variant_id: str,
2472
+ *,
2473
+ request_options: typing.Optional[RequestOptions] = None,
2474
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2475
+ """
2476
+ Parameters
2477
+ ----------
2478
+ variant_id : str
2479
+
2480
+ request_options : typing.Optional[RequestOptions]
2481
+ Request-specific configuration.
2482
+
2483
+ Returns
2484
+ -------
2485
+ AsyncHttpResponse[WorkflowVariantResponse]
2486
+ Successful Response
2487
+ """
2488
+ _response = await self._client_wrapper.httpx_client.request(
2489
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}",
2490
+ method="GET",
2491
+ request_options=request_options,
2492
+ )
2493
+ try:
2494
+ if 200 <= _response.status_code < 300:
2495
+ _data = typing.cast(
2496
+ WorkflowVariantResponse,
2497
+ parse_obj_as(
2498
+ type_=WorkflowVariantResponse, # type: ignore
2499
+ object_=_response.json(),
2500
+ ),
2501
+ )
2502
+ return AsyncHttpResponse(response=_response, data=_data)
2503
+ if _response.status_code == 422:
2504
+ raise UnprocessableEntityError(
2505
+ headers=dict(_response.headers),
2506
+ body=typing.cast(
2507
+ HttpValidationError,
2508
+ parse_obj_as(
2509
+ type_=HttpValidationError, # type: ignore
2510
+ object_=_response.json(),
2511
+ ),
2512
+ ),
2513
+ )
2514
+ _response_json = _response.json()
2515
+ except JSONDecodeError:
2516
+ raise ApiError(
2517
+ status_code=_response.status_code,
2518
+ headers=dict(_response.headers),
2519
+ body=_response.text,
2520
+ )
2521
+ raise ApiError(
2522
+ status_code=_response.status_code,
2523
+ headers=dict(_response.headers),
2524
+ body=_response_json,
2525
+ )
2526
+
2527
+ async def edit_workflow_variant(
2528
+ self,
2529
+ variant_id: str,
2530
+ *,
2531
+ variant: WorkflowVariant,
2532
+ request_options: typing.Optional[RequestOptions] = None,
2533
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2534
+ """
2535
+ Parameters
2536
+ ----------
2537
+ variant_id : str
2538
+
2539
+ variant : WorkflowVariant
2540
+
2541
+ request_options : typing.Optional[RequestOptions]
2542
+ Request-specific configuration.
2543
+
2544
+ Returns
2545
+ -------
2546
+ AsyncHttpResponse[WorkflowVariantResponse]
2547
+ Successful Response
2548
+ """
2549
+ _response = await self._client_wrapper.httpx_client.request(
2550
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}",
2551
+ method="PUT",
2552
+ json={
2553
+ "variant": convert_and_respect_annotation_metadata(
2554
+ object_=variant, annotation=WorkflowVariant, direction="write"
2555
+ ),
2556
+ },
2557
+ headers={
2558
+ "content-type": "application/json",
2559
+ },
2560
+ request_options=request_options,
2561
+ omit=OMIT,
2562
+ )
2563
+ try:
2564
+ if 200 <= _response.status_code < 300:
2565
+ _data = typing.cast(
2566
+ WorkflowVariantResponse,
2567
+ parse_obj_as(
2568
+ type_=WorkflowVariantResponse, # type: ignore
2569
+ object_=_response.json(),
2570
+ ),
2571
+ )
2572
+ return AsyncHttpResponse(response=_response, data=_data)
2573
+ if _response.status_code == 422:
2574
+ raise UnprocessableEntityError(
2575
+ headers=dict(_response.headers),
2576
+ body=typing.cast(
2577
+ HttpValidationError,
2578
+ parse_obj_as(
2579
+ type_=HttpValidationError, # type: ignore
2580
+ object_=_response.json(),
2581
+ ),
2582
+ ),
2583
+ )
2584
+ _response_json = _response.json()
2585
+ except JSONDecodeError:
2586
+ raise ApiError(
2587
+ status_code=_response.status_code,
2588
+ headers=dict(_response.headers),
2589
+ body=_response.text,
2590
+ )
2591
+ raise ApiError(
2592
+ status_code=_response.status_code,
2593
+ headers=dict(_response.headers),
2594
+ body=_response_json,
2595
+ )
2596
+
2597
+ async def archive_workflow_variant(
2598
+ self,
2599
+ variant_id: str,
2600
+ *,
2601
+ request_options: typing.Optional[RequestOptions] = None,
2602
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2603
+ """
2604
+ Parameters
2605
+ ----------
2606
+ variant_id : str
2607
+
2608
+ request_options : typing.Optional[RequestOptions]
2609
+ Request-specific configuration.
2610
+
2611
+ Returns
2612
+ -------
2613
+ AsyncHttpResponse[WorkflowVariantResponse]
2614
+ Successful Response
2615
+ """
2616
+ _response = await self._client_wrapper.httpx_client.request(
2617
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/archive",
2618
+ method="POST",
2619
+ request_options=request_options,
2620
+ )
2621
+ try:
2622
+ if 200 <= _response.status_code < 300:
2623
+ _data = typing.cast(
2624
+ WorkflowVariantResponse,
2625
+ parse_obj_as(
2626
+ type_=WorkflowVariantResponse, # type: ignore
2627
+ object_=_response.json(),
2628
+ ),
2629
+ )
2630
+ return AsyncHttpResponse(response=_response, data=_data)
2631
+ if _response.status_code == 422:
2632
+ raise UnprocessableEntityError(
2633
+ headers=dict(_response.headers),
2634
+ body=typing.cast(
2635
+ HttpValidationError,
2636
+ parse_obj_as(
2637
+ type_=HttpValidationError, # type: ignore
2638
+ object_=_response.json(),
2639
+ ),
2640
+ ),
2641
+ )
2642
+ _response_json = _response.json()
2643
+ except JSONDecodeError:
2644
+ raise ApiError(
2645
+ status_code=_response.status_code,
2646
+ headers=dict(_response.headers),
2647
+ body=_response.text,
2648
+ )
2649
+ raise ApiError(
2650
+ status_code=_response.status_code,
2651
+ headers=dict(_response.headers),
2652
+ body=_response_json,
2653
+ )
2654
+
2655
+ async def unarchive_workflow_variant(
2656
+ self,
2657
+ variant_id: str,
2658
+ *,
2659
+ request_options: typing.Optional[RequestOptions] = None,
2660
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2661
+ """
2662
+ Parameters
2663
+ ----------
2664
+ variant_id : str
2665
+
2666
+ request_options : typing.Optional[RequestOptions]
2667
+ Request-specific configuration.
2668
+
2669
+ Returns
2670
+ -------
2671
+ AsyncHttpResponse[WorkflowVariantResponse]
2672
+ Successful Response
2673
+ """
2674
+ _response = await self._client_wrapper.httpx_client.request(
2675
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/unarchive",
2676
+ method="POST",
2677
+ request_options=request_options,
2678
+ )
2679
+ try:
2680
+ if 200 <= _response.status_code < 300:
2681
+ _data = typing.cast(
2682
+ WorkflowVariantResponse,
2683
+ parse_obj_as(
2684
+ type_=WorkflowVariantResponse, # type: ignore
2685
+ object_=_response.json(),
2686
+ ),
2687
+ )
2688
+ return AsyncHttpResponse(response=_response, data=_data)
2689
+ if _response.status_code == 422:
2690
+ raise UnprocessableEntityError(
2691
+ headers=dict(_response.headers),
2692
+ body=typing.cast(
2693
+ HttpValidationError,
2694
+ parse_obj_as(
2695
+ type_=HttpValidationError, # type: ignore
2696
+ object_=_response.json(),
2697
+ ),
2698
+ ),
2699
+ )
2700
+ _response_json = _response.json()
2701
+ except JSONDecodeError:
2702
+ raise ApiError(
2703
+ status_code=_response.status_code,
2704
+ headers=dict(_response.headers),
2705
+ body=_response.text,
2706
+ )
2707
+ raise ApiError(
2708
+ status_code=_response.status_code,
2709
+ headers=dict(_response.headers),
2710
+ body=_response_json,
2711
+ )
2712
+
2713
+ async def query_workflow_variants(
2714
+ self,
2715
+ *,
2716
+ workflow_ref: typing.Optional[str] = None,
2717
+ variant_ref: typing.Optional[str] = None,
2718
+ variant_meta: typing.Optional[str] = None,
2719
+ variant_flags: typing.Optional[str] = None,
2720
+ include_archived: typing.Optional[bool] = None,
2721
+ request_options: typing.Optional[RequestOptions] = None,
2722
+ ) -> AsyncHttpResponse[WorkflowVariantsResponse]:
2723
+ """
2724
+ Parameters
2725
+ ----------
2726
+ workflow_ref : typing.Optional[str]
2727
+ JSON string of reference, e.g. {"key": value}
2728
+
2729
+ variant_ref : typing.Optional[str]
2730
+ JSON string of reference, e.g. {"key": value}
2731
+
2732
+ variant_meta : typing.Optional[str]
2733
+ JSON string of meta, e.g. {"key": value}
2734
+
2735
+ variant_flags : typing.Optional[str]
2736
+ JSON string of flags, e.g. {"key": value}
2737
+
2738
+ include_archived : typing.Optional[bool]
2739
+
2740
+ request_options : typing.Optional[RequestOptions]
2741
+ Request-specific configuration.
2742
+
2743
+ Returns
2744
+ -------
2745
+ AsyncHttpResponse[WorkflowVariantsResponse]
2746
+ Successful Response
2747
+ """
2748
+ _response = await self._client_wrapper.httpx_client.request(
2749
+ "preview/base/workflows/variants/query",
2750
+ method="POST",
2751
+ params={
2752
+ "workflow_ref": workflow_ref,
2753
+ "variant_ref": variant_ref,
2754
+ "variant_meta": variant_meta,
2755
+ "variant_flags": variant_flags,
2756
+ "include_archived": include_archived,
2757
+ },
2758
+ request_options=request_options,
2759
+ )
2760
+ try:
2761
+ if 200 <= _response.status_code < 300:
2762
+ _data = typing.cast(
2763
+ WorkflowVariantsResponse,
2764
+ parse_obj_as(
2765
+ type_=WorkflowVariantsResponse, # type: ignore
2766
+ object_=_response.json(),
2767
+ ),
2768
+ )
2769
+ return AsyncHttpResponse(response=_response, data=_data)
2770
+ if _response.status_code == 422:
2771
+ raise UnprocessableEntityError(
2772
+ headers=dict(_response.headers),
2773
+ body=typing.cast(
2774
+ HttpValidationError,
2775
+ parse_obj_as(
2776
+ type_=HttpValidationError, # type: ignore
2777
+ object_=_response.json(),
2778
+ ),
2779
+ ),
2780
+ )
2781
+ _response_json = _response.json()
2782
+ except JSONDecodeError:
2783
+ raise ApiError(
2784
+ status_code=_response.status_code,
2785
+ headers=dict(_response.headers),
2786
+ body=_response.text,
2787
+ )
2788
+ raise ApiError(
2789
+ status_code=_response.status_code,
2790
+ headers=dict(_response.headers),
2791
+ body=_response_json,
2792
+ )
2793
+
2794
+ async def commit_workflow_revision_by_variant_id(
2795
+ self,
2796
+ variant_id: typing.Optional[str],
2797
+ *,
2798
+ revision: WorkflowRevision,
2799
+ request_options: typing.Optional[RequestOptions] = None,
2800
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
2801
+ """
2802
+ Parameters
2803
+ ----------
2804
+ variant_id : typing.Optional[str]
2805
+
2806
+ revision : WorkflowRevision
2807
+
2808
+ request_options : typing.Optional[RequestOptions]
2809
+ Request-specific configuration.
2810
+
2811
+ Returns
2812
+ -------
2813
+ AsyncHttpResponse[WorkflowRevisionResponse]
2814
+ Successful Response
2815
+ """
2816
+ _response = await self._client_wrapper.httpx_client.request(
2817
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/commit",
2818
+ method="POST",
2819
+ json={
2820
+ "revision": convert_and_respect_annotation_metadata(
2821
+ object_=revision, annotation=WorkflowRevision, direction="write"
2822
+ ),
2823
+ },
2824
+ headers={
2825
+ "content-type": "application/json",
2826
+ },
2827
+ request_options=request_options,
2828
+ omit=OMIT,
2829
+ )
2830
+ try:
2831
+ if 200 <= _response.status_code < 300:
2832
+ _data = typing.cast(
2833
+ WorkflowRevisionResponse,
2834
+ parse_obj_as(
2835
+ type_=WorkflowRevisionResponse, # type: ignore
2836
+ object_=_response.json(),
2837
+ ),
2838
+ )
2839
+ return AsyncHttpResponse(response=_response, data=_data)
2840
+ if _response.status_code == 422:
2841
+ raise UnprocessableEntityError(
2842
+ headers=dict(_response.headers),
2843
+ body=typing.cast(
2844
+ HttpValidationError,
2845
+ parse_obj_as(
2846
+ type_=HttpValidationError, # type: ignore
2847
+ object_=_response.json(),
2848
+ ),
2849
+ ),
2850
+ )
2851
+ _response_json = _response.json()
2852
+ except JSONDecodeError:
2853
+ raise ApiError(
2854
+ status_code=_response.status_code,
2855
+ headers=dict(_response.headers),
2856
+ body=_response.text,
2857
+ )
2858
+ raise ApiError(
2859
+ status_code=_response.status_code,
2860
+ headers=dict(_response.headers),
2861
+ body=_response_json,
2862
+ )
2863
+
2864
+ async def fork_workflow_variant(
2865
+ self,
2866
+ variant_id: typing.Optional[str],
2867
+ *,
2868
+ revision: WorkflowRevision,
2869
+ revision_id: typing.Optional[str] = None,
2870
+ request_options: typing.Optional[RequestOptions] = None,
2871
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
2872
+ """
2873
+ Parameters
2874
+ ----------
2875
+ variant_id : typing.Optional[str]
2876
+
2877
+ revision : WorkflowRevision
2878
+
2879
+ revision_id : typing.Optional[str]
2880
+
2881
+ request_options : typing.Optional[RequestOptions]
2882
+ Request-specific configuration.
2883
+
2884
+ Returns
2885
+ -------
2886
+ AsyncHttpResponse[WorkflowVariantResponse]
2887
+ Successful Response
2888
+ """
2889
+ _response = await self._client_wrapper.httpx_client.request(
2890
+ f"preview/base/workflows/variants/{jsonable_encoder(variant_id)}/fork",
2891
+ method="POST",
2892
+ params={
2893
+ "revision_id": revision_id,
2894
+ },
2895
+ json={
2896
+ "revision": convert_and_respect_annotation_metadata(
2897
+ object_=revision, annotation=WorkflowRevision, direction="write"
2898
+ ),
2899
+ },
2900
+ headers={
2901
+ "content-type": "application/json",
2902
+ },
2903
+ request_options=request_options,
2904
+ omit=OMIT,
2905
+ )
2906
+ try:
2907
+ if 200 <= _response.status_code < 300:
2908
+ _data = typing.cast(
2909
+ WorkflowVariantResponse,
2910
+ parse_obj_as(
2911
+ type_=WorkflowVariantResponse, # type: ignore
2912
+ object_=_response.json(),
2913
+ ),
2914
+ )
2915
+ return AsyncHttpResponse(response=_response, data=_data)
2916
+ if _response.status_code == 422:
2917
+ raise UnprocessableEntityError(
2918
+ headers=dict(_response.headers),
2919
+ body=typing.cast(
2920
+ HttpValidationError,
2921
+ parse_obj_as(
2922
+ type_=HttpValidationError, # type: ignore
2923
+ object_=_response.json(),
2924
+ ),
2925
+ ),
2926
+ )
2927
+ _response_json = _response.json()
2928
+ except JSONDecodeError:
2929
+ raise ApiError(
2930
+ status_code=_response.status_code,
2931
+ headers=dict(_response.headers),
2932
+ body=_response.text,
2933
+ )
2934
+ raise ApiError(
2935
+ status_code=_response.status_code,
2936
+ headers=dict(_response.headers),
2937
+ body=_response_json,
2938
+ )
2939
+
2940
+ async def list_workflow_revisions(
2941
+ self,
2942
+ *,
2943
+ variant_ref: typing.Optional[str] = None,
2944
+ revision_ref: typing.Optional[str] = None,
2945
+ revision_meta: typing.Optional[str] = None,
2946
+ revision_flags: typing.Optional[str] = None,
2947
+ include_archived: typing.Optional[bool] = None,
2948
+ request_options: typing.Optional[RequestOptions] = None,
2949
+ ) -> AsyncHttpResponse[WorkflowRevisionsResponse]:
2950
+ """
2951
+ Parameters
2952
+ ----------
2953
+ variant_ref : typing.Optional[str]
2954
+ JSON string of ref, e.g. {"key": value}
2955
+
2956
+ revision_ref : typing.Optional[str]
2957
+ JSON string of ref, e.g. {"key": value}
2958
+
2959
+ revision_meta : typing.Optional[str]
2960
+ JSON string of meta, e.g. {"key": value}
2961
+
2962
+ revision_flags : typing.Optional[str]
2963
+ JSON string of flags, e.g. {"key": value}
2964
+
2965
+ include_archived : typing.Optional[bool]
2966
+
2967
+ request_options : typing.Optional[RequestOptions]
2968
+ Request-specific configuration.
2969
+
2970
+ Returns
2971
+ -------
2972
+ AsyncHttpResponse[WorkflowRevisionsResponse]
2973
+ Successful Response
2974
+ """
2975
+ _response = await self._client_wrapper.httpx_client.request(
2976
+ "preview/base/workflows/revisions/",
2977
+ method="GET",
2978
+ params={
2979
+ "variant_ref": variant_ref,
2980
+ "revision_ref": revision_ref,
2981
+ "revision_meta": revision_meta,
2982
+ "revision_flags": revision_flags,
2983
+ "include_archived": include_archived,
2984
+ },
2985
+ request_options=request_options,
2986
+ )
2987
+ try:
2988
+ if 200 <= _response.status_code < 300:
2989
+ _data = typing.cast(
2990
+ WorkflowRevisionsResponse,
2991
+ parse_obj_as(
2992
+ type_=WorkflowRevisionsResponse, # type: ignore
2993
+ object_=_response.json(),
2994
+ ),
2995
+ )
2996
+ return AsyncHttpResponse(response=_response, data=_data)
2997
+ if _response.status_code == 422:
2998
+ raise UnprocessableEntityError(
2999
+ headers=dict(_response.headers),
3000
+ body=typing.cast(
3001
+ HttpValidationError,
3002
+ parse_obj_as(
3003
+ type_=HttpValidationError, # type: ignore
3004
+ object_=_response.json(),
3005
+ ),
3006
+ ),
3007
+ )
3008
+ _response_json = _response.json()
3009
+ except JSONDecodeError:
3010
+ raise ApiError(
3011
+ status_code=_response.status_code,
3012
+ headers=dict(_response.headers),
3013
+ body=_response.text,
3014
+ )
3015
+ raise ApiError(
3016
+ status_code=_response.status_code,
3017
+ headers=dict(_response.headers),
3018
+ body=_response_json,
3019
+ )
3020
+
3021
+ async def create_workflow_revision(
3022
+ self,
3023
+ *,
3024
+ revision: WorkflowRevision,
3025
+ request_options: typing.Optional[RequestOptions] = None,
3026
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3027
+ """
3028
+ Parameters
3029
+ ----------
3030
+ revision : WorkflowRevision
3031
+
3032
+ request_options : typing.Optional[RequestOptions]
3033
+ Request-specific configuration.
3034
+
3035
+ Returns
3036
+ -------
3037
+ AsyncHttpResponse[WorkflowRevisionResponse]
3038
+ Successful Response
3039
+ """
3040
+ _response = await self._client_wrapper.httpx_client.request(
3041
+ "preview/base/workflows/revisions/",
3042
+ method="POST",
3043
+ json={
3044
+ "revision": convert_and_respect_annotation_metadata(
3045
+ object_=revision, annotation=WorkflowRevision, direction="write"
3046
+ ),
3047
+ },
3048
+ headers={
3049
+ "content-type": "application/json",
3050
+ },
3051
+ request_options=request_options,
3052
+ omit=OMIT,
3053
+ )
3054
+ try:
3055
+ if 200 <= _response.status_code < 300:
3056
+ _data = typing.cast(
3057
+ WorkflowRevisionResponse,
3058
+ parse_obj_as(
3059
+ type_=WorkflowRevisionResponse, # type: ignore
3060
+ object_=_response.json(),
3061
+ ),
3062
+ )
3063
+ return AsyncHttpResponse(response=_response, data=_data)
3064
+ if _response.status_code == 422:
3065
+ raise UnprocessableEntityError(
3066
+ headers=dict(_response.headers),
3067
+ body=typing.cast(
3068
+ HttpValidationError,
3069
+ parse_obj_as(
3070
+ type_=HttpValidationError, # type: ignore
3071
+ object_=_response.json(),
3072
+ ),
3073
+ ),
3074
+ )
3075
+ _response_json = _response.json()
3076
+ except JSONDecodeError:
3077
+ raise ApiError(
3078
+ status_code=_response.status_code,
3079
+ headers=dict(_response.headers),
3080
+ body=_response.text,
3081
+ )
3082
+ raise ApiError(
3083
+ status_code=_response.status_code,
3084
+ headers=dict(_response.headers),
3085
+ body=_response_json,
3086
+ )
3087
+
3088
+ async def fetch_workflow_revision(
3089
+ self,
3090
+ revision_id: str,
3091
+ *,
3092
+ request_options: typing.Optional[RequestOptions] = None,
3093
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3094
+ """
3095
+ Parameters
3096
+ ----------
3097
+ revision_id : str
3098
+
3099
+ request_options : typing.Optional[RequestOptions]
3100
+ Request-specific configuration.
3101
+
3102
+ Returns
3103
+ -------
3104
+ AsyncHttpResponse[WorkflowRevisionResponse]
3105
+ Successful Response
3106
+ """
3107
+ _response = await self._client_wrapper.httpx_client.request(
3108
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}",
3109
+ method="GET",
3110
+ request_options=request_options,
3111
+ )
3112
+ try:
3113
+ if 200 <= _response.status_code < 300:
3114
+ _data = typing.cast(
3115
+ WorkflowRevisionResponse,
3116
+ parse_obj_as(
3117
+ type_=WorkflowRevisionResponse, # type: ignore
3118
+ object_=_response.json(),
3119
+ ),
3120
+ )
3121
+ return AsyncHttpResponse(response=_response, data=_data)
3122
+ if _response.status_code == 422:
3123
+ raise UnprocessableEntityError(
3124
+ headers=dict(_response.headers),
3125
+ body=typing.cast(
3126
+ HttpValidationError,
3127
+ parse_obj_as(
3128
+ type_=HttpValidationError, # type: ignore
3129
+ object_=_response.json(),
3130
+ ),
3131
+ ),
3132
+ )
3133
+ _response_json = _response.json()
3134
+ except JSONDecodeError:
3135
+ raise ApiError(
3136
+ status_code=_response.status_code,
3137
+ headers=dict(_response.headers),
3138
+ body=_response.text,
3139
+ )
3140
+ raise ApiError(
3141
+ status_code=_response.status_code,
3142
+ headers=dict(_response.headers),
3143
+ body=_response_json,
3144
+ )
3145
+
3146
+ async def edit_workflow_revision(
3147
+ self,
3148
+ revision_id: str,
3149
+ *,
3150
+ revision: WorkflowRevision,
3151
+ request_options: typing.Optional[RequestOptions] = None,
3152
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3153
+ """
3154
+ Parameters
3155
+ ----------
3156
+ revision_id : str
3157
+
3158
+ revision : WorkflowRevision
3159
+
3160
+ request_options : typing.Optional[RequestOptions]
3161
+ Request-specific configuration.
3162
+
3163
+ Returns
3164
+ -------
3165
+ AsyncHttpResponse[WorkflowRevisionResponse]
3166
+ Successful Response
3167
+ """
3168
+ _response = await self._client_wrapper.httpx_client.request(
3169
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}",
3170
+ method="PUT",
3171
+ json={
3172
+ "revision": convert_and_respect_annotation_metadata(
3173
+ object_=revision, annotation=WorkflowRevision, direction="write"
3174
+ ),
3175
+ },
3176
+ headers={
3177
+ "content-type": "application/json",
3178
+ },
3179
+ request_options=request_options,
3180
+ omit=OMIT,
3181
+ )
3182
+ try:
3183
+ if 200 <= _response.status_code < 300:
3184
+ _data = typing.cast(
3185
+ WorkflowRevisionResponse,
3186
+ parse_obj_as(
3187
+ type_=WorkflowRevisionResponse, # type: ignore
3188
+ object_=_response.json(),
3189
+ ),
3190
+ )
3191
+ return AsyncHttpResponse(response=_response, data=_data)
3192
+ if _response.status_code == 422:
3193
+ raise UnprocessableEntityError(
3194
+ headers=dict(_response.headers),
3195
+ body=typing.cast(
3196
+ HttpValidationError,
3197
+ parse_obj_as(
3198
+ type_=HttpValidationError, # type: ignore
3199
+ object_=_response.json(),
3200
+ ),
3201
+ ),
3202
+ )
3203
+ _response_json = _response.json()
3204
+ except JSONDecodeError:
3205
+ raise ApiError(
3206
+ status_code=_response.status_code,
3207
+ headers=dict(_response.headers),
3208
+ body=_response.text,
3209
+ )
3210
+ raise ApiError(
3211
+ status_code=_response.status_code,
3212
+ headers=dict(_response.headers),
3213
+ body=_response_json,
3214
+ )
3215
+
3216
+ async def archive_workflow_revision_rpc(
3217
+ self,
3218
+ revision_id: str,
3219
+ *,
3220
+ request_options: typing.Optional[RequestOptions] = None,
3221
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3222
+ """
3223
+ Parameters
3224
+ ----------
3225
+ revision_id : str
3226
+
3227
+ request_options : typing.Optional[RequestOptions]
3228
+ Request-specific configuration.
3229
+
3230
+ Returns
3231
+ -------
3232
+ AsyncHttpResponse[WorkflowRevisionResponse]
3233
+ Successful Response
3234
+ """
3235
+ _response = await self._client_wrapper.httpx_client.request(
3236
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/archive",
3237
+ method="POST",
3238
+ request_options=request_options,
3239
+ )
3240
+ try:
3241
+ if 200 <= _response.status_code < 300:
3242
+ _data = typing.cast(
3243
+ WorkflowRevisionResponse,
3244
+ parse_obj_as(
3245
+ type_=WorkflowRevisionResponse, # type: ignore
3246
+ object_=_response.json(),
3247
+ ),
3248
+ )
3249
+ return AsyncHttpResponse(response=_response, data=_data)
3250
+ if _response.status_code == 422:
3251
+ raise UnprocessableEntityError(
3252
+ headers=dict(_response.headers),
3253
+ body=typing.cast(
3254
+ HttpValidationError,
3255
+ parse_obj_as(
3256
+ type_=HttpValidationError, # type: ignore
3257
+ object_=_response.json(),
3258
+ ),
3259
+ ),
3260
+ )
3261
+ _response_json = _response.json()
3262
+ except JSONDecodeError:
3263
+ raise ApiError(
3264
+ status_code=_response.status_code,
3265
+ headers=dict(_response.headers),
3266
+ body=_response.text,
3267
+ )
3268
+ raise ApiError(
3269
+ status_code=_response.status_code,
3270
+ headers=dict(_response.headers),
3271
+ body=_response_json,
3272
+ )
3273
+
3274
+ async def unarchive_workflow_revision_rpc(
3275
+ self,
3276
+ revision_id: str,
3277
+ *,
3278
+ request_options: typing.Optional[RequestOptions] = None,
3279
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3280
+ """
3281
+ Parameters
3282
+ ----------
3283
+ revision_id : str
3284
+
3285
+ request_options : typing.Optional[RequestOptions]
3286
+ Request-specific configuration.
3287
+
3288
+ Returns
3289
+ -------
3290
+ AsyncHttpResponse[WorkflowRevisionResponse]
3291
+ Successful Response
3292
+ """
3293
+ _response = await self._client_wrapper.httpx_client.request(
3294
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/unarchive",
3295
+ method="POST",
3296
+ request_options=request_options,
3297
+ )
3298
+ try:
3299
+ if 200 <= _response.status_code < 300:
3300
+ _data = typing.cast(
3301
+ WorkflowRevisionResponse,
3302
+ parse_obj_as(
3303
+ type_=WorkflowRevisionResponse, # type: ignore
3304
+ object_=_response.json(),
3305
+ ),
3306
+ )
3307
+ return AsyncHttpResponse(response=_response, data=_data)
3308
+ if _response.status_code == 422:
3309
+ raise UnprocessableEntityError(
3310
+ headers=dict(_response.headers),
3311
+ body=typing.cast(
3312
+ HttpValidationError,
3313
+ parse_obj_as(
3314
+ type_=HttpValidationError, # type: ignore
3315
+ object_=_response.json(),
3316
+ ),
3317
+ ),
3318
+ )
3319
+ _response_json = _response.json()
3320
+ except JSONDecodeError:
3321
+ raise ApiError(
3322
+ status_code=_response.status_code,
3323
+ headers=dict(_response.headers),
3324
+ body=_response.text,
3325
+ )
3326
+ raise ApiError(
3327
+ status_code=_response.status_code,
3328
+ headers=dict(_response.headers),
3329
+ body=_response_json,
3330
+ )
3331
+
3332
+ async def query_workflow_revisions(
3333
+ self,
3334
+ *,
3335
+ variant_ref: typing.Optional[str] = None,
3336
+ revision_ref: typing.Optional[str] = None,
3337
+ revision_meta: typing.Optional[str] = None,
3338
+ revision_flags: typing.Optional[str] = None,
3339
+ include_archived: typing.Optional[bool] = None,
3340
+ request_options: typing.Optional[RequestOptions] = None,
3341
+ ) -> AsyncHttpResponse[WorkflowRevisionsResponse]:
3342
+ """
3343
+ Parameters
3344
+ ----------
3345
+ variant_ref : typing.Optional[str]
3346
+ JSON string of ref, e.g. {"key": value}
3347
+
3348
+ revision_ref : typing.Optional[str]
3349
+ JSON string of ref, e.g. {"key": value}
3350
+
3351
+ revision_meta : typing.Optional[str]
3352
+ JSON string of meta, e.g. {"key": value}
3353
+
3354
+ revision_flags : typing.Optional[str]
3355
+ JSON string of flags, e.g. {"key": value}
3356
+
3357
+ include_archived : typing.Optional[bool]
3358
+
3359
+ request_options : typing.Optional[RequestOptions]
3360
+ Request-specific configuration.
3361
+
3362
+ Returns
3363
+ -------
3364
+ AsyncHttpResponse[WorkflowRevisionsResponse]
3365
+ Successful Response
3366
+ """
3367
+ _response = await self._client_wrapper.httpx_client.request(
3368
+ "preview/base/workflows/revisions/query",
3369
+ method="POST",
3370
+ params={
3371
+ "variant_ref": variant_ref,
3372
+ "revision_ref": revision_ref,
3373
+ "revision_meta": revision_meta,
3374
+ "revision_flags": revision_flags,
3375
+ "include_archived": include_archived,
3376
+ },
3377
+ request_options=request_options,
3378
+ )
3379
+ try:
3380
+ if 200 <= _response.status_code < 300:
3381
+ _data = typing.cast(
3382
+ WorkflowRevisionsResponse,
3383
+ parse_obj_as(
3384
+ type_=WorkflowRevisionsResponse, # type: ignore
3385
+ object_=_response.json(),
3386
+ ),
3387
+ )
3388
+ return AsyncHttpResponse(response=_response, data=_data)
3389
+ if _response.status_code == 422:
3390
+ raise UnprocessableEntityError(
3391
+ headers=dict(_response.headers),
3392
+ body=typing.cast(
3393
+ HttpValidationError,
3394
+ parse_obj_as(
3395
+ type_=HttpValidationError, # type: ignore
3396
+ object_=_response.json(),
3397
+ ),
3398
+ ),
3399
+ )
3400
+ _response_json = _response.json()
3401
+ except JSONDecodeError:
3402
+ raise ApiError(
3403
+ status_code=_response.status_code,
3404
+ headers=dict(_response.headers),
3405
+ body=_response.text,
3406
+ )
3407
+ raise ApiError(
3408
+ status_code=_response.status_code,
3409
+ headers=dict(_response.headers),
3410
+ body=_response_json,
3411
+ )
3412
+
3413
+ async def fork_workflow_variant_by_revision_id(
3414
+ self,
3415
+ revision_id: typing.Optional[str],
3416
+ *,
3417
+ revision: WorkflowRevision,
3418
+ variant_id: typing.Optional[str] = None,
3419
+ request_options: typing.Optional[RequestOptions] = None,
3420
+ ) -> AsyncHttpResponse[WorkflowVariantResponse]:
3421
+ """
3422
+ Parameters
3423
+ ----------
3424
+ revision_id : typing.Optional[str]
3425
+
3426
+ revision : WorkflowRevision
3427
+
3428
+ variant_id : typing.Optional[str]
3429
+
3430
+ request_options : typing.Optional[RequestOptions]
3431
+ Request-specific configuration.
3432
+
3433
+ Returns
3434
+ -------
3435
+ AsyncHttpResponse[WorkflowVariantResponse]
3436
+ Successful Response
3437
+ """
3438
+ _response = await self._client_wrapper.httpx_client.request(
3439
+ f"preview/base/workflows/revisions/{jsonable_encoder(revision_id)}/fork",
3440
+ method="POST",
3441
+ params={
3442
+ "variant_id": variant_id,
3443
+ },
3444
+ json={
3445
+ "revision": convert_and_respect_annotation_metadata(
3446
+ object_=revision, annotation=WorkflowRevision, direction="write"
3447
+ ),
3448
+ },
3449
+ headers={
3450
+ "content-type": "application/json",
3451
+ },
3452
+ request_options=request_options,
3453
+ omit=OMIT,
3454
+ )
3455
+ try:
3456
+ if 200 <= _response.status_code < 300:
3457
+ _data = typing.cast(
3458
+ WorkflowVariantResponse,
3459
+ parse_obj_as(
3460
+ type_=WorkflowVariantResponse, # type: ignore
3461
+ object_=_response.json(),
3462
+ ),
3463
+ )
3464
+ return AsyncHttpResponse(response=_response, data=_data)
3465
+ if _response.status_code == 422:
3466
+ raise UnprocessableEntityError(
3467
+ headers=dict(_response.headers),
3468
+ body=typing.cast(
3469
+ HttpValidationError,
3470
+ parse_obj_as(
3471
+ type_=HttpValidationError, # type: ignore
3472
+ object_=_response.json(),
3473
+ ),
3474
+ ),
3475
+ )
3476
+ _response_json = _response.json()
3477
+ except JSONDecodeError:
3478
+ raise ApiError(
3479
+ status_code=_response.status_code,
3480
+ headers=dict(_response.headers),
3481
+ body=_response.text,
3482
+ )
3483
+ raise ApiError(
3484
+ status_code=_response.status_code,
3485
+ headers=dict(_response.headers),
3486
+ body=_response_json,
3487
+ )
3488
+
3489
+ async def commit_workflow_revision(
3490
+ self,
3491
+ *,
3492
+ revision: WorkflowRevision,
3493
+ variant_id: typing.Optional[str] = None,
3494
+ request_options: typing.Optional[RequestOptions] = None,
3495
+ ) -> AsyncHttpResponse[WorkflowRevisionResponse]:
3496
+ """
3497
+ Parameters
3498
+ ----------
3499
+ revision : WorkflowRevision
3500
+
3501
+ variant_id : typing.Optional[str]
3502
+
3503
+ request_options : typing.Optional[RequestOptions]
3504
+ Request-specific configuration.
3505
+
3506
+ Returns
3507
+ -------
3508
+ AsyncHttpResponse[WorkflowRevisionResponse]
3509
+ Successful Response
3510
+ """
3511
+ _response = await self._client_wrapper.httpx_client.request(
3512
+ "preview/base/workflows/revisions/commit",
3513
+ method="POST",
3514
+ params={
3515
+ "variant_id": variant_id,
3516
+ },
3517
+ json={
3518
+ "revision": convert_and_respect_annotation_metadata(
3519
+ object_=revision, annotation=WorkflowRevision, direction="write"
3520
+ ),
3521
+ },
3522
+ headers={
3523
+ "content-type": "application/json",
3524
+ },
3525
+ request_options=request_options,
3526
+ omit=OMIT,
3527
+ )
3528
+ try:
3529
+ if 200 <= _response.status_code < 300:
3530
+ _data = typing.cast(
3531
+ WorkflowRevisionResponse,
3532
+ parse_obj_as(
3533
+ type_=WorkflowRevisionResponse, # type: ignore
3534
+ object_=_response.json(),
3535
+ ),
3536
+ )
3537
+ return AsyncHttpResponse(response=_response, data=_data)
3538
+ if _response.status_code == 422:
3539
+ raise UnprocessableEntityError(
3540
+ headers=dict(_response.headers),
3541
+ body=typing.cast(
3542
+ HttpValidationError,
3543
+ parse_obj_as(
3544
+ type_=HttpValidationError, # type: ignore
3545
+ object_=_response.json(),
3546
+ ),
3547
+ ),
3548
+ )
3549
+ _response_json = _response.json()
3550
+ except JSONDecodeError:
3551
+ raise ApiError(
3552
+ status_code=_response.status_code,
3553
+ headers=dict(_response.headers),
3554
+ body=_response.text,
3555
+ )
3556
+ raise ApiError(
3557
+ status_code=_response.status_code,
3558
+ headers=dict(_response.headers),
3559
+ body=_response_json,
3560
+ )
3561
+
3562
+ async def log_workflow_revisions(
3563
+ self,
3564
+ *,
3565
+ depth: typing.Optional[int] = None,
3566
+ variant_ref: typing.Optional[Reference] = OMIT,
3567
+ revision_ref: typing.Optional[Reference] = OMIT,
3568
+ request_options: typing.Optional[RequestOptions] = None,
3569
+ ) -> AsyncHttpResponse[WorkflowRevisionsResponse]:
3570
+ """
3571
+ Parameters
3572
+ ----------
3573
+ depth : typing.Optional[int]
3574
+
3575
+ variant_ref : typing.Optional[Reference]
3576
+
3577
+ revision_ref : typing.Optional[Reference]
3578
+
3579
+ request_options : typing.Optional[RequestOptions]
3580
+ Request-specific configuration.
3581
+
3582
+ Returns
3583
+ -------
3584
+ AsyncHttpResponse[WorkflowRevisionsResponse]
3585
+ Successful Response
3586
+ """
3587
+ _response = await self._client_wrapper.httpx_client.request(
3588
+ "preview/base/workflows/revisions/log",
3589
+ method="POST",
3590
+ params={
3591
+ "depth": depth,
3592
+ },
3593
+ json={
3594
+ "variant_ref": convert_and_respect_annotation_metadata(
3595
+ object_=variant_ref, annotation=Reference, direction="write"
3596
+ ),
3597
+ "revision_ref": convert_and_respect_annotation_metadata(
3598
+ object_=revision_ref, annotation=Reference, direction="write"
3599
+ ),
3600
+ },
3601
+ headers={
3602
+ "content-type": "application/json",
3603
+ },
3604
+ request_options=request_options,
3605
+ omit=OMIT,
3606
+ )
3607
+ try:
3608
+ if 200 <= _response.status_code < 300:
3609
+ _data = typing.cast(
3610
+ WorkflowRevisionsResponse,
3611
+ parse_obj_as(
3612
+ type_=WorkflowRevisionsResponse, # type: ignore
3613
+ object_=_response.json(),
3614
+ ),
3615
+ )
3616
+ return AsyncHttpResponse(response=_response, data=_data)
3617
+ if _response.status_code == 422:
3618
+ raise UnprocessableEntityError(
3619
+ headers=dict(_response.headers),
3620
+ body=typing.cast(
3621
+ HttpValidationError,
3622
+ parse_obj_as(
3623
+ type_=HttpValidationError, # type: ignore
3624
+ object_=_response.json(),
3625
+ ),
3626
+ ),
3627
+ )
3628
+ _response_json = _response.json()
3629
+ except JSONDecodeError:
3630
+ raise ApiError(
3631
+ status_code=_response.status_code,
3632
+ headers=dict(_response.headers),
3633
+ body=_response.text,
3634
+ )
3635
+ raise ApiError(
3636
+ status_code=_response.status_code,
3637
+ headers=dict(_response.headers),
3638
+ body=_response_json,
3639
+ )