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
@@ -2,20 +2,18 @@
2
2
 
3
3
  import json
4
4
  import typing
5
- import urllib.parse
6
5
  from json.decoder import JSONDecodeError
7
6
 
8
7
  from ...core.api_error import ApiError
9
8
  from ...core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
10
9
  from ...core.jsonable_encoder import jsonable_encoder
11
10
  from ...core.pydantic_utilities import pydantic_v1
12
- from ...core.remove_none_from_dict import remove_none_from_dict
13
11
  from ...core.request_options import RequestOptions
12
+ from ...types.named_test_case_variable_value_request import NamedTestCaseVariableValueRequest
14
13
  from ...types.paginated_test_suite_test_case_list import PaginatedTestSuiteTestCaseList
15
14
  from ...types.test_suite_test_case import TestSuiteTestCase
16
15
  from ...types.test_suite_test_case_bulk_operation_request import TestSuiteTestCaseBulkOperationRequest
17
16
  from ...types.test_suite_test_case_bulk_result import TestSuiteTestCaseBulkResult
18
- from ...types.upsert_test_suite_test_case_request import UpsertTestSuiteTestCaseRequest
19
17
 
20
18
  # this is used as the default value for optional parameters
21
19
  OMIT = typing.cast(typing.Any, ...)
@@ -36,15 +34,27 @@ class TestSuitesClient:
36
34
  """
37
35
  List the Test Cases associated with a Test Suite
38
36
 
39
- Parameters:
40
- - id: str. A UUID string identifying this test suite.
37
+ Parameters
38
+ ----------
39
+ id : str
40
+ A UUID string identifying this test suite.
41
41
 
42
- - limit: typing.Optional[int]. Number of results to return per page.
42
+ limit : typing.Optional[int]
43
+ Number of results to return per page.
43
44
 
44
- - offset: typing.Optional[int]. The initial index from which to return the results.
45
+ offset : typing.Optional[int]
46
+ The initial index from which to return the results.
45
47
 
46
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
47
- ---
48
+ request_options : typing.Optional[RequestOptions]
49
+ Request-specific configuration.
50
+
51
+ Returns
52
+ -------
53
+ PaginatedTestSuiteTestCaseList
54
+
55
+
56
+ Examples
57
+ --------
48
58
  from vellum.client import Vellum
49
59
 
50
60
  client = Vellum(
@@ -55,41 +65,15 @@ class TestSuitesClient:
55
65
  )
56
66
  """
57
67
  _response = self._client_wrapper.httpx_client.request(
68
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
69
+ base_url=self._client_wrapper.get_environment().default,
58
70
  method="GET",
59
- url=urllib.parse.urljoin(
60
- f"{self._client_wrapper.get_environment().default}/",
61
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
62
- ),
63
- params=jsonable_encoder(
64
- remove_none_from_dict(
65
- {
66
- "limit": limit,
67
- "offset": offset,
68
- **(
69
- request_options.get("additional_query_parameters", {})
70
- if request_options is not None
71
- else {}
72
- ),
73
- }
74
- )
75
- ),
76
- headers=jsonable_encoder(
77
- remove_none_from_dict(
78
- {
79
- **self._client_wrapper.get_headers(),
80
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
81
- }
82
- )
83
- ),
84
- timeout=request_options.get("timeout_in_seconds")
85
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
86
- else self._client_wrapper.get_timeout(),
87
- retries=0,
88
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
71
+ params={"limit": limit, "offset": offset},
72
+ request_options=request_options,
89
73
  )
90
- if 200 <= _response.status_code < 300:
91
- return pydantic_v1.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
92
74
  try:
75
+ if 200 <= _response.status_code < 300:
76
+ return pydantic_v1.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
93
77
  _response_json = _response.json()
94
78
  except JSONDecodeError:
95
79
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -97,9 +81,13 @@ class TestSuitesClient:
97
81
 
98
82
  def upsert_test_suite_test_case(
99
83
  self,
100
- id: str,
84
+ id_: str,
101
85
  *,
102
- request: UpsertTestSuiteTestCaseRequest,
86
+ input_values: typing.Sequence[NamedTestCaseVariableValueRequest],
87
+ evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest],
88
+ id: typing.Optional[str] = OMIT,
89
+ external_id: typing.Optional[str] = OMIT,
90
+ label: typing.Optional[str] = OMIT,
103
91
  request_options: typing.Optional[RequestOptions] = None,
