vellum-ai 0.7.2__py3-none-any.whl → 0.7.5__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (483) hide show
  1. vellum/__init__.py +146 -94
  2. vellum/client.py +1051 -1097
  3. vellum/core/__init__.py +4 -1
  4. vellum/core/client_wrapper.py +7 -3
  5. vellum/core/http_client.py +365 -20
  6. vellum/core/jsonable_encoder.py +3 -0
  7. vellum/core/pydantic_utilities.py +16 -0
  8. vellum/core/query_encoder.py +33 -0
  9. vellum/core/remove_none_from_dict.py +2 -2
  10. vellum/core/request_options.py +2 -2
  11. vellum/resources/__init__.py +2 -0
  12. vellum/resources/deployments/client.py +354 -371
  13. vellum/resources/document_indexes/client.py +542 -610
  14. vellum/resources/documents/client.py +327 -399
  15. vellum/resources/folder_entities/client.py +56 -72
  16. vellum/{types/map_enum.py → resources/ml_models/__init__.py} +0 -3
  17. vellum/resources/ml_models/client.py +837 -0
  18. vellum/resources/sandboxes/client.py +204 -242
  19. vellum/resources/test_suite_runs/client.py +183 -213
  20. vellum/resources/test_suites/client.py +307 -311
  21. vellum/resources/workflow_deployments/client.py +230 -268
  22. vellum/resources/workflow_sandboxes/client.py +82 -96
  23. vellum/terraform/_jsii/vellum-ai_vellum@0.0.0.jsii.tgz +0 -0
  24. vellum/terraform/data_vellum_document_index/__init__.py +10 -10
  25. vellum/terraform/document_index/__init__.py +17 -17
  26. vellum/terraform/provider/__init__.py +57 -12
  27. vellum/terraform/versions.json +1 -1
  28. vellum/types/__init__.py +152 -96
  29. vellum/types/api_node_result.py +7 -3
  30. vellum/types/api_node_result_data.py +7 -3
  31. vellum/types/array_chat_message_content.py +7 -3
  32. vellum/types/array_chat_message_content_item.py +53 -12
  33. vellum/types/array_chat_message_content_item_request.py +53 -12
  34. vellum/types/array_chat_message_content_request.py +7 -3
  35. vellum/types/array_parameter_config.py +50 -0
  36. vellum/types/array_parameter_config_request.py +50 -0
  37. vellum/types/array_variable_value_item.py +102 -24
  38. vellum/types/array_vellum_value_item.py +102 -24
  39. vellum/types/array_vellum_value_item_request.py +102 -24
  40. vellum/types/basic_vectorizer_intfloat_multilingual_e_5_large.py +7 -3
  41. vellum/types/basic_vectorizer_intfloat_multilingual_e_5_large_request.py +7 -3
  42. vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1.py +7 -3
  43. vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_cos_v_1_request.py +7 -3
  44. vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1.py +7 -3
  45. vellum/types/basic_vectorizer_sentence_transformers_multi_qa_mpnet_base_dot_v_1_request.py +7 -3
  46. vellum/types/boolean_parameter_config.py +35 -0
  47. vellum/types/boolean_parameter_config_request.py +35 -0
  48. vellum/types/chat_history_input_request.py +7 -3
  49. vellum/types/chat_message.py +7 -3
  50. vellum/types/chat_message_content.py +70 -16
  51. vellum/types/chat_message_content_request.py +70 -16
  52. vellum/types/chat_message_request.py +7 -3
  53. vellum/types/code_execution_node_array_result.py +7 -3
  54. vellum/types/code_execution_node_chat_history_result.py +7 -3
  55. vellum/types/code_execution_node_error_result.py +7 -3
  56. vellum/types/code_execution_node_function_call_result.py +7 -3
  57. vellum/types/code_execution_node_json_result.py +7 -3
  58. vellum/types/code_execution_node_number_result.py +7 -3
  59. vellum/types/code_execution_node_result.py +7 -3
  60. vellum/types/code_execution_node_result_data.py +7 -3
  61. vellum/types/code_execution_node_result_output.py +144 -32
  62. vellum/types/code_execution_node_search_results_result.py +7 -3
  63. vellum/types/code_execution_node_string_result.py +7 -3
  64. vellum/types/compile_prompt_deployment_expand_meta_request.py +42 -0
  65. vellum/types/compile_prompt_meta.py +35 -0
  66. vellum/types/conditional_node_result.py +7 -3
  67. vellum/types/conditional_node_result_data.py +7 -3
  68. vellum/types/const_parameter_config.py +35 -0
  69. vellum/types/const_parameter_config_request.py +35 -0
  70. vellum/types/create_test_suite_test_case_request.py +7 -3
  71. vellum/types/deployment_provider_payload_response.py +9 -3
  72. vellum/types/deployment_read.py +12 -3
  73. vellum/types/deployment_release_tag_deployment_history_item.py +7 -3
  74. vellum/types/deployment_release_tag_read.py +7 -3
  75. vellum/types/document_document_to_document_index.py +7 -3
  76. vellum/types/document_index_chunking.py +54 -12
  77. vellum/types/document_index_chunking_request.py +54 -12
  78. vellum/types/document_index_indexing_config.py +7 -3
  79. vellum/types/document_index_indexing_config_request.py +7 -3
  80. vellum/types/document_index_read.py +7 -3
  81. vellum/types/document_read.py +7 -3
  82. vellum/types/enriched_normalized_completion.py +7 -3
  83. vellum/types/error_variable_value.py +7 -3
  84. vellum/types/error_vellum_value.py +7 -3
  85. vellum/types/error_vellum_value_request.py +7 -3
  86. vellum/types/execute_prompt_event.py +82 -16
  87. vellum/types/execute_prompt_response.py +44 -8
  88. vellum/types/execute_workflow_response.py +7 -3
  89. vellum/types/execute_workflow_workflow_result_event.py +41 -8
  90. vellum/types/execution_array_vellum_value.py +7 -3
  91. vellum/types/execution_chat_history_vellum_value.py +7 -3
  92. vellum/types/execution_error_vellum_value.py +7 -3
  93. vellum/types/execution_function_call_vellum_value.py +7 -3
  94. vellum/types/execution_json_vellum_value.py +7 -3
  95. vellum/types/execution_number_vellum_value.py +7 -3
  96. vellum/types/execution_search_results_vellum_value.py +7 -3
  97. vellum/types/execution_string_vellum_value.py +7 -3
  98. vellum/types/execution_vellum_value.py +152 -32
  99. vellum/types/external_test_case_execution.py +7 -3
  100. vellum/types/external_test_case_execution_request.py +7 -3
  101. vellum/types/fulfilled_execute_prompt_event.py +7 -3
  102. vellum/types/fulfilled_execute_prompt_response.py +7 -3
  103. vellum/types/fulfilled_execute_workflow_workflow_result_event.py +7 -3
  104. vellum/types/fulfilled_prompt_execution_meta.py +7 -3
  105. vellum/types/fulfilled_workflow_node_result_event.py +7 -3
  106. vellum/types/function_call.py +7 -3
  107. vellum/types/function_call_chat_message_content.py +7 -3
  108. vellum/types/function_call_chat_message_content_request.py +7 -3
  109. vellum/types/function_call_chat_message_content_value.py +7 -3
  110. vellum/types/function_call_chat_message_content_value_request.py +7 -3
  111. vellum/types/function_call_request.py +7 -3
  112. vellum/types/function_call_variable_value.py +7 -3
  113. vellum/types/function_call_vellum_value.py +7 -3
  114. vellum/types/function_call_vellum_value_request.py +7 -3
  115. vellum/types/generate_options_request.py +7 -3
  116. vellum/types/generate_request.py +7 -3
  117. vellum/types/generate_result.py +7 -3
  118. vellum/types/generate_result_data.py +7 -3
  119. vellum/types/generate_result_error.py +7 -3
  120. vellum/types/generate_stream_response.py +7 -3
  121. vellum/types/generate_stream_result.py +7 -3
  122. vellum/types/generate_stream_result_data.py +7 -3
  123. vellum/types/hkunlp_instructor_xl_vectorizer.py +7 -3
  124. vellum/types/hkunlp_instructor_xl_vectorizer_request.py +7 -3
  125. vellum/types/hosted_by_enum.py +26 -0
  126. vellum/types/hugging_face_tokenizer_config.py +34 -0
  127. vellum/types/hugging_face_tokenizer_config_request.py +34 -0
  128. vellum/types/image_chat_message_content.py +7 -3
  129. vellum/types/image_chat_message_content_request.py +7 -3
  130. vellum/types/image_variable_value.py +7 -3
  131. vellum/types/image_vellum_value.py +7 -3
  132. vellum/types/image_vellum_value_request.py +7 -3
  133. vellum/types/indexing_config_vectorizer.py +117 -36
  134. vellum/types/indexing_config_vectorizer_request.py +117 -36
  135. vellum/types/initiated_execute_prompt_event.py +7 -3
  136. vellum/types/initiated_prompt_execution_meta.py +7 -3
  137. vellum/types/initiated_workflow_node_result_event.py +7 -3
  138. vellum/types/instructor_vectorizer_config.py +7 -3
  139. vellum/types/instructor_vectorizer_config_request.py +7 -3
  140. vellum/types/integer_parameter_config.py +39 -0
  141. vellum/types/integer_parameter_config_request.py +39 -0
  142. vellum/types/json_input_request.py +7 -3
  143. vellum/types/json_variable_value.py +7 -3
  144. vellum/types/json_vellum_value.py +7 -3
  145. vellum/types/json_vellum_value_request.py +7 -3
  146. vellum/types/map_node_result.py +7 -3
  147. vellum/types/map_node_result_data.py +7 -3
  148. vellum/types/merge_node_result.py +7 -3
  149. vellum/types/merge_node_result_data.py +7 -3
  150. vellum/types/metadata_filter_config_request.py +7 -3
  151. vellum/types/metadata_filter_rule_request.py +7 -3
  152. vellum/types/metric_node_result.py +7 -3
  153. vellum/types/{execute_workflow_stream_error_response.py → ml_model_build_config.py} +9 -8
  154. vellum/types/{execute_prompt_api_error_response.py → ml_model_build_config_request.py} +9 -8
  155. vellum/types/ml_model_developer.py +27 -0
  156. vellum/types/ml_model_developer_enum_value_label.py +31 -0
  157. vellum/types/ml_model_display_config_labelled.py +33 -0
  158. vellum/types/ml_model_display_config_request.py +33 -0
  159. vellum/types/ml_model_display_tag.py +7 -0
  160. vellum/types/ml_model_display_tag_enum_value_label.py +31 -0
  161. vellum/types/ml_model_exec_config.py +40 -0
  162. vellum/types/ml_model_exec_config_request.py +40 -0
  163. vellum/types/ml_model_family.py +29 -0
  164. vellum/types/ml_model_family_enum_value_label.py +31 -0
  165. vellum/types/ml_model_feature.py +18 -0
  166. vellum/types/ml_model_parameter_config.py +42 -0
  167. vellum/types/ml_model_parameter_config_request.py +42 -0
  168. vellum/types/ml_model_read.py +108 -0
  169. vellum/types/ml_model_request_authorization_config.py +30 -0
  170. vellum/types/ml_model_request_authorization_config_request.py +30 -0
  171. vellum/types/ml_model_request_authorization_config_type_enum.py +5 -0
  172. vellum/types/ml_model_request_config.py +32 -0
  173. vellum/types/ml_model_request_config_request.py +32 -0
  174. vellum/types/ml_model_response_config.py +31 -0
  175. vellum/types/ml_model_response_config_request.py +31 -0
  176. vellum/types/ml_model_tokenizer_config.py +59 -0
  177. vellum/types/ml_model_tokenizer_config_request.py +61 -0
  178. vellum/types/ml_model_usage.py +7 -3
  179. vellum/types/named_scenario_input_chat_history_variable_value_request.py +7 -3
  180. vellum/types/named_scenario_input_request.py +38 -8
  181. vellum/types/named_scenario_input_string_variable_value_request.py +7 -3
  182. vellum/types/named_test_case_array_variable_value.py +7 -3
  183. vellum/types/named_test_case_array_variable_value_request.py +7 -3
  184. vellum/types/named_test_case_chat_history_variable_value.py +7 -3
  185. vellum/types/named_test_case_chat_history_variable_value_request.py +7 -3
  186. vellum/types/named_test_case_error_variable_value.py +7 -3
  187. vellum/types/named_test_case_error_variable_value_request.py +7 -3
  188. vellum/types/named_test_case_function_call_variable_value.py +7 -3
  189. vellum/types/named_test_case_function_call_variable_value_request.py +7 -3
  190. vellum/types/named_test_case_json_variable_value.py +7 -3
  191. vellum/types/named_test_case_json_variable_value_request.py +7 -3
  192. vellum/types/named_test_case_number_variable_value.py +7 -3
  193. vellum/types/named_test_case_number_variable_value_request.py +7 -3
  194. vellum/types/named_test_case_search_results_variable_value.py +7 -3
  195. vellum/types/named_test_case_search_results_variable_value_request.py +7 -3
  196. vellum/types/named_test_case_string_variable_value.py +7 -3
  197. vellum/types/named_test_case_string_variable_value_request.py +7 -3
  198. vellum/types/named_test_case_variable_value.py +144 -32
  199. vellum/types/named_test_case_variable_value_request.py +144 -32
  200. vellum/types/node_input_compiled_array_value.py +7 -3
  201. vellum/types/node_input_compiled_chat_history_value.py +7 -3
  202. vellum/types/node_input_compiled_error_value.py +7 -3
  203. vellum/types/node_input_compiled_function_call.py +7 -3
  204. vellum/types/node_input_compiled_json_value.py +7 -3
  205. vellum/types/node_input_compiled_number_value.py +7 -3
  206. vellum/types/node_input_compiled_search_results_value.py +7 -3
  207. vellum/types/node_input_compiled_string_value.py +7 -3
  208. vellum/types/node_input_variable_compiled_value.py +152 -32
  209. vellum/types/node_output_compiled_array_value.py +7 -3
  210. vellum/types/node_output_compiled_chat_history_value.py +7 -3
  211. vellum/types/node_output_compiled_error_value.py +7 -3
  212. vellum/types/node_output_compiled_function_call_value.py +7 -3
  213. vellum/types/node_output_compiled_json_value.py +7 -3
  214. vellum/types/node_output_compiled_number_value.py +7 -3
  215. vellum/types/node_output_compiled_search_results_value.py +7 -3
  216. vellum/types/node_output_compiled_string_value.py +7 -3
  217. vellum/types/node_output_compiled_value.py +153 -32
  218. vellum/types/normalized_log_probs.py +7 -3
  219. vellum/types/normalized_token_log_probs.py +7 -3
  220. vellum/types/number_parameter_config.py +40 -0
  221. vellum/types/number_parameter_config_request.py +40 -0
  222. vellum/types/number_variable_value.py +7 -3
  223. vellum/types/number_vellum_value.py +7 -3
  224. vellum/types/number_vellum_value_request.py +7 -3
  225. vellum/types/object_parameter_config.py +49 -0
  226. vellum/types/object_parameter_config_request.py +49 -0
  227. vellum/types/one_of_parameter_config.py +44 -0
  228. vellum/types/one_of_parameter_config_request.py +44 -0
  229. vellum/types/open_ai_vectorizer_config.py +7 -3
  230. vellum/types/open_ai_vectorizer_config_request.py +7 -3
  231. vellum/types/open_ai_vectorizer_text_embedding_3_large.py +7 -3
  232. vellum/types/open_ai_vectorizer_text_embedding_3_large_request.py +7 -3
  233. vellum/types/open_ai_vectorizer_text_embedding_3_small.py +7 -3
  234. vellum/types/open_ai_vectorizer_text_embedding_3_small_request.py +7 -3
  235. vellum/types/open_ai_vectorizer_text_embedding_ada_002.py +7 -3
  236. vellum/types/open_ai_vectorizer_text_embedding_ada_002_request.py +7 -3
  237. vellum/types/paginated_document_index_read_list.py +7 -3
  238. vellum/types/paginated_ml_model_read_list.py +33 -0
  239. vellum/types/paginated_slim_deployment_read_list.py +7 -3
  240. vellum/types/paginated_slim_document_list.py +7 -3
  241. vellum/types/paginated_slim_workflow_deployment_list.py +7 -3
  242. vellum/types/paginated_test_suite_run_execution_list.py +7 -3
  243. vellum/types/paginated_test_suite_test_case_list.py +7 -3
  244. vellum/types/parameter_config.py +251 -0
  245. vellum/types/parameter_config_request.py +251 -0
  246. vellum/types/pdf_search_result_meta_source.py +7 -3
  247. vellum/types/pdf_search_result_meta_source_request.py +7 -3
  248. vellum/types/prompt_deployment_expand_meta_request_request.py +7 -3
  249. vellum/types/prompt_deployment_input_request.py +55 -12
  250. vellum/types/prompt_execution_meta.py +7 -3
  251. vellum/types/prompt_node_execution_meta.py +7 -3
  252. vellum/types/prompt_node_result.py +7 -3
  253. vellum/types/prompt_node_result_data.py +7 -3
  254. vellum/types/prompt_output.py +69 -16
  255. vellum/types/raw_prompt_execution_overrides_request.py +7 -3
  256. vellum/types/reducto_chunker_config.py +7 -3
  257. vellum/types/reducto_chunker_config_request.py +7 -3
  258. vellum/types/reducto_chunking.py +7 -3
  259. vellum/types/reducto_chunking_request.py +7 -3
  260. vellum/types/rejected_execute_prompt_event.py +7 -3
  261. vellum/types/rejected_execute_prompt_response.py +7 -3
  262. vellum/types/rejected_execute_workflow_workflow_result_event.py +7 -3
  263. vellum/types/rejected_prompt_execution_meta.py +7 -3
  264. vellum/types/rejected_workflow_node_result_event.py +7 -3
  265. vellum/types/replace_test_suite_test_case_request.py +7 -3
  266. vellum/types/sandbox_scenario.py +7 -3
  267. vellum/types/scenario_input.py +38 -8
  268. vellum/types/scenario_input_chat_history_variable_value.py +7 -3
  269. vellum/types/scenario_input_string_variable_value.py +7 -3
  270. vellum/types/search_filters_request.py +7 -3
  271. vellum/types/search_node_result.py +7 -3
  272. vellum/types/search_node_result_data.py +7 -3
  273. vellum/types/search_request_options_request.py +7 -3
  274. vellum/types/search_response.py +7 -3
  275. vellum/types/search_result.py +7 -3
  276. vellum/types/search_result_document.py +7 -3
  277. vellum/types/search_result_document_request.py +7 -3
  278. vellum/types/search_result_merging_request.py +7 -3
  279. vellum/types/search_result_meta.py +7 -3
  280. vellum/types/search_result_meta_request.py +7 -3
  281. vellum/types/search_result_meta_source.py +21 -5
  282. vellum/types/search_result_meta_source_request.py +21 -5
  283. vellum/types/search_result_request.py +7 -3
  284. vellum/types/search_weights_request.py +7 -3
  285. vellum/types/sentence_chunker_config.py +7 -3
  286. vellum/types/sentence_chunker_config_request.py +7 -3
  287. vellum/types/sentence_chunking.py +7 -3
  288. vellum/types/sentence_chunking_request.py +7 -3
  289. vellum/types/slim_deployment_read.py +11 -3
  290. vellum/types/slim_document.py +7 -3
  291. vellum/types/slim_workflow_deployment.py +12 -3
  292. vellum/types/streaming_execute_prompt_event.py +7 -3
  293. vellum/types/streaming_prompt_execution_meta.py +7 -3
  294. vellum/types/streaming_workflow_node_result_event.py +7 -3
  295. vellum/types/string_chat_message_content.py +7 -3
  296. vellum/types/string_chat_message_content_request.py +7 -3
  297. vellum/types/string_input_request.py +7 -3
  298. vellum/types/string_parameter_config.py +39 -0
  299. vellum/types/string_parameter_config_request.py +39 -0
  300. vellum/types/string_variable_value.py +7 -3
  301. vellum/types/string_vellum_value.py +7 -3
  302. vellum/types/string_vellum_value_request.py +7 -3
  303. vellum/types/submit_completion_actual_request.py +7 -3
  304. vellum/types/submit_workflow_execution_actual_request.py +67 -12
  305. vellum/types/subworkflow_node_result.py +7 -3
  306. vellum/types/subworkflow_node_result_data.py +7 -3
  307. vellum/types/templating_node_array_result.py +7 -3
  308. vellum/types/templating_node_chat_history_result.py +7 -3
  309. vellum/types/templating_node_error_result.py +7 -3
  310. vellum/types/templating_node_function_call_result.py +7 -3
  311. vellum/types/templating_node_json_result.py +7 -3
  312. vellum/types/templating_node_number_result.py +7 -3
  313. vellum/types/templating_node_result.py +7 -3
  314. vellum/types/templating_node_result_data.py +7 -3
  315. vellum/types/templating_node_result_output.py +144 -32
  316. vellum/types/templating_node_search_results_result.py +7 -3
  317. vellum/types/templating_node_string_result.py +7 -3
  318. vellum/types/terminal_node_array_result.py +7 -3
  319. vellum/types/terminal_node_chat_history_result.py +7 -3
  320. vellum/types/terminal_node_error_result.py +7 -3
  321. vellum/types/terminal_node_function_call_result.py +7 -3
  322. vellum/types/terminal_node_json_result.py +7 -3
  323. vellum/types/terminal_node_number_result.py +7 -3
  324. vellum/types/terminal_node_result.py +7 -3
  325. vellum/types/terminal_node_result_data.py +7 -3
  326. vellum/types/terminal_node_result_output.py +152 -32
  327. vellum/types/terminal_node_search_results_result.py +7 -3
  328. vellum/types/terminal_node_string_result.py +7 -3
  329. vellum/types/test_case_array_variable_value.py +7 -3
  330. vellum/types/test_case_chat_history_variable_value.py +7 -3
  331. vellum/types/test_case_error_variable_value.py +7 -3
  332. vellum/types/test_case_function_call_variable_value.py +7 -3
  333. vellum/types/test_case_json_variable_value.py +8 -4
  334. vellum/types/test_case_number_variable_value.py +7 -3
  335. vellum/types/test_case_search_results_variable_value.py +7 -3
  336. vellum/types/test_case_string_variable_value.py +7 -3
  337. vellum/types/test_case_variable_value.py +152 -32
  338. vellum/types/test_suite_run_deployment_release_tag_exec_config.py +7 -3
  339. vellum/types/test_suite_run_deployment_release_tag_exec_config_data.py +7 -3
  340. vellum/types/test_suite_run_deployment_release_tag_exec_config_data_request.py +7 -3
  341. vellum/types/test_suite_run_deployment_release_tag_exec_config_request.py +7 -3
  342. vellum/types/test_suite_run_exec_config.py +57 -12
  343. vellum/types/test_suite_run_exec_config_request.py +61 -12
  344. vellum/types/test_suite_run_execution.py +7 -3
  345. vellum/types/test_suite_run_execution_array_output.py +7 -3
  346. vellum/types/test_suite_run_execution_chat_history_output.py +7 -3
  347. vellum/types/test_suite_run_execution_error_output.py +7 -3
  348. vellum/types/test_suite_run_execution_function_call_output.py +7 -3
  349. vellum/types/test_suite_run_execution_json_output.py +7 -3
  350. vellum/types/test_suite_run_execution_metric_definition.py +7 -3
  351. vellum/types/test_suite_run_execution_metric_result.py +7 -3
  352. vellum/types/test_suite_run_execution_number_output.py +7 -3
  353. vellum/types/test_suite_run_execution_output.py +152 -32
  354. vellum/types/test_suite_run_execution_search_results_output.py +7 -3
  355. vellum/types/test_suite_run_execution_string_output.py +7 -3
  356. vellum/types/test_suite_run_external_exec_config.py +7 -3
  357. vellum/types/test_suite_run_external_exec_config_data.py +7 -3
  358. vellum/types/test_suite_run_external_exec_config_data_request.py +7 -3
  359. vellum/types/test_suite_run_external_exec_config_request.py +7 -3
  360. vellum/types/test_suite_run_metric_error_output.py +7 -3
  361. vellum/types/test_suite_run_metric_number_output.py +7 -3
  362. vellum/types/test_suite_run_metric_output.py +55 -12
  363. vellum/types/test_suite_run_metric_string_output.py +7 -3
  364. vellum/types/test_suite_run_read.py +7 -3
  365. vellum/types/test_suite_run_test_suite.py +7 -3
  366. vellum/types/test_suite_run_workflow_release_tag_exec_config.py +7 -3
  367. vellum/types/test_suite_run_workflow_release_tag_exec_config_data.py +7 -3
  368. vellum/types/test_suite_run_workflow_release_tag_exec_config_data_request.py +7 -3
  369. vellum/types/test_suite_run_workflow_release_tag_exec_config_request.py +7 -3
  370. vellum/types/test_suite_test_case.py +7 -3
  371. vellum/types/test_suite_test_case_bulk_operation_request.py +75 -16
  372. vellum/types/test_suite_test_case_bulk_result.py +74 -16
  373. vellum/types/test_suite_test_case_create_bulk_operation_request.py +7 -3
  374. vellum/types/test_suite_test_case_created_bulk_result.py +7 -3
  375. vellum/types/test_suite_test_case_created_bulk_result_data.py +7 -3
  376. vellum/types/test_suite_test_case_delete_bulk_operation_data_request.py +7 -3
  377. vellum/types/test_suite_test_case_delete_bulk_operation_request.py +7 -3
  378. vellum/types/test_suite_test_case_deleted_bulk_result.py +7 -3
  379. vellum/types/test_suite_test_case_deleted_bulk_result_data.py +7 -3
  380. vellum/types/test_suite_test_case_rejected_bulk_result.py +7 -3
  381. vellum/types/test_suite_test_case_replace_bulk_operation_request.py +7 -3
  382. vellum/types/test_suite_test_case_replaced_bulk_result.py +7 -3
  383. vellum/types/test_suite_test_case_replaced_bulk_result_data.py +7 -3
  384. vellum/types/test_suite_test_case_upsert_bulk_operation_request.py +7 -3
  385. vellum/types/{execute_workflow_error_response.py → tik_token_tokenizer_config.py} +11 -6
  386. vellum/types/{generate_error_response.py → tik_token_tokenizer_config_request.py} +11 -6
  387. vellum/types/token_overlapping_window_chunker_config.py +7 -3
  388. vellum/types/token_overlapping_window_chunker_config_request.py +7 -3
  389. vellum/types/token_overlapping_window_chunking.py +7 -3
  390. vellum/types/token_overlapping_window_chunking_request.py +7 -3
  391. vellum/types/upload_document_response.py +7 -3
  392. vellum/types/upsert_test_suite_test_case_request.py +7 -3
  393. vellum/types/vellum_error.py +7 -3
  394. vellum/types/vellum_error_request.py +7 -3
  395. vellum/types/vellum_image.py +7 -3
  396. vellum/types/vellum_image_request.py +7 -3
  397. vellum/types/vellum_variable.py +7 -3
  398. vellum/types/visibility_enum.py +5 -0
  399. vellum/types/workflow_deployment_read.py +12 -3
  400. vellum/types/workflow_event_error.py +7 -3
  401. vellum/types/workflow_execution_actual_chat_history_request.py +7 -3
  402. vellum/types/workflow_execution_actual_json_request.py +7 -3
  403. vellum/types/workflow_execution_actual_string_request.py +7 -3
  404. vellum/types/workflow_execution_node_result_event.py +7 -3
  405. vellum/types/workflow_execution_workflow_result_event.py +7 -3
  406. vellum/types/workflow_expand_meta_request.py +7 -3
  407. vellum/types/workflow_node_result_data.py +189 -45
  408. vellum/types/workflow_node_result_event.py +101 -20
  409. vellum/types/workflow_output.py +171 -36
  410. vellum/types/workflow_output_array.py +7 -3
  411. vellum/types/workflow_output_chat_history.py +7 -3
  412. vellum/types/workflow_output_error.py +7 -3
  413. vellum/types/workflow_output_function_call.py +7 -3
  414. vellum/types/workflow_output_image.py +7 -3
  415. vellum/types/workflow_output_json.py +7 -3
  416. vellum/types/workflow_output_number.py +7 -3
  417. vellum/types/workflow_output_search_results.py +7 -3
  418. vellum/types/workflow_output_string.py +7 -3
  419. vellum/types/workflow_release_tag_read.py +7 -3
  420. vellum/types/workflow_release_tag_workflow_deployment_history_item.py +7 -3
  421. vellum/types/workflow_request_chat_history_input_request.py +7 -3
  422. vellum/types/workflow_request_input_request.py +72 -16
  423. vellum/types/workflow_request_json_input_request.py +7 -3
  424. vellum/types/workflow_request_number_input_request.py +7 -3
  425. vellum/types/workflow_request_string_input_request.py +7 -3
  426. vellum/types/workflow_result_event.py +7 -3
  427. vellum/types/workflow_result_event_output_data.py +178 -33
  428. vellum/types/workflow_result_event_output_data_array.py +7 -3
  429. vellum/types/workflow_result_event_output_data_chat_history.py +7 -3
  430. vellum/types/workflow_result_event_output_data_error.py +7 -3
  431. vellum/types/workflow_result_event_output_data_function_call.py +7 -3
  432. vellum/types/workflow_result_event_output_data_json.py +7 -3
  433. vellum/types/workflow_result_event_output_data_number.py +7 -3
  434. vellum/types/workflow_result_event_output_data_search_results.py +7 -3
  435. vellum/types/workflow_result_event_output_data_string.py +7 -3
  436. vellum/types/workflow_stream_event.py +43 -8
  437. {vellum_ai-0.7.2.dist-info → vellum_ai-0.7.5.dist-info}/METADATA +13 -1
  438. vellum_ai-0.7.5.dist-info/RECORD +502 -0
  439. vellum/types/array_enum.py +0 -5
  440. vellum/types/chat_history_enum.py +0 -5
  441. vellum/types/create_enum.py +0 -5
  442. vellum/types/created_enum.py +0 -5
  443. vellum/types/delete_enum.py +0 -5
  444. vellum/types/deleted_enum.py +0 -5
  445. vellum/types/error_enum.py +0 -5
  446. vellum/types/function_call_enum.py +0 -5
  447. vellum/types/hkunlp_instructor_xl_enum.py +0 -5
  448. vellum/types/image_enum.py +0 -5
  449. vellum/types/initiated_enum.py +0 -5
  450. vellum/types/intfloat_multilingual_e_5_large_enum.py +0 -5
  451. vellum/types/json_enum.py +0 -5
  452. vellum/types/merge_enum.py +0 -5
  453. vellum/types/metric_enum.py +0 -5
  454. vellum/types/number_enum.py +0 -5
  455. vellum/types/pdf_enum.py +0 -5
  456. vellum/types/reducto_chunker_enum.py +0 -5
  457. vellum/types/rejected_enum.py +0 -5
  458. vellum/types/replace_enum.py +0 -5
  459. vellum/types/replaced_enum.py +0 -5
  460. vellum/types/search_error_response.py +0 -28
  461. vellum/types/search_results_enum.py +0 -5
  462. vellum/types/sentence_chunker_enum.py +0 -5
  463. vellum/types/sentence_transformers_multi_qa_mpnet_base_cos_v_1_enum.py +0 -5
  464. vellum/types/sentence_transformers_multi_qa_mpnet_base_dot_v_1_enum.py +0 -5
  465. vellum/types/streaming_enum.py +0 -5
  466. vellum/types/string_enum.py +0 -5
  467. vellum/types/submit_completion_actuals_error_response.py +0 -25
  468. vellum/types/subworkflow_enum.py +0 -5
  469. vellum/types/test_suite_run_deployment_release_tag_exec_config_type_enum.py +0 -5
  470. vellum/types/test_suite_run_external_exec_config_type_enum.py +0 -5
  471. vellum/types/test_suite_run_metric_error_output_type_enum.py +0 -5
  472. vellum/types/test_suite_run_metric_number_output_type_enum.py +0 -5
  473. vellum/types/test_suite_run_metric_string_output_type_enum.py +0 -5
  474. vellum/types/test_suite_run_workflow_release_tag_exec_config_type_enum.py +0 -5
  475. vellum/types/text_embedding_3_large_enum.py +0 -5
  476. vellum/types/text_embedding_3_small_enum.py +0 -5
  477. vellum/types/text_embedding_ada_002_enum.py +0 -5
  478. vellum/types/token_overlapping_window_chunker_enum.py +0 -5
  479. vellum/types/upload_document_error_response.py +0 -25
  480. vellum/types/upsert_enum.py +0 -5
  481. vellum_ai-0.7.2.dist-info/RECORD +0 -494
  482. {vellum_ai-0.7.2.dist-info → vellum_ai-0.7.5.dist-info}/LICENSE +0 -0
  483. {vellum_ai-0.7.2.dist-info → vellum_ai-0.7.5.dist-info}/WHEEL +0 -0