104
92
  ) -> TestSuiteTestCase:
105
93
  """
@@ -111,59 +99,64 @@ class TestSuitesClient:
111
99
  Note that a full replacement of the test case is performed, so any fields not provided will be removed
112
100
  or overwritten with default values.
113
101
 
114
- Parameters:
115
- - id: str. A UUID string identifying this test suite.
102
+ Parameters
103
+ ----------
104
+ id_ : str
105
+ A UUID string identifying this test suite.
106
+
107
+ input_values : typing.Sequence[NamedTestCaseVariableValueRequest]
108
+ Values for each of the Test Case's input variables
109
+
110
+ evaluation_values : typing.Sequence[NamedTestCaseVariableValueRequest]
111
+ Values for each of the Test Case's evaluation variables
112
+
113
+ id : typing.Optional[str]
114
+ The Vellum-generated ID of an existing Test Case whose data you'd like to replace. If specified and no Test Case exists with this ID, a 404 will be returned.
115
+
116
+ external_id : typing.Optional[str]
117
+ An ID external to Vellum that uniquely identifies the Test Case that you'd like to create/update. If there's a match on a Test Case that was previously created with the same external_id, it will be updated. Otherwise, a new Test Case will be created with this value as its external_id. If no external_id is specified, then a new Test Case will always be created.
118
+
119
+ label : typing.Optional[str]
120
+ A human-readable label used to convey the intention of this Test Case
116
121
 
117
- - request: UpsertTestSuiteTestCaseRequest.
122
+ request_options : typing.Optional[RequestOptions]
123
+ Request-specific configuration.
118
124
 
119
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
120
- ---
121
- from vellum import UpsertTestSuiteTestCaseRequest
125
+ Returns
126
+ -------
127
+ TestSuiteTestCase
128
+
129
+
130
+ Examples
131
+ --------
122
132
  from vellum.client import Vellum
123
133
 
124
134
  client = Vellum(
125
135
  api_key="YOUR_API_KEY",
126
136
  )
127
137
  client.test_suites.upsert_test_suite_test_case(
128
- id="id",
129
- request=UpsertTestSuiteTestCaseRequest(
130
- input_values=[],
131
- evaluation_values=[],
132
- ),
138
+ id_="id",
139
+ input_values=[],
140
+ evaluation_values=[],
133
141
  )
134
142
  """