@@ -1,19 +1,18 @@
1
1
  # This file was auto-generated by Fern from our API Definition.
2
2
 
3
3
  import typing
4
- import urllib.parse
5
4
  from json.decoder import JSONDecodeError
6
5
 
7
6
  from ...core.api_error import ApiError
8
7
  from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
9
8
  from ...core.jsonable_encoder import jsonable_encoder
10
9
  from ...core.pydantic_utilities import pydantic_v1
11
- from ...core.remove_none_from_dict import remove_none_from_dict
12
10
  from ...core.request_options import RequestOptions
13
11
  from ...errors.bad_request_error import BadRequestError
14
12
  from ...errors.forbidden_error import ForbiddenError
15
13
  from ...errors.internal_server_error import InternalServerError
16
14
  from ...errors.not_found_error import NotFoundError
15
+ from ...types.compile_prompt_deployment_expand_meta_request import CompilePromptDeploymentExpandMetaRequest
17
16
  from ...types.deployment_provider_payload_response import DeploymentProviderPayloadResponse
18
17
  from ...types.deployment_read import DeploymentRead
19
18
  from ...types.deployment_release_tag_read import DeploymentReleaseTagRead
@@ -39,17 +38,32 @@ class DeploymentsClient:
39
38
  request_options: typing.Optional[RequestOptions] = None,
40
39
  ) -> PaginatedSlimDeploymentReadList:
41
40
  """
42
- Parameters:
43
- - limit: typing.Optional[int]. Number of results to return per page.
41
+ Used to list all Prompt Deployments.
44
42
 
45
- - offset: typing.Optional[int]. The initial index from which to return the results.
43
+ Parameters
44
+ ----------
45
+ limit : typing.Optional[int]
46
+ Number of results to return per page.
46
47
 
47
- - ordering: typing.Optional[str]. Which field to use when ordering the results.
48
+ offset : typing.Optional[int]
49
+ The initial index from which to return the results.
48
50
 
49
- - status: typing.Optional[DeploymentsListRequestStatus]. status
51
+ ordering : typing.Optional[str]
52
+ Which field to use when ordering the results.
50
53
 
51
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
52
- ---
54
+ status : typing.Optional[DeploymentsListRequestStatus]
55
+ status
56
+
57
+ request_options : typing.Optional[RequestOptions]
58
+ Request-specific configuration.
59
+
60
+ Returns
61
+ -------
62
+ PaginatedSlimDeploymentReadList
63
+
64
+
65
+ Examples
66
+ --------
53
67
  from vellum.client import Vellum
54
68
 
55
69
  client = Vellum(
@@ -58,40 +72,15 @@ class DeploymentsClient:
58
72
  client.deployments.list()
59
73
  """