135
143
  _response = self._client_wrapper.httpx_client.request(
144
+ f"v1/test-suites/{jsonable_encoder(id_)}/test-cases",
145
+ base_url=self._client_wrapper.get_environment().default,
136
146
  method="POST",
137
- url=urllib.parse.urljoin(
138
- f"{self._client_wrapper.get_environment().default}/",
139
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
140
- ),
141
- params=jsonable_encoder(
142
- request_options.get("additional_query_parameters") if request_options is not None else None
143
- ),
144
- json=jsonable_encoder(request)
145
- if request_options is None or request_options.get("additional_body_parameters") is None
146
- else {
147
- **jsonable_encoder(request),
148
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
147
+ json={
148
+ "id": id,
149
+ "external_id": external_id,
150
+ "label": label,
151
+ "input_values": input_values,
152
+ "evaluation_values": evaluation_values,
149
153
  },
150
- headers=jsonable_encoder(
151
- remove_none_from_dict(
152
- {
153
- **self._client_wrapper.get_headers(),
154
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
155
- }
156
- )
157
- ),
158
- timeout=request_options.get("timeout_in_seconds")
159
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
160
- else self._client_wrapper.get_timeout(),
161
- retries=0,
162
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
154
+ request_options=request_options,
155
+ omit=OMIT,
163
156
  )
164
- if 200 <= _response.status_code < 300:
165
- return pydantic_v1.parse_obj_as(TestSuiteTestCase, _response.json()) # type: ignore
166
157
  try:
158
+ if 200 <= _response.status_code < 300:
159
+ return pydantic_v1.parse_obj_as(TestSuiteTestCase, _response.json()) # type: ignore
167
160
  _response_json = _response.json()
168
161
  except JSONDecodeError:
169
162
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -179,13 +172,23 @@ class TestSuitesClient:
179
172
  """
180
173
  Created, replace, and delete Test Cases within the specified Test Suite in bulk
181
174
 
182
- Parameters:
183
- - id: str. A UUID string identifying this test suite.
175
+ Parameters
176
+ ----------
177
+ id : str
178
+ A UUID string identifying this test suite.
184
179
 
185
- - request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest].
180
+ request : typing.Sequence[TestSuiteTestCaseBulkOperationRequest]
186
181
 
187
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
188
- ---
182
+ request_options : typing.Optional[RequestOptions]
183
+ Request-specific configuration.
184
+
185
+ Yields
186
+ ------
187
+ typing.Iterator[typing.List[TestSuiteTestCaseBulkResult]]
188
+
189
+
190
+ Examples
191
+ --------
189
192
  from vellum import (
190
193
  CreateTestSuiteTestCaseRequest,
191
194
  NamedTestCaseVariableValueRequest_String,
@@ -196,7 +199,7 @@ class TestSuitesClient:
196
199
  client = Vellum(
197
200
  api_key="YOUR_API_KEY",
198
201
  )
199
- client.test_suites.test_suite_test_cases_bulk(
202
+ response = client.test_suites.test_suite_test_cases_bulk(
200
203
  id="string",
201
204
  request=[
202
205
  TestSuiteTestCaseBulkOperationRequest_Create(
@@ -210,44 +213,28 @@ class TestSuitesClient:
210
213
  )
211
214
  ],
212
215
  )
216
+ for chunk in response:
217
+ yield chunk
213
218
  """
214
219
  with self._client_wrapper.httpx_client.stream(
220
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
221
+ base_url=self._client_wrapper.get_environment().default,
215
222
  method="POST",
216
- url=urllib.parse.urljoin(
217
- f"{self._client_wrapper.get_environment().default}/",
218
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
219
- ),
220
- params=jsonable_encoder(
221
- request_options.get("additional_query_parameters") if request_options is not None else None
222
- ),
223
- json=jsonable_encoder(request)
224
- if request_options is None or request_options.get("additional_body_parameters") is None
225
- else {
226
- **jsonable_encoder(request),
227
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
228
- },
229
- headers=jsonable_encoder(
230
- remove_none_from_dict(
231
- {
232
- **self._client_wrapper.get_headers(),
233
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
234
- }
235
- )
236
- ),
237
- timeout=request_options.get("timeout_in_seconds")
238
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
239
- else self._client_wrapper.get_timeout(),
240
- retries=0,
241
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
223
+ json=request,
224
+ request_options=request_options,
225
+ omit=OMIT,
242
226
  ) as _response:
243
- if 200 <= _response.status_code < 300:
244
- for _text in _response.iter_lines():
245
- if len(_text) == 0:
246
- continue
247
- yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
248
- return
249
- _response.read()
250
227
  try:
228
+ if 200 <= _response.status_code < 300:
229
+ for _text in _response.iter_lines():
230
+ try:
231
+ if len(_text) == 0:
232
+ continue
233
+ yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
234
+ except:
235
+ pass
236
+ return
237
+ _response.read()
251
238
  _response_json = _response.json()
252
239
  except JSONDecodeError:
253
240
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -259,13 +246,23 @@ class TestSuitesClient:
259
246
  """
260
247
  Deletes an existing test case for a test suite, keying off of the test case id.
261
248
 
262
- Parameters:
263
- - id: str. A UUID string identifying this test suite.
249
+ Parameters
250
+ ----------
251
+ id : str
252
+ A UUID string identifying this test suite.
253
+
254
+ test_case_id : str
255
+ An id identifying the test case that you'd like to delete
264
256
 
265
- - test_case_id: str. An id identifying the test case that you'd like to delete
257
+ request_options : typing.Optional[RequestOptions]
258
+ Request-specific configuration.
266
259
 
267
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
268
- ---
260
+ Returns
261
+ -------
262
+ None
263
+
264
+ Examples
265
+ --------
269
266
  from vellum.client import Vellum
270
267
 
271
268
  client = Vellum(
@@ -277,31 +274,14 @@ class TestSuitesClient:
277
274
  )
278
275
  """
279
276
  _response = self._client_wrapper.httpx_client.request(
277
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases/{jsonable_encoder(test_case_id)}",
278
+ base_url=self._client_wrapper.get_environment().default,
280
279
  method="DELETE",
281
- url=urllib.parse.urljoin(
282
- f"{self._client_wrapper.get_environment().default}/",
283
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases/{jsonable_encoder(test_case_id)}",
284
- ),
285
- params=jsonable_encoder(
286
- request_options.get("additional_query_parameters") if request_options is not None else None
287
- ),
288
- headers=jsonable_encoder(
289
- remove_none_from_dict(
290
- {
291
- **self._client_wrapper.get_headers(),
292
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
293
- }
294
- )
295
- ),
296
- timeout=request_options.get("timeout_in_seconds")
297
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
298
- else self._client_wrapper.get_timeout(),
299
- retries=0,
300
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
280
+ request_options=request_options,
301
281
  )
302
- if 200 <= _response.status_code < 300:
303
- return
304
282
  try:
283
+ if 200 <= _response.status_code < 300:
284
+ return
305
285
  _response_json = _response.json()
306
286
  except JSONDecodeError:
307
287
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -323,60 +303,54 @@ class AsyncTestSuitesClient:
323
303
  """
324
304
  List the Test Cases associated with a Test Suite
325
305
 
326
- Parameters:
327
- - id: str. A UUID string identifying this test suite.
306
+ Parameters
307
+ ----------
308
+ id : str
309
+ A UUID string identifying this test suite.
310
+
311
+ limit : typing.Optional[int]
312
+ Number of results to return per page.
328
313
 
329
- - limit: typing.Optional[int]. Number of results to return per page.
314
+ offset : typing.Optional[int]
315
+ The initial index from which to return the results.
330
316
 
331
- - offset: typing.Optional[int]. The initial index from which to return the results.
317
+ request_options : typing.Optional[RequestOptions]
318
+ Request-specific configuration.
319
+
320
+ Returns
321
+ -------
322
+ PaginatedTestSuiteTestCaseList
323
+
324
+
325
+ Examples
326
+ --------
327
+ import asyncio
332
328
 
333
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
334
- ---
335
329
  from vellum.client import AsyncVellum
336
330
 
337
331
  client = AsyncVellum(
338
332
  api_key="YOUR_API_KEY",
339
333
  )
340
- await client.test_suites.list_test_suite_test_cases(
341
- id="id",
342
- )
334
+
335
+
336
+ async def main() -> None:
337
+ await client.test_suites.list_test_suite_test_cases(
338
+ id="id",
339
+ )
340
+
341
+
342
+ asyncio.run(main())
343
343
  """
344
344
  _response = await self._client_wrapper.httpx_client.request(
345
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
346
+ base_url=self._client_wrapper.get_environment().default,
345
347
  method="GET",
346
- url=urllib.parse.urljoin(
347
- f"{self._client_wrapper.get_environment().default}/",
348
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
349
- ),
350
- params=jsonable_encoder(
351
- remove_none_from_dict(
352
- {
353
- "limit": limit,
354
- "offset": offset,
355
- **(
356
- request_options.get("additional_query_parameters", {})
357
- if request_options is not None
358
- else {}
359
- ),
360
- }
361
- )
362
- ),
363
- headers=jsonable_encoder(
364
- remove_none_from_dict(
365
- {
366
- **self._client_wrapper.get_headers(),
367
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
368
- }
369
- )
370
- ),
371
- timeout=request_options.get("timeout_in_seconds")
372
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
373
- else self._client_wrapper.get_timeout(),
374
- retries=0,
375
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
348
+ params={"limit": limit, "offset": offset},
349
+ request_options=request_options,
376
350
  )
377
- if 200 <= _response.status_code < 300:
378
- return pydantic_v1.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
379
351
  try:
352
+ if 200 <= _response.status_code < 300:
353
+ return pydantic_v1.parse_obj_as(PaginatedTestSuiteTestCaseList, _response.json()) # type: ignore
380
354
  _response_json = _response.json()
381
355
  except JSONDecodeError:
382
356
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -384,9 +358,13 @@ class AsyncTestSuitesClient:
384
358
 
385
359
  async def upsert_test_suite_test_case(
386
360
  self,
387
- id: str,
361
+ id_: str,
388
362
  *,
389
- request: UpsertTestSuiteTestCaseRequest,
363
+ input_values: typing.Sequence[NamedTestCaseVariableValueRequest],
364
+ evaluation_values: typing.Sequence[NamedTestCaseVariableValueRequest],
365
+ id: typing.Optional[str] = OMIT,
366
+ external_id: typing.Optional[str] = OMIT,
367
+ label: typing.Optional[str] = OMIT,
390
368
  request_options: typing.Optional[RequestOptions] = None,
391
369
  ) -> TestSuiteTestCase:
392
370
  """
@@ -398,59 +376,72 @@ class AsyncTestSuitesClient:
398
376
  Note that a full replacement of the test case is performed, so any fields not provided will be removed
399
377
  or overwritten with default values.
400
378
 
401
- Parameters:
402
- - id: str. A UUID string identifying this test suite.
379
+ Parameters
380
+ ----------
381
+ id_ : str
382
+ A UUID string identifying this test suite.
383
+
384
+ input_values : typing.Sequence[NamedTestCaseVariableValueRequest]
385
+ Values for each of the Test Case's input variables
386
+
387
+ evaluation_values : typing.Sequence[NamedTestCaseVariableValueRequest]
388
+ Values for each of the Test Case's evaluation variables
389
+
390
+ id : typing.Optional[str]
391
+ The Vellum-generated ID of an existing Test Case whose data you'd like to replace. If specified and no Test Case exists with this ID, a 404 will be returned.
392
+
393
+ external_id : typing.Optional[str]
394
+ An ID external to Vellum that uniquely identifies the Test Case that you'd like to create/update. If there's a match on a Test Case that was previously created with the same external_id, it will be updated. Otherwise, a new Test Case will be created with this value as its external_id. If no external_id is specified, then a new Test Case will always be created.
403
395
 
404
- - request: UpsertTestSuiteTestCaseRequest.
396
+ label : typing.Optional[str]
397
+ A human-readable label used to convey the intention of this Test Case
398
+
399
+ request_options : typing.Optional[RequestOptions]
400
+ Request-specific configuration.
401
+
402
+ Returns
403
+ -------
404
+ TestSuiteTestCase
405
+
406
+
407
+ Examples
408
+ --------
409
+ import asyncio
405
410
 
406
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
407
- ---
408
- from vellum import UpsertTestSuiteTestCaseRequest
409
411
  from vellum.client import AsyncVellum
410
412
 
411
413
  client = AsyncVellum(
412
414
  api_key="YOUR_API_KEY",
413
415
  )
414
- await client.test_suites.upsert_test_suite_test_case(
415
- id="id",
416
- request=UpsertTestSuiteTestCaseRequest(
416
+
417
+
418
+ async def main() -> None:
419
+ await client.test_suites.upsert_test_suite_test_case(
420
+ id_="id",
417
421
  input_values=[],
418
422
  evaluation_values=[],
419
- ),
420
- )
423
+ )
424
+
425
+
426
+ asyncio.run(main())
421
427
  """
422
428
  _response = await self._client_wrapper.httpx_client.request(
429
+ f"v1/test-suites/{jsonable_encoder(id_)}/test-cases",
430
+ base_url=self._client_wrapper.get_environment().default,
423
431
  method="POST",
424
- url=urllib.parse.urljoin(
425
- f"{self._client_wrapper.get_environment().default}/",
426
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases",
427
- ),
428
- params=jsonable_encoder(
429
- request_options.get("additional_query_parameters") if request_options is not None else None
430
- ),
431
- json=jsonable_encoder(request)
432
- if request_options is None or request_options.get("additional_body_parameters") is None
433
- else {
434
- **jsonable_encoder(request),
435
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
432
+ json={
433
+ "id": id,
434
+ "external_id": external_id,
435
+ "label": label,
436
+ "input_values": input_values,
437
+ "evaluation_values": evaluation_values,
436
438
  },
437
- headers=jsonable_encoder(
438
- remove_none_from_dict(
439
- {
440
- **self._client_wrapper.get_headers(),
441
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
442
- }
443
- )
444
- ),
445
- timeout=request_options.get("timeout_in_seconds")
446
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
447
- else self._client_wrapper.get_timeout(),
448
- retries=0,
449
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
439
+ request_options=request_options,
440
+ omit=OMIT,
450
441
  )
451
- if 200 <= _response.status_code < 300:
452
- return pydantic_v1.parse_obj_as(TestSuiteTestCase, _response.json()) # type: ignore
453
442
  try:
443
+ if 200 <= _response.status_code < 300:
444
+ return pydantic_v1.parse_obj_as(TestSuiteTestCase, _response.json()) # type: ignore
454
445
  _response_json = _response.json()
455
446
  except JSONDecodeError:
456
447
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -466,13 +457,25 @@ class AsyncTestSuitesClient:
466
457
  """
467
458
  Created, replace, and delete Test Cases within the specified Test Suite in bulk
468
459
 
469
- Parameters:
470
- - id: str. A UUID string identifying this test suite.
460
+ Parameters
461
+ ----------
462
+ id : str
463
+ A UUID string identifying this test suite.
464
+
465
+ request : typing.Sequence[TestSuiteTestCaseBulkOperationRequest]
471
466
 
472
- - request: typing.Sequence[TestSuiteTestCaseBulkOperationRequest].
467
+ request_options : typing.Optional[RequestOptions]
468
+ Request-specific configuration.
469
+
470
+ Yields
471
+ ------
472
+ typing.AsyncIterator[typing.List[TestSuiteTestCaseBulkResult]]
473
+
474
+
475
+ Examples
476
+ --------
477
+ import asyncio
473
478
 
474
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
475
- ---
476
479
  from vellum import (
477
480
  CreateTestSuiteTestCaseRequest,
478
481
  NamedTestCaseVariableValueRequest_String,
@@ -483,58 +486,50 @@ class AsyncTestSuitesClient:
483
486
  client = AsyncVellum(
484
487
  api_key="YOUR_API_KEY",
485
488
  )
486
- await client.test_suites.test_suite_test_cases_bulk(
487
- id="string",
488
- request=[
489
- TestSuiteTestCaseBulkOperationRequest_Create(
490
- id="string",
491
- data=CreateTestSuiteTestCaseRequest(
492
- label="string",
493
- input_values=[NamedTestCaseVariableValueRequest_String()],
494
- evaluation_values=[NamedTestCaseVariableValueRequest_String()],
495
- external_id="string",
496
- ),
497
- )
498
- ],
499
- )
489
+
490
+
491
+ async def main() -> None:
492
+ response = await client.test_suites.test_suite_test_cases_bulk(
493
+ id="string",
494
+ request=[
495
+ TestSuiteTestCaseBulkOperationRequest_Create(
496
+ id="string",
497
+ data=CreateTestSuiteTestCaseRequest(
498
+ label="string",
499
+ input_values=[NamedTestCaseVariableValueRequest_String()],
500
+ evaluation_values=[
501
+ NamedTestCaseVariableValueRequest_String()
502
+ ],
503
+ external_id="string",
504
+ ),
505
+ )
506
+ ],
507
+ )
508
+ async for chunk in response:
509
+ yield chunk
510
+
511
+
512
+ asyncio.run(main())
500
513
  """
501
514
  async with self._client_wrapper.httpx_client.stream(
515
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
516
+ base_url=self._client_wrapper.get_environment().default,
502
517
  method="POST",
503
- url=urllib.parse.urljoin(
504
- f"{self._client_wrapper.get_environment().default}/",
505
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases-bulk",
506
- ),
507
- params=jsonable_encoder(
508
- request_options.get("additional_query_parameters") if request_options is not None else None
509
- ),
510
- json=jsonable_encoder(request)
511
- if request_options is None or request_options.get("additional_body_parameters") is None
512
- else {
513
- **jsonable_encoder(request),
514
- **(jsonable_encoder(remove_none_from_dict(request_options.get("additional_body_parameters", {})))),
515
- },
516
- headers=jsonable_encoder(
517
- remove_none_from_dict(
518
- {
519
- **self._client_wrapper.get_headers(),
520
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
521
- }
522
- )
523
- ),
524
- timeout=request_options.get("timeout_in_seconds")
525
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
526
- else self._client_wrapper.get_timeout(),
527
- retries=0,
528
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
518
+ json=request,
519
+ request_options=request_options,
520
+ omit=OMIT,
529
521
  ) as _response:
530
- if 200 <= _response.status_code < 300:
531
- async for _text in _response.aiter_lines():
532
- if len(_text) == 0:
533
- continue
534
- yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
535
- return
536
- await _response.aread()
537
522
  try:
523
+ if 200 <= _response.status_code < 300:
524
+ async for _text in _response.aiter_lines():
525
+ try:
526
+ if len(_text) == 0:
527
+ continue
528
+ yield pydantic_v1.parse_obj_as(typing.List[TestSuiteTestCaseBulkResult], json.loads(_text)) # type: ignore
529
+ except:
530
+ pass
531
+ return
532
+ await _response.aread()
538
533
  _response_json = _response.json()
539
534
  except JSONDecodeError:
540
535
  raise ApiError(status_code=_response.status_code, body=_response.text)
@@ -546,49 +541,50 @@ class AsyncTestSuitesClient:
546
541
  """
547
542
  Deletes an existing test case for a test suite, keying off of the test case id.
548
543
 
549
- Parameters:
550
- - id: str. A UUID string identifying this test suite.
544
+ Parameters
545
+ ----------
546
+ id : str
547
+ A UUID string identifying this test suite.
548
+
549
+ test_case_id : str
550
+ An id identifying the test case that you'd like to delete
551
551
 
552
- - test_case_id: str. An id identifying the test case that you'd like to delete
552
+ request_options : typing.Optional[RequestOptions]
553
+ Request-specific configuration.
554
+
555
+ Returns
556
+ -------
557
+ None
558
+
559
+ Examples
560
+ --------
561
+ import asyncio
553
562
 
554
- - request_options: typing.Optional[RequestOptions]. Request-specific configuration.
555
- ---
556
563
  from vellum.client import AsyncVellum
557
564
 
558
565
  client = AsyncVellum(
559
566
  api_key="YOUR_API_KEY",
560
567
  )
561
- await client.test_suites.delete_test_suite_test_case(
562
- id="id",
563
- test_case_id="test_case_id",
564
- )
568
+
569
+
570
+ async def main() -> None:
571
+ await client.test_suites.delete_test_suite_test_case(
572
+ id="id",
573
+ test_case_id="test_case_id",
574
+ )
575
+
576
+
577
+ asyncio.run(main())
565
578
  """
566
579
  _response = await self._client_wrapper.httpx_client.request(
580
+ f"v1/test-suites/{jsonable_encoder(id)}/test-cases/{jsonable_encoder(test_case_id)}",
581
+ base_url=self._client_wrapper.get_environment().default,
567
582
  method="DELETE",
568
- url=urllib.parse.urljoin(
569
- f"{self._client_wrapper.get_environment().default}/",
570
- f"v1/test-suites/{jsonable_encoder(id)}/test-cases/{jsonable_encoder(test_case_id)}",
571
- ),
572
- params=jsonable_encoder(
573
- request_options.get("additional_query_parameters") if request_options is not None else None
574
- ),
575
- headers=jsonable_encoder(
576
- remove_none_from_dict(
577
- {
578
- **self._client_wrapper.get_headers(),
579
- **(request_options.get("additional_headers", {}) if request_options is not None else {}),
580
- }
581
- )
582
- ),
583
- timeout=request_options.get("timeout_in_seconds")
584
- if request_options is not None and request_options.get("timeout_in_seconds") is not None
585
- else self._client_wrapper.get_timeout(),
586
- retries=0,
587
- max_retries=request_options.get("max_retries") if request_options is not None else 0, # type: ignore
583
+ request_options=request_options,
588
584
  )
589
- if 200 <= _response.status_code < 300:
590
- return
591
585
  try:
586
+ if 200 <= _response.status_code < 300:
587
+ return
592
588
  _response_json = _response.json()
593
589
  except JSONDecodeError:
594
590
  raise ApiError(status_code=_response.status_code, body=_response.text)