60
74
  _response = self._client_wrapper.httpx_client.request(
75
+ "v1/deployments",
76
+ base_url=self._client_wrapper.get_environment().default,
61
77
  method="GET",
62
- url=urllib.parse.urljoin(f"{self._client_wrapper.get_environment().default}/", "v1/deployments"),
63
- params=jsonable_encoder(
64
- remove_none_from_dict(
65
- {
66
- "limit": limit,
67
- "offset": offset,
68
- "ordering": ordering,
69
- "status": status,
70
- **(
71
- request_options.get("additional_query_parameters", {})
72
- if request_options is not None
73
- else {}
74
- ),
75
- }
76
- )
77
- ),
78
- headers=jsonable_encoder(
79
- remove_none_from_dict(
80
- {
81
- **self._client_wrapper.get_headers(),
82
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
83
- }
84
- )
85
- ),
86
- timeout=request_options.get("timeout_in_seconds")
87
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
88
- else self._client_wrapper.get_timeout(),
89
- retries=0,
90
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
78
+ params={"limit": limit, "offset": offset, "ordering": ordering, "status": status},
79
+ request_options=request_options,
91
80
  )
92
- if 200 <= _response.status_code < 300:
93
- return pydantic_v1.parse_obj_as(PaginatedSlimDeploymentReadList, _response.json()) # type: ignore
94
81
  try:
82
+ if 200 <= _response.status_code < 300:
83
+ return pydantic_v1.parse_obj_as(PaginatedSlimDeploymentReadList, _response.json()) # type: ignore
95
84
  _response_json = _response.json()
96
85
  except JSONDecodeError:
97
86
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -99,13 +88,23 @@ class DeploymentsClient:
99
88
 
100
89
  def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> DeploymentRead:
101
90
  """
102
- Used to retrieve a deployment given its ID or name.
91
+ Used to retrieve a Prompt Deployment given its ID or name.
92
+
93
+ Parameters
94
+ ----------
95
+ id : str
96
+ Either the Deployment's ID or its unique name
97
+
98
+ request_options : typing.Optional[RequestOptions]
99
+ Request-specific configuration.
103
100
 
104
- Parameters:
105
- - id: str. Either the Deployment's ID or its unique name
101
+ Returns
102
+ -------
103
+ DeploymentRead
106
104
 
107
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
108
- ---
105
+
106
+ Examples
107
+ --------
109
108
  from vellum.client import Vellum
110
109
 
111
110
  client = Vellum(
@@ -116,30 +115,14 @@ class DeploymentsClient:
116
115
  )
117
116
  """
118
117
  _response = self._client_wrapper.httpx_client.request(
118
+ f"v1/deployments/{jsonable_encoder(id)}",
119
+ base_url=self._client_wrapper.get_environment().default,
119
120
  method="GET",
120
- url=urllib.parse.urljoin(
121
- f"{self._client_wrapper.get_environment().default}/", f"v1/deployments/{jsonable_encoder(id)}"
122
- ),
123
- params=jsonable_encoder(
124
- request_options.get("additional_query_parameters") if request_options is not None else None
125
- ),
126
- headers=jsonable_encoder(
127
- remove_none_from_dict(
128
- {
129
- **self._client_wrapper.get_headers(),
130
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
131
- }
132
- )
133
- ),
134
- timeout=request_options.get("timeout_in_seconds")
135
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
136
- else self._client_wrapper.get_timeout(),
137
- retries=0,
138
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
121
+ request_options=request_options,
139
122
  )
140
- if 200 <= _response.status_code < 300:
141
- return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
142
123
  try:
124
+ if 200 <= _response.status_code < 300:
125
+ return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
143
126
  _response_json = _response.json()
144
127
  except JSONDecodeError:
145
128
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -151,13 +134,24 @@ class DeploymentsClient:
151
134
  """
152
135
  Retrieve a Deployment Release Tag by tag name, associated with a specified Deployment.
153
136
 
154
- Parameters:
155
- - id: str. A UUID string identifying this deployment.
137
+ Parameters
138
+ ----------
139
+ id : str
140
+ A UUID string identifying this deployment.
141
+
142
+ name : str
143
+ The name of the Release Tag associated with this Deployment that you'd like to retrieve.
144
+
145
+ request_options : typing.Optional[RequestOptions]
146
+ Request-specific configuration.
156
147
 
157
- - name: str. The name of the Release Tag associated with this Deployment that you'd like to retrieve.
148
+ Returns
149
+ -------
150
+ DeploymentReleaseTagRead
158
151
 
159
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
160
- ---
152
+
153
+ Examples
154
+ --------
161
155
  from vellum.client import Vellum
162
156
 
163
157
  client = Vellum(
@@ -169,31 +163,14 @@ class DeploymentsClient:
169
163
  )
170
164
  """
171
165
  _response = self._client_wrapper.httpx_client.request(
166
+ f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
167
+ base_url=self._client_wrapper.get_environment().default,
172
168
  method="GET",
173
- url=urllib.parse.urljoin(
174
- f"{self._client_wrapper.get_environment().default}/",
175
- f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
176
- ),
177
- params=jsonable_encoder(
178
- request_options.get("additional_query_parameters") if request_options is not None else None
179
- ),
180
- headers=jsonable_encoder(
181
- remove_none_from_dict(
182
- {
183
- **self._client_wrapper.get_headers(),
184
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
185
- }
186
- )
187
- ),
188
- timeout=request_options.get("timeout_in_seconds")
189
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
190
- else self._client_wrapper.get_timeout(),
191
- retries=0,
192
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
169
+ request_options=request_options,
193
170
  )
194
- if 200 <= _response.status_code < 300:
195
- return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
196
171
  try:
172
+ if 200 <= _response.status_code < 300:
173
+ return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
197
174
  _response_json = _response.json()
198
175
  except JSONDecodeError:
199
176
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -210,15 +187,27 @@ class DeploymentsClient:
210
187
  """
211
188
  Updates an existing Release Tag associated with the specified Deployment.
212
189
 
213
- Parameters:
214
- - id: str. A UUID string identifying this deployment.
190
+ Parameters
191
+ ----------
192
+ id : str
193
+ A UUID string identifying this deployment.
194
+
195
+ name : str
196
+ The name of the Release Tag associated with this Deployment that you'd like to update.
215
197
 
216
- - name: str. The name of the Release Tag associated with this Deployment that you'd like to update.
198
+ history_item_id : typing.Optional[str]
199
+ The ID of the Deployment History Item to tag
217
200
 
218
- - history_item_id: typing.Optional[str]. The ID of the Deployment History Item to tag
201
+ request_options : typing.Optional[RequestOptions]
202
+ Request-specific configuration.
219
203
 
220
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
221
- ---
204
+ Returns
205
+ -------
206
+ DeploymentReleaseTagRead
207
+
208
+
209
+ Examples
210
+ --------
222
211
  from vellum.client import Vellum
223
212
 
224
213
  client = Vellum(
@@ -229,41 +218,17 @@ class DeploymentsClient:
229
218
  name="name",
230
219
  )
231
220
  """
232
- _request: typing.Dict[str, typing.Any] = {}
233
- if history_item_id is not OMIT:
234
- _request["history_item_id"] = history_item_id
235
221
  _response = self._client_wrapper.httpx_client.request(
222
+ f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
223
+ base_url=self._client_wrapper.get_environment().default,
236
224
  method="PATCH",
237
- url=urllib.parse.urljoin(
238
- f"{self._client_wrapper.get_environment().default}/",
239
- f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
240
- ),
241
- params=jsonable_encoder(
242
- request_options.get("additional_query_parameters") if request_options is not None else None
243
- ),
244
- json=jsonable_encoder(_request)
245
- if request_options is None or request_options.get("additional_body_parameters") is None
246
- else {
247
- **jsonable_encoder(_request),
248
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
249
- },
250
- headers=jsonable_encoder(
251
- remove_none_from_dict(
252
- {
253
- **self._client_wrapper.get_headers(),
254
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
255
- }
256
- )
257
- ),
258
- timeout=request_options.get("timeout_in_seconds")
259
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
260
- else self._client_wrapper.get_timeout(),
261
- retries=0,
262
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
225
+ json={"history_item_id": history_item_id},
226
+ request_options=request_options,
227
+ omit=OMIT,
263
228
  )
264
- if 200 <= _response.status_code < 300:
265
- return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
266
229
  try:
230
+ if 200 <= _response.status_code < 300:
231
+ return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
267
232
  _response_json = _response.json()
268
233
  except JSONDecodeError:
269
234
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -272,24 +237,51 @@ class DeploymentsClient:
272
237
  def retrieve_provider_payload(
273
238
  self,
274
239
  *,
240
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
275
241
  deployment_id: typing.Optional[str] = OMIT,
276
242
  deployment_name: typing.Optional[str] = OMIT,
277
- inputs: typing.Sequence[PromptDeploymentInputRequest],
278
243
  release_tag: typing.Optional[str] = OMIT,
244
+ expand_meta: typing.Optional[CompilePromptDeploymentExpandMetaRequest] = OMIT,
279
245
  request_options: typing.Optional[RequestOptions] = None,
280
246
  ) -> DeploymentProviderPayloadResponse:
281
247
  """
282
- Parameters:
283
- - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
248
+ Given a set of input variable values, compile the exact payload that Vellum would send to the configured model provider
249
+ for execution if the execute-prompt endpoint had been invoked. Note that this endpoint does not actually execute the
250
+ prompt or make an API call to the model provider.
251
+
252
+ This endpoint is useful if you don't want to proxy LLM provider requests through Vellum and prefer to send them directly
253
+ to the provider yourself. Note that no guarantees are made on the format of this API's response schema, other than
254
+ that it will be a valid payload for the configured model provider. It's not recommended that you try to parse or
255
+ derive meaning from the response body and instead, should simply pass it directly to the model provider as is.
256
+
257
+ We encourage you to seek advise from Vellum Support before integrating with this API for production use.
258
+
259
+ Parameters
260
+ ----------
261
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
262
+ The list of inputs defined in the Prompt's deployment with their corresponding values.
263
+
264
+ deployment_id : typing.Optional[str]
265
+ The ID of the deployment. Must provide either this or deployment_name.
266
+
267
+ deployment_name : typing.Optional[str]
268
+ The name of the deployment. Must provide either this or deployment_id.
284
269
 
285
- - deployment_name: typing.Optional[str]. The name of the deployment. Must provide either this or deployment_id.
270
+ release_tag : typing.Optional[str]
271
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
286
272
 
287
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
273
+ expand_meta : typing.Optional[CompilePromptDeploymentExpandMetaRequest]
288
274
 
289
- - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
275
+ request_options : typing.Optional[RequestOptions]
276
+ Request-specific configuration.
290
277
 
291
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
292
- ---
278
+ Returns
279
+ -------
280
+ DeploymentProviderPayloadResponse
281
+
282
+
283
+ Examples
284
+ --------
293
285
  from vellum.client import Vellum
294
286
 
295
287
  client = Vellum(
@@ -299,52 +291,31 @@ class DeploymentsClient:
299
291
  inputs=[],
300
292
  )
301
293
  """
302
- _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
303
- if deployment_id is not OMIT:
304
- _request["deployment_id"] = deployment_id
305
- if deployment_name is not OMIT:
306
- _request["deployment_name"] = deployment_name
307
- if release_tag is not OMIT:
308
- _request["release_tag"] = release_tag
309
294
  _response = self._client_wrapper.httpx_client.request(
295
+ "v1/deployments/provider-payload",
296
+ base_url=self._client_wrapper.get_environment().default,
310
297
  method="POST",
311
- url=urllib.parse.urljoin(
312
- f"{self._client_wrapper.get_environment().default}/", "v1/deployments/provider-payload"
313
- ),
314
- params=jsonable_encoder(
315
- request_options.get("additional_query_parameters") if request_options is not None else None
316
- ),
317
- json=jsonable_encoder(_request)
318
- if request_options is None or request_options.get("additional_body_parameters") is None
319
- else {
320
- **jsonable_encoder(_request),
321
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
298
+ json={
299
+ "deployment_id": deployment_id,
300
+ "deployment_name": deployment_name,
301
+ "inputs": inputs,
302
+ "release_tag": release_tag,
303
+ "expand_meta": expand_meta,
322
304
  },
323
- headers=jsonable_encoder(
324
- remove_none_from_dict(
325
- {
326
- **self._client_wrapper.get_headers(),
327
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
328
- }
329
- )
330
- ),
331
- timeout=request_options.get("timeout_in_seconds")
332
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
333
- else self._client_wrapper.get_timeout(),
334
- retries=0,
335
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
305
+ request_options=request_options,
306
+ omit=OMIT,
336
307
  )
337
- if 200 <= _response.status_code < 300:
338
- return pydantic_v1.parse_obj_as(DeploymentProviderPayloadResponse, _response.json()) # type: ignore
339
- if _response.status_code == 400:
340
- raise BadRequestError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
341
- if _response.status_code == 403:
342
- raise ForbiddenError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
343
- if _response.status_code == 404:
344
- raise NotFoundError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
345
- if _response.status_code == 500:
346
- raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
347
308
  try:
309
+ if 200 <= _response.status_code < 300:
310
+ return pydantic_v1.parse_obj_as(DeploymentProviderPayloadResponse, _response.json()) # type: ignore
311
+ if _response.status_code == 400:
312
+ raise BadRequestError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
313
+ if _response.status_code == 403:
314
+ raise ForbiddenError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
315
+ if _response.status_code == 404:
316
+ raise NotFoundError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
317
+ if _response.status_code == 500:
318
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
348
319
  _response_json = _response.json()
349
320
  except JSONDecodeError:
350
321
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -365,59 +336,57 @@ class AsyncDeploymentsClient:
365
336
  request_options: typing.Optional[RequestOptions] = None,
366
337
  ) -> PaginatedSlimDeploymentReadList:
367
338
  """
368
- Parameters:
369
- - limit: typing.Optional[int]. Number of results to return per page.
339
+ Used to list all Prompt Deployments.
340
+
341
+ Parameters
342
+ ----------
343
+ limit : typing.Optional[int]
344
+ Number of results to return per page.
345
+
346
+ offset : typing.Optional[int]
347
+ The initial index from which to return the results.
348
+
349
+ ordering : typing.Optional[str]
350
+ Which field to use when ordering the results.
370
351
 
371
- - offset: typing.Optional[int]. The initial index from which to return the results.
352
+ status : typing.Optional[DeploymentsListRequestStatus]
353
+ status
372
354
 
373
- - ordering: typing.Optional[str]. Which field to use when ordering the results.
355
+ request_options : typing.Optional[RequestOptions]
356
+ Request-specific configuration.
374
357
 
375
- - status: typing.Optional[DeploymentsListRequestStatus]. status
358
+ Returns
359
+ -------
360
+ PaginatedSlimDeploymentReadList
361
+
362
+
363
+ Examples
364
+ --------
365
+ import asyncio
376
366
 
377
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
378
- ---
379
367
  from vellum.client import AsyncVellum
380
368
 
381
369
  client = AsyncVellum(
382
370
  api_key="YOUR_API_KEY",
383
371
  )
384
- await client.deployments.list()
372
+
373
+
374
+ async def main() -> None:
375
+ await client.deployments.list()
376
+
377
+
378
+ asyncio.run(main())
385
379
  """
386
380
  _response = await self._client_wrapper.httpx_client.request(
381
+ "v1/deployments",
382
+ base_url=self._client_wrapper.get_environment().default,
387
383
  method="GET",
388
- url=urllib.parse.urljoin(f"{self._client_wrapper.get_environment().default}/", "v1/deployments"),
389
- params=jsonable_encoder(
390
- remove_none_from_dict(
391
- {
392
- "limit": limit,
393
- "offset": offset,
394
- "ordering": ordering,
395
- "status": status,
396
- **(
397
- request_options.get("additional_query_parameters", {})
398
- if request_options is not None
399
- else {}
400
- ),
401
- }
402
- )
403
- ),
404
- headers=jsonable_encoder(
405
- remove_none_from_dict(
406
- {
407
- **self._client_wrapper.get_headers(),
408
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
409
- }
410
- )
411
- ),
412
- timeout=request_options.get("timeout_in_seconds")
413
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
414
- else self._client_wrapper.get_timeout(),
415
- retries=0,
416
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
384
+ params={"limit": limit, "offset": offset, "ordering": ordering, "status": status},
385
+ request_options=request_options,
417
386
  )
418
- if 200 <= _response.status_code < 300:
419
- return pydantic_v1.parse_obj_as(PaginatedSlimDeploymentReadList, _response.json()) # type: ignore
420
387
  try:
388
+ if 200 <= _response.status_code < 300:
389
+ return pydantic_v1.parse_obj_as(PaginatedSlimDeploymentReadList, _response.json()) # type: ignore
421
390
  _response_json = _response.json()
422
391
  except JSONDecodeError:
423
392
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -425,47 +394,49 @@ class AsyncDeploymentsClient:
425
394
 
426
395
  async def retrieve(self, id: str, *, request_options: typing.Optional[RequestOptions] = None) -> DeploymentRead:
427
396
  """
428
- Used to retrieve a deployment given its ID or name.
397
+ Used to retrieve a Prompt Deployment given its ID or name.
398
+
399
+ Parameters
400
+ ----------
401
+ id : str
402
+ Either the Deployment's ID or its unique name
403
+
404
+ request_options : typing.Optional[RequestOptions]
405
+ Request-specific configuration.
406
+
407
+ Returns
408
+ -------
409
+ DeploymentRead
410
+
429
411
 
430
- Parameters:
431
- - id: str. Either the Deployment's ID or its unique name
412
+ Examples
413
+ --------
414
+ import asyncio
432
415
 
433
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
434
- ---
435
416
  from vellum.client import AsyncVellum
436
417
 
437
418
  client = AsyncVellum(
438
419
  api_key="YOUR_API_KEY",
439
420
  )
440
- await client.deployments.retrieve(
441
- id="id",
442
- )
421
+
422
+
423
+ async def main() -> None:
424
+ await client.deployments.retrieve(
425
+ id="id",
426
+ )
427
+
428
+
429
+ asyncio.run(main())
443
430
  """
444
431
  _response = await self._client_wrapper.httpx_client.request(
432
+ f"v1/deployments/{jsonable_encoder(id)}",
433
+ base_url=self._client_wrapper.get_environment().default,
445
434
  method="GET",
446
- url=urllib.parse.urljoin(
447
- f"{self._client_wrapper.get_environment().default}/", f"v1/deployments/{jsonable_encoder(id)}"
448
- ),
449
- params=jsonable_encoder(
450
- request_options.get("additional_query_parameters") if request_options is not None else None
451
- ),
452
- headers=jsonable_encoder(
453
- remove_none_from_dict(
454
- {
455
- **self._client_wrapper.get_headers(),
456
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
457
- }
458
- )
459
- ),
460
- timeout=request_options.get("timeout_in_seconds")
461
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
462
- else self._client_wrapper.get_timeout(),
463
- retries=0,
464
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
435
+ request_options=request_options,
465
436
  )
466
- if 200 <= _response.status_code < 300:
467
- return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
468
437
  try:
438
+ if 200 <= _response.status_code < 300:
439
+ return pydantic_v1.parse_obj_as(DeploymentRead, _response.json()) # type: ignore
469
440
  _response_json = _response.json()
470
441
  except JSONDecodeError:
471
442
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -477,49 +448,51 @@ class AsyncDeploymentsClient:
477
448
  """
478
449
  Retrieve a Deployment Release Tag by tag name, associated with a specified Deployment.
479
450
 
480
- Parameters:
481
- - id: str. A UUID string identifying this deployment.
451
+ Parameters
452
+ ----------
453
+ id : str
454
+ A UUID string identifying this deployment.
455
+
456
+ name : str
457
+ The name of the Release Tag associated with this Deployment that you'd like to retrieve.
458
+
459
+ request_options : typing.Optional[RequestOptions]
460
+ Request-specific configuration.
461
+
462
+ Returns
463
+ -------
464
+ DeploymentReleaseTagRead
465
+
482
466
 
483
- - name: str. The name of the Release Tag associated with this Deployment that you'd like to retrieve.
467
+ Examples
468
+ --------
469
+ import asyncio
484
470
 
485
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
486
- ---
487
471
  from vellum.client import AsyncVellum
488
472
 
489
473
  client = AsyncVellum(
490
474
  api_key="YOUR_API_KEY",
491
475
  )
492
- await client.deployments.retrieve_deployment_release_tag(
493
- id="id",
494
- name="name",
495
- )
476
+
477
+
478
+ async def main() -> None:
479
+ await client.deployments.retrieve_deployment_release_tag(
480
+ id="id",
481
+ name="name",
482
+ )
483
+
484
+
485
+ asyncio.run(main())
496
486
  """
497
487
  _response = await self._client_wrapper.httpx_client.request(
488
+ f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
489
+ base_url=self._client_wrapper.get_environment().default,
498
490
  method="GET",
499
- url=urllib.parse.urljoin(
500
- f"{self._client_wrapper.get_environment().default}/",
501
- f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
502
- ),
503
- params=jsonable_encoder(
504
- request_options.get("additional_query_parameters") if request_options is not None else None
505
- ),
506
- headers=jsonable_encoder(
507
- remove_none_from_dict(
508
- {
509
- **self._client_wrapper.get_headers(),
510
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
511
- }
512
- )
513
- ),
514
- timeout=request_options.get("timeout_in_seconds")
515
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
516
- else self._client_wrapper.get_timeout(),
517
- retries=0,
518
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
491
+ request_options=request_options,
519
492
  )
520
- if 200 <= _response.status_code < 300:
521
- return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
522
493
  try:
494
+ if 200 <= _response.status_code < 300:
495
+ return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
523
496
  _response_json = _response.json()
524
497
  except JSONDecodeError:
525
498
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -536,60 +509,56 @@ class AsyncDeploymentsClient:
536
509
  """
537
510
  Updates an existing Release Tag associated with the specified Deployment.
538
511
 
539
- Parameters:
540
- - id: str. A UUID string identifying this deployment.
512
+ Parameters
513
+ ----------
514
+ id : str
515
+ A UUID string identifying this deployment.
516
+
517
+ name : str
518
+ The name of the Release Tag associated with this Deployment that you'd like to update.
519
+
520
+ history_item_id : typing.Optional[str]
521
+ The ID of the Deployment History Item to tag
522
+
523
+ request_options : typing.Optional[RequestOptions]
524
+ Request-specific configuration.
541
525
 
542
- - name: str. The name of the Release Tag associated with this Deployment that you'd like to update.
526
+ Returns
527
+ -------
528
+ DeploymentReleaseTagRead
543
529
 
544
- - history_item_id: typing.Optional[str]. The ID of the Deployment History Item to tag
545
530
 
546
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
547
- ---
531
+ Examples
532
+ --------
533
+ import asyncio
534
+
548
535
  from vellum.client import AsyncVellum
549
536
 
550
537
  client = AsyncVellum(
551
538
  api_key="YOUR_API_KEY",
552
539
  )
553
- await client.deployments.update_deployment_release_tag(
554
- id="id",
555
- name="name",
556
- )
540
+
541
+
542
+ async def main() -> None:
543
+ await client.deployments.update_deployment_release_tag(
544
+ id="id",
545
+ name="name",
546
+ )
547
+
548
+
549
+ asyncio.run(main())
557
550
  """
558
- _request: typing.Dict[str, typing.Any] = {}
559
- if history_item_id is not OMIT:
560
- _request["history_item_id"] = history_item_id
561
551
  _response = await self._client_wrapper.httpx_client.request(
552
+ f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
553
+ base_url=self._client_wrapper.get_environment().default,
562
554
  method="PATCH",
563
- url=urllib.parse.urljoin(
564
- f"{self._client_wrapper.get_environment().default}/",
565
- f"v1/deployments/{jsonable_encoder(id)}/release-tags/{jsonable_encoder(name)}",
566
- ),
567
- params=jsonable_encoder(
568
- request_options.get("additional_query_parameters") if request_options is not None else None
569
- ),
570
- json=jsonable_encoder(_request)
571
- if request_options is None or request_options.get("additional_body_parameters") is None
572
- else {
573
- **jsonable_encoder(_request),
574
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
575
- },
576
- headers=jsonable_encoder(
577
- remove_none_from_dict(
578
- {
579
- **self._client_wrapper.get_headers(),
580
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
581
- }
582
- )
583
- ),
584
- timeout=request_options.get("timeout_in_seconds")
585
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
586
- else self._client_wrapper.get_timeout(),
587
- retries=0,
588
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
555
+ json={"history_item_id": history_item_id},
556
+ request_options=request_options,
557
+ omit=OMIT,
589
558
  )
590
- if 200 <= _response.status_code < 300:
591
- return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
592
559
  try:
560
+ if 200 <= _response.status_code < 300:
561
+ return pydantic_v1.parse_obj_as(DeploymentReleaseTagRead, _response.json()) # type: ignore
593
562
  _response_json = _response.json()
594
563
  except JSONDecodeError:
595
564
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -598,79 +567,93 @@ class AsyncDeploymentsClient:
598
567
  async def retrieve_provider_payload(
599
568
  self,
600
569
  *,
570
+ inputs: typing.Sequence[PromptDeploymentInputRequest],
601
571
  deployment_id: typing.Optional[str] = OMIT,
602
572
  deployment_name: typing.Optional[str] = OMIT,
603
- inputs: typing.Sequence[PromptDeploymentInputRequest],
604
573
  release_tag: typing.Optional[str] = OMIT,
574
+ expand_meta: typing.Optional[CompilePromptDeploymentExpandMetaRequest] = OMIT,
605
575
  request_options: typing.Optional[RequestOptions] = None,
606
576
  ) -> DeploymentProviderPayloadResponse:
607
577
  """
608
- Parameters:
609
- - deployment_id: typing.Optional[str]. The ID of the deployment. Must provide either this or deployment_name.
578
+ Given a set of input variable values, compile the exact payload that Vellum would send to the configured model provider
579
+ for execution if the execute-prompt endpoint had been invoked. Note that this endpoint does not actually execute the
580
+ prompt or make an API call to the model provider.
581
+
582
+ This endpoint is useful if you don't want to proxy LLM provider requests through Vellum and prefer to send them directly
583
+ to the provider yourself. Note that no guarantees are made on the format of this API's response schema, other than
584
+ that it will be a valid payload for the configured model provider. It's not recommended that you try to parse or
585
+ derive meaning from the response body and instead, should simply pass it directly to the model provider as is.
586
+
587
+ We encourage you to seek advise from Vellum Support before integrating with this API for production use.
588
+
589
+ Parameters
590
+ ----------
591
+ inputs : typing.Sequence[PromptDeploymentInputRequest]
592
+ The list of inputs defined in the Prompt's deployment with their corresponding values.
593
+
594
+ deployment_id : typing.Optional[str]
595
+ The ID of the deployment. Must provide either this or deployment_name.
610
596
 
611
- - deployment_name: typing.Optional[str]. The name of the deployment. Must provide either this or deployment_id.
597
+ deployment_name : typing.Optional[str]
598
+ The name of the deployment. Must provide either this or deployment_id.
612
599
 
613
- - inputs: typing.Sequence[PromptDeploymentInputRequest]. The list of inputs defined in the Prompt's deployment with their corresponding values.
600
+ release_tag : typing.Optional[str]
601
+ Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
614
602
 
615
- - release_tag: typing.Optional[str]. Optionally specify a release tag if you want to pin to a specific release of the Workflow Deployment
603
+ expand_meta : typing.Optional[CompilePromptDeploymentExpandMetaRequest]
604
+
605
+ request_options : typing.Optional[RequestOptions]
606
+ Request-specific configuration.
607
+
608
+ Returns
609
+ -------
610
+ DeploymentProviderPayloadResponse
611
+
612
+
613
+ Examples
614
+ --------
615
+ import asyncio
616
616
 
617
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
618
- ---
619
617
  from vellum.client import AsyncVellum
620
618
 
621
619
  client = AsyncVellum(
622
620
  api_key="YOUR_API_KEY",
623
621
  )
624
- await client.deployments.retrieve_provider_payload(
625
- inputs=[],
626
- )
622
+
623
+
624
+ async def main() -> None:
625
+ await client.deployments.retrieve_provider_payload(
626
+ inputs=[],
627
+ )
628
+
629
+
630
+ asyncio.run(main())
627
631
  """
628
- _request: typing.Dict[str, typing.Any] = {"inputs": inputs}
629
- if deployment_id is not OMIT:
630
- _request["deployment_id"] = deployment_id
631
- if deployment_name is not OMIT:
632
- _request["deployment_name"] = deployment_name
633
- if release_tag is not OMIT:
634
- _request["release_tag"] = release_tag
635
632
  _response = await self._client_wrapper.httpx_client.request(
633
+ "v1/deployments/provider-payload",
634
+ base_url=self._client_wrapper.get_environment().default,
636
635
  method="POST",
637
- url=urllib.parse.urljoin(
638
- f"{self._client_wrapper.get_environment().default}/", "v1/deployments/provider-payload"
639
- ),
640
- params=jsonable_encoder(
641
- request_options.get("additional_query_parameters") if request_options is not None else None
642
- ),
643
- json=jsonable_encoder(_request)
644
- if request_options is None or request_options.get("additional_body_parameters") is None
645
- else {
646
- **jsonable_encoder(_request),
647
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
636
+ json={
637
+ "deployment_id": deployment_id,
638
+ "deployment_name": deployment_name,
639
+ "inputs": inputs,
640
+ "release_tag": release_tag,
641
+ "expand_meta": expand_meta,
648
642
  },
649
- headers=jsonable_encoder(
650
- remove_none_from_dict(
651
- {
652
- **self._client_wrapper.get_headers(),
653
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
654
- }
655
- )
656
- ),
657
- timeout=request_options.get("timeout_in_seconds")
658
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
659
- else self._client_wrapper.get_timeout(),
660
- retries=0,
661
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
643
+ request_options=request_options,
644
+ omit=OMIT,
662
645
  )
663
- if 200 <= _response.status_code < 300:
664
- return pydantic_v1.parse_obj_as(DeploymentProviderPayloadResponse, _response.json()) # type: ignore
665
- if _response.status_code == 400:
666
- raise BadRequestError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
667
- if _response.status_code == 403:
668
- raise ForbiddenError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
669
- if _response.status_code == 404:
670
- raise NotFoundError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
671
- if _response.status_code == 500:
672
- raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
673
646
  try:
647
+ if 200 <= _response.status_code < 300:
648
+ return pydantic_v1.parse_obj_as(DeploymentProviderPayloadResponse, _response.json()) # type: ignore
649
+ if _response.status_code == 400:
650
+ raise BadRequestError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
651
+ if _response.status_code == 403:
652
+ raise ForbiddenError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
653
+ if _response.status_code == 404:
654
+ raise NotFoundError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
655
+ if _response.status_code == 500:
656
+ raise InternalServerError(pydantic_v1.parse_obj_as(typing.Any, _response.json())) # type: ignore
674
657
  _response_json = _response.json()
675
658
  except JSONDecodeError:
676
659
  raise ApiError(status_code=_response.status_code, body=_response.text)