vellum_ai 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. checksums.yaml +7 -0
  2. data/lib/core/file_utilities.rb +26 -0
  3. data/lib/environment.rb +11 -0
  4. data/lib/gemconfig.rb +14 -0
  5. data/lib/requests.rb +88 -0
  6. data/lib/types_export.rb +255 -0
  7. data/lib/vellum_ai/deployments/client.rb +157 -0
  8. data/lib/vellum_ai/deployments/types/deployments_list_request_status.rb +8 -0
  9. data/lib/vellum_ai/document_indexes/client.rb +135 -0
  10. data/lib/vellum_ai/documents/client.rb +245 -0
  11. data/lib/vellum_ai/model_versions/client.rb +61 -0
  12. data/lib/vellum_ai/registered_prompts/client.rb +154 -0
  13. data/lib/vellum_ai/sandboxes/client.rb +132 -0
  14. data/lib/vellum_ai/test_suites/client.rb +130 -0
  15. data/lib/vellum_ai/types/api_node_result.rb +52 -0
  16. data/lib/vellum_ai/types/api_node_result_data.rb +80 -0
  17. data/lib/vellum_ai/types/array_chat_message_content.rb +50 -0
  18. data/lib/vellum_ai/types/array_chat_message_content_item.rb +103 -0
  19. data/lib/vellum_ai/types/array_chat_message_content_item_request.rb +103 -0
  20. data/lib/vellum_ai/types/array_chat_message_content_request.rb +50 -0
  21. data/lib/vellum_ai/types/block_type_enum.rb +11 -0
  22. data/lib/vellum_ai/types/chat_history_enum.rb +5 -0
  23. data/lib/vellum_ai/types/chat_history_input_request.rb +55 -0
  24. data/lib/vellum_ai/types/chat_message.rb +62 -0
  25. data/lib/vellum_ai/types/chat_message_content.rb +116 -0
  26. data/lib/vellum_ai/types/chat_message_content_request.rb +116 -0
  27. data/lib/vellum_ai/types/chat_message_request.rb +62 -0
  28. data/lib/vellum_ai/types/chat_message_role.rb +6 -0
  29. data/lib/vellum_ai/types/code_execution_node_chat_history_result.rb +54 -0
  30. data/lib/vellum_ai/types/code_execution_node_error_result.rb +56 -0
  31. data/lib/vellum_ai/types/code_execution_node_json_result.rb +50 -0
  32. data/lib/vellum_ai/types/code_execution_node_number_result.rb +50 -0
  33. data/lib/vellum_ai/types/code_execution_node_result.rb +52 -0
  34. data/lib/vellum_ai/types/code_execution_node_result_data.rb +51 -0
  35. data/lib/vellum_ai/types/code_execution_node_result_output.rb +142 -0
  36. data/lib/vellum_ai/types/code_execution_node_search_results_result.rb +54 -0
  37. data/lib/vellum_ai/types/code_execution_node_string_result.rb +50 -0
  38. data/lib/vellum_ai/types/conditional_node_result.rb +52 -0
  39. data/lib/vellum_ai/types/conditional_node_result_data.rb +45 -0
  40. data/lib/vellum_ai/types/deployment_provider_payload_response.rb +45 -0
  41. data/lib/vellum_ai/types/deployment_read.rb +115 -0
  42. data/lib/vellum_ai/types/document_document_to_document_index.rb +70 -0
  43. data/lib/vellum_ai/types/document_index_read.rb +98 -0
  44. data/lib/vellum_ai/types/document_read.rb +121 -0
  45. data/lib/vellum_ai/types/document_status.rb +5 -0
  46. data/lib/vellum_ai/types/enriched_normalized_completion.rb +118 -0
  47. data/lib/vellum_ai/types/entity_status.rb +6 -0
  48. data/lib/vellum_ai/types/environment_enum.rb +6 -0
  49. data/lib/vellum_ai/types/error_enum.rb +5 -0
  50. data/lib/vellum_ai/types/error_variable_value.rb +51 -0
  51. data/lib/vellum_ai/types/execute_prompt_api_error_response.rb +45 -0
  52. data/lib/vellum_ai/types/execute_prompt_event.rb +116 -0
  53. data/lib/vellum_ai/types/execute_prompt_response.rb +90 -0
  54. data/lib/vellum_ai/types/execute_workflow_error_response.rb +45 -0
  55. data/lib/vellum_ai/types/execute_workflow_response.rb +67 -0
  56. data/lib/vellum_ai/types/execute_workflow_stream_error_response.rb +45 -0
  57. data/lib/vellum_ai/types/execute_workflow_workflow_result_event.rb +90 -0
  58. data/lib/vellum_ai/types/finish_reason_enum.rb +6 -0
  59. data/lib/vellum_ai/types/fulfilled_enum.rb +5 -0
  60. data/lib/vellum_ai/types/fulfilled_execute_prompt_event.rb +66 -0
  61. data/lib/vellum_ai/types/fulfilled_execute_prompt_response.rb +71 -0
  62. data/lib/vellum_ai/types/fulfilled_execute_workflow_workflow_result_event.rb +61 -0
  63. data/lib/vellum_ai/types/fulfilled_function_call.rb +56 -0
  64. data/lib/vellum_ai/types/fulfilled_prompt_execution_meta.rb +52 -0
  65. data/lib/vellum_ai/types/fulfilled_workflow_node_result_event.rb +90 -0
  66. data/lib/vellum_ai/types/function_call.rb +90 -0
  67. data/lib/vellum_ai/types/function_call_chat_message_content.rb +52 -0
  68. data/lib/vellum_ai/types/function_call_chat_message_content_request.rb +52 -0
  69. data/lib/vellum_ai/types/function_call_chat_message_content_value.rb +56 -0
  70. data/lib/vellum_ai/types/function_call_chat_message_content_value_request.rb +56 -0
  71. data/lib/vellum_ai/types/function_call_enum.rb +5 -0
  72. data/lib/vellum_ai/types/function_call_variable_value.rb +51 -0
  73. data/lib/vellum_ai/types/generate_error_response.rb +45 -0
  74. data/lib/vellum_ai/types/generate_options_request.rb +50 -0
  75. data/lib/vellum_ai/types/generate_request.rb +60 -0
  76. data/lib/vellum_ai/types/generate_response.rb +49 -0
  77. data/lib/vellum_ai/types/generate_result.rb +62 -0
  78. data/lib/vellum_ai/types/generate_result_data.rb +49 -0
  79. data/lib/vellum_ai/types/generate_result_error.rb +45 -0
  80. data/lib/vellum_ai/types/generate_stream_response.rb +51 -0
  81. data/lib/vellum_ai/types/generate_stream_result.rb +67 -0
  82. data/lib/vellum_ai/types/generate_stream_result_data.rb +56 -0
  83. data/lib/vellum_ai/types/image_chat_message_content.rb +52 -0
  84. data/lib/vellum_ai/types/image_chat_message_content_request.rb +52 -0
  85. data/lib/vellum_ai/types/image_enum.rb +5 -0
  86. data/lib/vellum_ai/types/indexing_state_enum.rb +12 -0
  87. data/lib/vellum_ai/types/initiated_enum.rb +5 -0
  88. data/lib/vellum_ai/types/initiated_execute_prompt_event.rb +57 -0
  89. data/lib/vellum_ai/types/initiated_prompt_execution_meta.rb +68 -0
  90. data/lib/vellum_ai/types/initiated_workflow_node_result_event.rb +90 -0
  91. data/lib/vellum_ai/types/json_enum.rb +5 -0
  92. data/lib/vellum_ai/types/json_input_request.rb +51 -0
  93. data/lib/vellum_ai/types/json_variable_value.rb +45 -0
  94. data/lib/vellum_ai/types/logical_operator.rb +25 -0
  95. data/lib/vellum_ai/types/logprobs_enum.rb +6 -0
  96. data/lib/vellum_ai/types/metadata_filter_config_request.rb +85 -0
  97. data/lib/vellum_ai/types/metadata_filter_rule_combinator.rb +6 -0
  98. data/lib/vellum_ai/types/metadata_filter_rule_request.rb +84 -0
  99. data/lib/vellum_ai/types/model_version_build_config.rb +66 -0
  100. data/lib/vellum_ai/types/model_version_exec_config.rb +90 -0
  101. data/lib/vellum_ai/types/model_version_exec_config_parameters.rb +98 -0
  102. data/lib/vellum_ai/types/model_version_read.rb +133 -0
  103. data/lib/vellum_ai/types/model_version_read_status_enum.rb +11 -0
  104. data/lib/vellum_ai/types/model_version_sandbox_snapshot.rb +61 -0
  105. data/lib/vellum_ai/types/named_test_case_chat_history_variable_value_request.rb +54 -0
  106. data/lib/vellum_ai/types/named_test_case_error_variable_value_request.rb +56 -0
  107. data/lib/vellum_ai/types/named_test_case_json_variable_value_request.rb +50 -0
  108. data/lib/vellum_ai/types/named_test_case_number_variable_value_request.rb +50 -0
  109. data/lib/vellum_ai/types/named_test_case_search_results_variable_value_request.rb +54 -0
  110. data/lib/vellum_ai/types/named_test_case_string_variable_value_request.rb +50 -0
  111. data/lib/vellum_ai/types/named_test_case_variable_value_request.rb +142 -0
  112. data/lib/vellum_ai/types/node_input_compiled_chat_history_value.rb +59 -0
  113. data/lib/vellum_ai/types/node_input_compiled_error_value.rb +61 -0
  114. data/lib/vellum_ai/types/node_input_compiled_json_value.rb +55 -0
  115. data/lib/vellum_ai/types/node_input_compiled_number_value.rb +55 -0
  116. data/lib/vellum_ai/types/node_input_compiled_search_results_value.rb +59 -0
  117. data/lib/vellum_ai/types/node_input_compiled_string_value.rb +55 -0
  118. data/lib/vellum_ai/types/node_input_variable_compiled_value.rb +142 -0
  119. data/lib/vellum_ai/types/node_output_compiled_chat_history_value.rb +54 -0
  120. data/lib/vellum_ai/types/node_output_compiled_error_value.rb +56 -0
  121. data/lib/vellum_ai/types/node_output_compiled_json_value.rb +50 -0
  122. data/lib/vellum_ai/types/node_output_compiled_number_value.rb +50 -0
  123. data/lib/vellum_ai/types/node_output_compiled_search_results_value.rb +54 -0
  124. data/lib/vellum_ai/types/node_output_compiled_string_value.rb +50 -0
  125. data/lib/vellum_ai/types/node_output_compiled_value.rb +142 -0
  126. data/lib/vellum_ai/types/normalized_log_probs.rb +54 -0
  127. data/lib/vellum_ai/types/normalized_token_log_probs.rb +61 -0
  128. data/lib/vellum_ai/types/number_enum.rb +5 -0
  129. data/lib/vellum_ai/types/paginated_slim_deployment_read_list.rb +64 -0
  130. data/lib/vellum_ai/types/paginated_slim_document_list.rb +64 -0
  131. data/lib/vellum_ai/types/paginated_slim_workflow_deployment_list.rb +64 -0
  132. data/lib/vellum_ai/types/processing_failure_reason_enum.rb +9 -0
  133. data/lib/vellum_ai/types/processing_state_enum.rb +11 -0
  134. data/lib/vellum_ai/types/prompt_deployment_expand_meta_request_request.rb +74 -0
  135. data/lib/vellum_ai/types/prompt_deployment_input_request.rb +103 -0
  136. data/lib/vellum_ai/types/prompt_execution_meta.rb +76 -0
  137. data/lib/vellum_ai/types/prompt_node_result.rb +52 -0
  138. data/lib/vellum_ai/types/prompt_node_result_data.rb +55 -0
  139. data/lib/vellum_ai/types/prompt_output.rb +116 -0
  140. data/lib/vellum_ai/types/prompt_template_block.rb +62 -0
  141. data/lib/vellum_ai/types/prompt_template_block_data.rb +54 -0
  142. data/lib/vellum_ai/types/prompt_template_block_data_request.rb +54 -0
  143. data/lib/vellum_ai/types/prompt_template_block_properties.rb +104 -0
  144. data/lib/vellum_ai/types/prompt_template_block_properties_request.rb +104 -0
  145. data/lib/vellum_ai/types/prompt_template_block_request.rb +62 -0
  146. data/lib/vellum_ai/types/provider_enum.rb +20 -0
  147. data/lib/vellum_ai/types/raw_prompt_execution_overrides_request.rb +55 -0
  148. data/lib/vellum_ai/types/register_prompt_error_response.rb +45 -0
  149. data/lib/vellum_ai/types/register_prompt_model_parameters_request.rb +98 -0
  150. data/lib/vellum_ai/types/register_prompt_prompt.rb +50 -0
  151. data/lib/vellum_ai/types/register_prompt_prompt_info_request.rb +60 -0
  152. data/lib/vellum_ai/types/register_prompt_response.rb +110 -0
  153. data/lib/vellum_ai/types/registered_prompt_deployment.rb +55 -0
  154. data/lib/vellum_ai/types/registered_prompt_input_variable_request.rb +56 -0
  155. data/lib/vellum_ai/types/registered_prompt_model_version.rb +50 -0
  156. data/lib/vellum_ai/types/registered_prompt_sandbox.rb +50 -0
  157. data/lib/vellum_ai/types/registered_prompt_sandbox_snapshot.rb +45 -0
  158. data/lib/vellum_ai/types/rejected_enum.rb +5 -0
  159. data/lib/vellum_ai/types/rejected_execute_prompt_event.rb +68 -0
  160. data/lib/vellum_ai/types/rejected_execute_prompt_response.rb +73 -0
  161. data/lib/vellum_ai/types/rejected_execute_workflow_workflow_result_event.rb +63 -0
  162. data/lib/vellum_ai/types/rejected_function_call.rb +62 -0
  163. data/lib/vellum_ai/types/rejected_prompt_execution_meta.rb +52 -0
  164. data/lib/vellum_ai/types/rejected_workflow_node_result_event.rb +92 -0
  165. data/lib/vellum_ai/types/sandbox_scenario.rb +59 -0
  166. data/lib/vellum_ai/types/scenario_input.rb +70 -0
  167. data/lib/vellum_ai/types/scenario_input_request.rb +70 -0
  168. data/lib/vellum_ai/types/scenario_input_type_enum.rb +6 -0
  169. data/lib/vellum_ai/types/search_error_response.rb +45 -0
  170. data/lib/vellum_ai/types/search_filters_request.rb +56 -0
  171. data/lib/vellum_ai/types/search_node_result.rb +52 -0
  172. data/lib/vellum_ai/types/search_node_result_data.rb +70 -0
  173. data/lib/vellum_ai/types/search_request_options_request.rb +79 -0
  174. data/lib/vellum_ai/types/search_response.rb +49 -0
  175. data/lib/vellum_ai/types/search_result.rb +66 -0
  176. data/lib/vellum_ai/types/search_result_document.rb +60 -0
  177. data/lib/vellum_ai/types/search_result_document_request.rb +55 -0
  178. data/lib/vellum_ai/types/search_result_merging_request.rb +45 -0
  179. data/lib/vellum_ai/types/search_result_request.rb +66 -0
  180. data/lib/vellum_ai/types/search_results_enum.rb +5 -0
  181. data/lib/vellum_ai/types/search_weights_request.rb +50 -0
  182. data/lib/vellum_ai/types/slim_deployment_read.rb +109 -0
  183. data/lib/vellum_ai/types/slim_document.rb +126 -0
  184. data/lib/vellum_ai/types/slim_workflow_deployment.rb +118 -0
  185. data/lib/vellum_ai/types/streaming_enum.rb +5 -0
  186. data/lib/vellum_ai/types/streaming_execute_prompt_event.rb +85 -0
  187. data/lib/vellum_ai/types/streaming_prompt_execution_meta.rb +46 -0
  188. data/lib/vellum_ai/types/streaming_workflow_node_result_event.rb +99 -0
  189. data/lib/vellum_ai/types/string_chat_message_content.rb +46 -0
  190. data/lib/vellum_ai/types/string_chat_message_content_request.rb +46 -0
  191. data/lib/vellum_ai/types/string_enum.rb +5 -0
  192. data/lib/vellum_ai/types/string_input_request.rb +51 -0
  193. data/lib/vellum_ai/types/string_variable_value.rb +45 -0
  194. data/lib/vellum_ai/types/submit_completion_actual_request.rb +67 -0
  195. data/lib/vellum_ai/types/submit_completion_actuals_error_response.rb +45 -0
  196. data/lib/vellum_ai/types/submit_workflow_execution_actual_request.rb +103 -0
  197. data/lib/vellum_ai/types/templating_node_chat_history_result.rb +54 -0
  198. data/lib/vellum_ai/types/templating_node_error_result.rb +56 -0
  199. data/lib/vellum_ai/types/templating_node_json_result.rb +50 -0
  200. data/lib/vellum_ai/types/templating_node_number_result.rb +50 -0
  201. data/lib/vellum_ai/types/templating_node_result.rb +52 -0
  202. data/lib/vellum_ai/types/templating_node_result_data.rb +51 -0
  203. data/lib/vellum_ai/types/templating_node_result_output.rb +142 -0
  204. data/lib/vellum_ai/types/templating_node_search_results_result.rb +54 -0
  205. data/lib/vellum_ai/types/templating_node_string_result.rb +50 -0
  206. data/lib/vellum_ai/types/terminal_node_chat_history_result.rb +59 -0
  207. data/lib/vellum_ai/types/terminal_node_error_result.rb +61 -0
  208. data/lib/vellum_ai/types/terminal_node_json_result.rb +55 -0
  209. data/lib/vellum_ai/types/terminal_node_number_result.rb +55 -0
  210. data/lib/vellum_ai/types/terminal_node_result.rb +52 -0
  211. data/lib/vellum_ai/types/terminal_node_result_data.rb +51 -0
  212. data/lib/vellum_ai/types/terminal_node_result_output.rb +142 -0
  213. data/lib/vellum_ai/types/terminal_node_search_results_result.rb +59 -0
  214. data/lib/vellum_ai/types/terminal_node_string_result.rb +55 -0
  215. data/lib/vellum_ai/types/test_case_chat_history_variable_value.rb +54 -0
  216. data/lib/vellum_ai/types/test_case_error_variable_value.rb +56 -0
  217. data/lib/vellum_ai/types/test_case_json_variable_value.rb +50 -0
  218. data/lib/vellum_ai/types/test_case_number_variable_value.rb +50 -0
  219. data/lib/vellum_ai/types/test_case_search_results_variable_value.rb +54 -0
  220. data/lib/vellum_ai/types/test_case_string_variable_value.rb +50 -0
  221. data/lib/vellum_ai/types/test_case_variable_value.rb +142 -0
  222. data/lib/vellum_ai/types/test_suite_test_case.rb +68 -0
  223. data/lib/vellum_ai/types/upload_document_error_response.rb +45 -0
  224. data/lib/vellum_ai/types/upload_document_response.rb +45 -0
  225. data/lib/vellum_ai/types/vellum_error.rb +51 -0
  226. data/lib/vellum_ai/types/vellum_error_code_enum.rb +10 -0
  227. data/lib/vellum_ai/types/vellum_error_request.rb +51 -0
  228. data/lib/vellum_ai/types/vellum_image.rb +50 -0
  229. data/lib/vellum_ai/types/vellum_image_request.rb +50 -0
  230. data/lib/vellum_ai/types/vellum_variable.rb +56 -0
  231. data/lib/vellum_ai/types/vellum_variable_type.rb +16 -0
  232. data/lib/vellum_ai/types/workflow_event_error.rb +51 -0
  233. data/lib/vellum_ai/types/workflow_execution_actual_chat_history_request.rb +77 -0
  234. data/lib/vellum_ai/types/workflow_execution_actual_json_request.rb +73 -0
  235. data/lib/vellum_ai/types/workflow_execution_actual_string_request.rb +73 -0
  236. data/lib/vellum_ai/types/workflow_execution_event_error_code.rb +13 -0
  237. data/lib/vellum_ai/types/workflow_execution_event_type.rb +6 -0
  238. data/lib/vellum_ai/types/workflow_execution_node_result_event.rb +68 -0
  239. data/lib/vellum_ai/types/workflow_execution_workflow_result_event.rb +68 -0
  240. data/lib/vellum_ai/types/workflow_node_result_data.rb +155 -0
  241. data/lib/vellum_ai/types/workflow_node_result_event.rb +116 -0
  242. data/lib/vellum_ai/types/workflow_node_result_event_state.rb +11 -0
  243. data/lib/vellum_ai/types/workflow_output.rb +168 -0
  244. data/lib/vellum_ai/types/workflow_output_chat_history.rb +60 -0
  245. data/lib/vellum_ai/types/workflow_output_error.rb +62 -0
  246. data/lib/vellum_ai/types/workflow_output_function_call.rb +62 -0
  247. data/lib/vellum_ai/types/workflow_output_image.rb +62 -0
  248. data/lib/vellum_ai/types/workflow_output_json.rb +56 -0
  249. data/lib/vellum_ai/types/workflow_output_number.rb +56 -0
  250. data/lib/vellum_ai/types/workflow_output_search_results.rb +60 -0
  251. data/lib/vellum_ai/types/workflow_output_string.rb +56 -0
  252. data/lib/vellum_ai/types/workflow_request_chat_history_input_request.rb +54 -0
  253. data/lib/vellum_ai/types/workflow_request_input_request.rb +116 -0
  254. data/lib/vellum_ai/types/workflow_request_json_input_request.rb +50 -0
  255. data/lib/vellum_ai/types/workflow_request_number_input_request.rb +50 -0
  256. data/lib/vellum_ai/types/workflow_request_string_input_request.rb +50 -0
  257. data/lib/vellum_ai/types/workflow_result_event.rb +95 -0
  258. data/lib/vellum_ai/types/workflow_result_event_output_data.rb +142 -0
  259. data/lib/vellum_ai/types/workflow_result_event_output_data_chat_history.rb +83 -0
  260. data/lib/vellum_ai/types/workflow_result_event_output_data_error.rb +85 -0
  261. data/lib/vellum_ai/types/workflow_result_event_output_data_json.rb +79 -0
  262. data/lib/vellum_ai/types/workflow_result_event_output_data_number.rb +79 -0
  263. data/lib/vellum_ai/types/workflow_result_event_output_data_search_results.rb +83 -0
  264. data/lib/vellum_ai/types/workflow_result_event_output_data_string.rb +79 -0
  265. data/lib/vellum_ai/types/workflow_stream_event.rb +90 -0
  266. data/lib/vellum_ai/workflow_deployments/client.rb +82 -0
  267. data/lib/vellum_ai/workflow_deployments/types/workflow_deployments_list_request_status.rb +8 -0
  268. data/lib/vellum_ai.rb +476 -0
  269. metadata +381 -0
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "search_result"
4
+ require "json"
5
+
6
+ module Vellum
7
+ class SearchResponse
8
+ attr_reader :results, :additional_properties
9
+
10
+ # @param results [Array<SearchResult>] The results of the search. Each result represents a chunk that matches the search query.
11
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
12
+ # @return [SearchResponse]
13
+ def initialize(results:, additional_properties: nil)
14
+ # @type [Array<SearchResult>] The results of the search. Each result represents a chunk that matches the search query.
15
+ @results = results
16
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
17
+ @additional_properties = additional_properties
18
+ end
19
+
20
+ # Deserialize a JSON object to an instance of SearchResponse
21
+ #
22
+ # @param json_object [JSON]
23
+ # @return [SearchResponse]
24
+ def self.from_json(json_object:)
25
+ struct = JSON.parse(json_object, object_class: OpenStruct)
26
+ parsed_json = JSON.parse(json_object)
27
+ results = parsed_json["results"].map do |v|
28
+ v = v.to_json
29
+ SearchResult.from_json(json_object: v)
30
+ end
31
+ new(results: results, additional_properties: struct)
32
+ end
33
+
34
+ # Serialize an instance of SearchResponse to a JSON object
35
+ #
36
+ # @return [JSON]
37
+ def to_json(*_args)
38
+ { "results": @results }.to_json
39
+ end
40
+
41
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
42
+ #
43
+ # @param obj [Object]
44
+ # @return [Void]
45
+ def self.validate_raw(obj:)
46
+ obj.results.is_a?(Array) != false || raise("Passed value for field obj.results is not the expected type, validation failed.")
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "search_result_document"
4
+ require "json"
5
+
6
+ module Vellum
7
+ class SearchResult
8
+ attr_reader :text, :score, :keywords, :document, :additional_properties
9
+
10
+ # @param text [String] The text of the chunk that matched the search query.
11
+ # @param score [Float] A score representing how well the chunk matches the search query.
12
+ # @param keywords [Array<String>]
13
+ # @param document [SearchResultDocument] The document that contains the chunk that matched the search query.
14
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
15
+ # @return [SearchResult]
16
+ def initialize(text:, score:, keywords:, document:, additional_properties: nil)
17
+ # @type [String] The text of the chunk that matched the search query.
18
+ @text = text
19
+ # @type [Float] A score representing how well the chunk matches the search query.
20
+ @score = score
21
+ # @type [Array<String>]
22
+ @keywords = keywords
23
+ # @type [SearchResultDocument] The document that contains the chunk that matched the search query.
24
+ @document = document
25
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
26
+ @additional_properties = additional_properties
27
+ end
28
+
29
+ # Deserialize a JSON object to an instance of SearchResult
30
+ #
31
+ # @param json_object [JSON]
32
+ # @return [SearchResult]
33
+ def self.from_json(json_object:)
34
+ struct = JSON.parse(json_object, object_class: OpenStruct)
35
+ parsed_json = JSON.parse(json_object)
36
+ text = struct.text
37
+ score = struct.score
38
+ keywords = struct.keywords
39
+ if parsed_json["document"].nil?
40
+ document = nil
41
+ else
42
+ document = parsed_json["document"].to_json
43
+ document = SearchResultDocument.from_json(json_object: document)
44
+ end
45
+ new(text: text, score: score, keywords: keywords, document: document, additional_properties: struct)
46
+ end
47
+
48
+ # Serialize an instance of SearchResult to a JSON object
49
+ #
50
+ # @return [JSON]
51
+ def to_json(*_args)
52
+ { "text": @text, "score": @score, "keywords": @keywords, "document": @document }.to_json
53
+ end
54
+
55
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
56
+ #
57
+ # @param obj [Object]
58
+ # @return [Void]
59
+ def self.validate_raw(obj:)
60
+ obj.text.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
61
+ obj.score.is_a?(Float) != false || raise("Passed value for field obj.score is not the expected type, validation failed.")
62
+ obj.keywords.is_a?(Array) != false || raise("Passed value for field obj.keywords is not the expected type, validation failed.")
63
+ SearchResultDocument.validate_raw(obj: obj.document)
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,60 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vellum
6
+ class SearchResultDocument
7
+ attr_reader :id, :label, :external_id, :metadata, :additional_properties
8
+
9
+ # @param id [String] The ID of the document.
10
+ # @param label [String] The human-readable name for the document.
11
+ # @param external_id [String] The unique ID of the document as represented in an external system and specified when it was originally uploaded.
12
+ # @param metadata [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
13
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
14
+ # @return [SearchResultDocument]
15
+ def initialize(id:, label:, external_id: nil, metadata: nil, additional_properties: nil)
16
+ # @type [String] The ID of the document.
17
+ @id = id
18
+ # @type [String] The human-readable name for the document.
19
+ @label = label
20
+ # @type [String] The unique ID of the document as represented in an external system and specified when it was originally uploaded.
21
+ @external_id = external_id
22
+ # @type [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
23
+ @metadata = metadata
24
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
25
+ @additional_properties = additional_properties
26
+ end
27
+
28
+ # Deserialize a JSON object to an instance of SearchResultDocument
29
+ #
30
+ # @param json_object [JSON]
31
+ # @return [SearchResultDocument]
32
+ def self.from_json(json_object:)
33
+ struct = JSON.parse(json_object, object_class: OpenStruct)
34
+ JSON.parse(json_object)
35
+ id = struct.id
36
+ label = struct.label
37
+ external_id = struct.external_id
38
+ metadata = struct.metadata
39
+ new(id: id, label: label, external_id: external_id, metadata: metadata, additional_properties: struct)
40
+ end
41
+
42
+ # Serialize an instance of SearchResultDocument to a JSON object
43
+ #
44
+ # @return [JSON]
45
+ def to_json(*_args)
46
+ { "id": @id, "label": @label, "external_id": @external_id, "metadata": @metadata }.to_json
47
+ end
48
+
49
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
50
+ #
51
+ # @param obj [Object]
52
+ # @return [Void]
53
+ def self.validate_raw(obj:)
54
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
55
+ obj.label.is_a?(String) != false || raise("Passed value for field obj.label is not the expected type, validation failed.")
56
+ obj.external_id&.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
57
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vellum
6
+ class SearchResultDocumentRequest
7
+ attr_reader :label, :external_id, :metadata, :additional_properties
8
+
9
+ # @param label [String] The human-readable name for the document.
10
+ # @param external_id [String] The unique ID of the document as represented in an external system and specified when it was originally uploaded.
11
+ # @param metadata [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
12
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
13
+ # @return [SearchResultDocumentRequest]
14
+ def initialize(label:, external_id: nil, metadata: nil, additional_properties: nil)
15
+ # @type [String] The human-readable name for the document.
16
+ @label = label
17
+ # @type [String] The unique ID of the document as represented in an external system and specified when it was originally uploaded.
18
+ @external_id = external_id
19
+ # @type [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
20
+ @metadata = metadata
21
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
22
+ @additional_properties = additional_properties
23
+ end
24
+
25
+ # Deserialize a JSON object to an instance of SearchResultDocumentRequest
26
+ #
27
+ # @param json_object [JSON]
28
+ # @return [SearchResultDocumentRequest]
29
+ def self.from_json(json_object:)
30
+ struct = JSON.parse(json_object, object_class: OpenStruct)
31
+ JSON.parse(json_object)
32
+ label = struct.label
33
+ external_id = struct.external_id
34
+ metadata = struct.metadata
35
+ new(label: label, external_id: external_id, metadata: metadata, additional_properties: struct)
36
+ end
37
+
38
+ # Serialize an instance of SearchResultDocumentRequest to a JSON object
39
+ #
40
+ # @return [JSON]
41
+ def to_json(*_args)
42
+ { "label": @label, "external_id": @external_id, "metadata": @metadata }.to_json
43
+ end
44
+
45
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
46
+ #
47
+ # @param obj [Object]
48
+ # @return [Void]
49
+ def self.validate_raw(obj:)
50
+ obj.label.is_a?(String) != false || raise("Passed value for field obj.label is not the expected type, validation failed.")
51
+ obj.external_id&.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
52
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,45 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vellum
6
+ class SearchResultMergingRequest
7
+ attr_reader :enabled, :additional_properties
8
+
9
+ # @param enabled [Boolean] Whether to enable merging results
10
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
11
+ # @return [SearchResultMergingRequest]
12
+ def initialize(enabled: nil, additional_properties: nil)
13
+ # @type [Boolean] Whether to enable merging results
14
+ @enabled = enabled
15
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
16
+ @additional_properties = additional_properties
17
+ end
18
+
19
+ # Deserialize a JSON object to an instance of SearchResultMergingRequest
20
+ #
21
+ # @param json_object [JSON]
22
+ # @return [SearchResultMergingRequest]
23
+ def self.from_json(json_object:)
24
+ struct = JSON.parse(json_object, object_class: OpenStruct)
25
+ JSON.parse(json_object)
26
+ enabled = struct.enabled
27
+ new(enabled: enabled, additional_properties: struct)
28
+ end
29
+
30
+ # Serialize an instance of SearchResultMergingRequest to a JSON object
31
+ #
32
+ # @return [JSON]
33
+ def to_json(*_args)
34
+ { "enabled": @enabled }.to_json
35
+ end
36
+
37
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
38
+ #
39
+ # @param obj [Object]
40
+ # @return [Void]
41
+ def self.validate_raw(obj:)
42
+ obj.enabled&.is_a?(Boolean) != false || raise("Passed value for field obj.enabled is not the expected type, validation failed.")
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "search_result_document_request"
4
+ require "json"
5
+
6
+ module Vellum
7
+ class SearchResultRequest
8
+ attr_reader :text, :score, :keywords, :document, :additional_properties
9
+
10
+ # @param text [String] The text of the chunk that matched the search query.
11
+ # @param score [Float] A score representing how well the chunk matches the search query.
12
+ # @param keywords [Array<String>]
13
+ # @param document [SearchResultDocumentRequest] The document that contains the chunk that matched the search query.
14
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
15
+ # @return [SearchResultRequest]
16
+ def initialize(text:, score:, keywords:, document:, additional_properties: nil)
17
+ # @type [String] The text of the chunk that matched the search query.
18
+ @text = text
19
+ # @type [Float] A score representing how well the chunk matches the search query.
20
+ @score = score
21
+ # @type [Array<String>]
22
+ @keywords = keywords
23
+ # @type [SearchResultDocumentRequest] The document that contains the chunk that matched the search query.
24
+ @document = document
25
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
26
+ @additional_properties = additional_properties
27
+ end
28
+
29
+ # Deserialize a JSON object to an instance of SearchResultRequest
30
+ #
31
+ # @param json_object [JSON]
32
+ # @return [SearchResultRequest]
33
+ def self.from_json(json_object:)
34
+ struct = JSON.parse(json_object, object_class: OpenStruct)
35
+ parsed_json = JSON.parse(json_object)
36
+ text = struct.text
37
+ score = struct.score
38
+ keywords = struct.keywords
39
+ if parsed_json["document"].nil?
40
+ document = nil
41
+ else
42
+ document = parsed_json["document"].to_json
43
+ document = SearchResultDocumentRequest.from_json(json_object: document)
44
+ end
45
+ new(text: text, score: score, keywords: keywords, document: document, additional_properties: struct)
46
+ end
47
+
48
+ # Serialize an instance of SearchResultRequest to a JSON object
49
+ #
50
+ # @return [JSON]
51
+ def to_json(*_args)
52
+ { "text": @text, "score": @score, "keywords": @keywords, "document": @document }.to_json
53
+ end
54
+
55
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
56
+ #
57
+ # @param obj [Object]
58
+ # @return [Void]
59
+ def self.validate_raw(obj:)
60
+ obj.text.is_a?(String) != false || raise("Passed value for field obj.text is not the expected type, validation failed.")
61
+ obj.score.is_a?(Float) != false || raise("Passed value for field obj.score is not the expected type, validation failed.")
62
+ obj.keywords.is_a?(Array) != false || raise("Passed value for field obj.keywords is not the expected type, validation failed.")
63
+ SearchResultDocumentRequest.validate_raw(obj: obj.document)
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vellum
4
+ SEARCH_RESULTS_ENUM = String
5
+ end
@@ -0,0 +1,50 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+
5
+ module Vellum
6
+ class SearchWeightsRequest
7
+ attr_reader :semantic_similarity, :keywords, :additional_properties
8
+
9
+ # @param semantic_similarity [Float] The relative weight to give to semantic similarity
10
+ # @param keywords [Float] The relative weight to give to keywords
11
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
12
+ # @return [SearchWeightsRequest]
13
+ def initialize(semantic_similarity: nil, keywords: nil, additional_properties: nil)
14
+ # @type [Float] The relative weight to give to semantic similarity
15
+ @semantic_similarity = semantic_similarity
16
+ # @type [Float] The relative weight to give to keywords
17
+ @keywords = keywords
18
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
19
+ @additional_properties = additional_properties
20
+ end
21
+
22
+ # Deserialize a JSON object to an instance of SearchWeightsRequest
23
+ #
24
+ # @param json_object [JSON]
25
+ # @return [SearchWeightsRequest]
26
+ def self.from_json(json_object:)
27
+ struct = JSON.parse(json_object, object_class: OpenStruct)
28
+ JSON.parse(json_object)
29
+ semantic_similarity = struct.semantic_similarity
30
+ keywords = struct.keywords
31
+ new(semantic_similarity: semantic_similarity, keywords: keywords, additional_properties: struct)
32
+ end
33
+
34
+ # Serialize an instance of SearchWeightsRequest to a JSON object
35
+ #
36
+ # @return [JSON]
37
+ def to_json(*_args)
38
+ { "semantic_similarity": @semantic_similarity, "keywords": @keywords }.to_json
39
+ end
40
+
41
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
42
+ #
43
+ # @param obj [Object]
44
+ # @return [Void]
45
+ def self.validate_raw(obj:)
46
+ obj.semantic_similarity&.is_a?(Float) != false || raise("Passed value for field obj.semantic_similarity is not the expected type, validation failed.")
47
+ obj.keywords&.is_a?(Float) != false || raise("Passed value for field obj.keywords is not the expected type, validation failed.")
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require_relative "entity_status"
5
+ require_relative "environment_enum"
6
+ require_relative "vellum_variable"
7
+ require "json"
8
+
9
+ module Vellum
10
+ class SlimDeploymentRead
11
+ attr_reader :id, :created, :label, :name, :status, :environment, :last_deployed_on, :input_variables,
12
+ :additional_properties
13
+
14
+ # @param id [String]
15
+ # @param created [DateTime]
16
+ # @param label [String] A human-readable label for the deployment
17
+ # @param name [String] A name that uniquely identifies this deployment within its workspace
18
+ # @param status [ENTITY_STATUS] The current status of the deployment
19
+ # - `ACTIVE` - Active
20
+ # - `ARCHIVED` - Archived
21
+ # @param environment [ENVIRONMENT_ENUM] The environment this deployment is used in
22
+ # - `DEVELOPMENT` - Development
23
+ # - `STAGING` - Staging
24
+ # - `PRODUCTION` - Production
25
+ # @param last_deployed_on [DateTime]
26
+ # @param input_variables [Array<VellumVariable>]
27
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
28
+ # @return [SlimDeploymentRead]
29
+ def initialize(id:, created:, label:, name:, last_deployed_on:, input_variables:, status: nil, environment: nil,
30
+ additional_properties: nil)
31
+ # @type [String]
32
+ @id = id
33
+ # @type [DateTime]
34
+ @created = created
35
+ # @type [String] A human-readable label for the deployment
36
+ @label = label
37
+ # @type [String] A name that uniquely identifies this deployment within its workspace
38
+ @name = name
39
+ # @type [ENTITY_STATUS] The current status of the deployment
40
+ # - `ACTIVE` - Active
41
+ # - `ARCHIVED` - Archived
42
+ @status = status
43
+ # @type [ENVIRONMENT_ENUM] The environment this deployment is used in
44
+ # - `DEVELOPMENT` - Development
45
+ # - `STAGING` - Staging
46
+ # - `PRODUCTION` - Production
47
+ @environment = environment
48
+ # @type [DateTime]
49
+ @last_deployed_on = last_deployed_on
50
+ # @type [Array<VellumVariable>]
51
+ @input_variables = input_variables
52
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
53
+ @additional_properties = additional_properties
54
+ end
55
+
56
+ # Deserialize a JSON object to an instance of SlimDeploymentRead
57
+ #
58
+ # @param json_object [JSON]
59
+ # @return [SlimDeploymentRead]
60
+ def self.from_json(json_object:)
61
+ struct = JSON.parse(json_object, object_class: OpenStruct)
62
+ parsed_json = JSON.parse(json_object)
63
+ id = struct.id
64
+ created = DateTime.parse(parsed_json["created"])
65
+ label = struct.label
66
+ name = struct.name
67
+ status = ENTITY_STATUS.key(parsed_json["status"]) || parsed_json["status"]
68
+ environment = ENVIRONMENT_ENUM.key(parsed_json["environment"]) || parsed_json["environment"]
69
+ last_deployed_on = DateTime.parse(parsed_json["last_deployed_on"])
70
+ input_variables = parsed_json["input_variables"].map do |v|
71
+ v = v.to_json
72
+ VellumVariable.from_json(json_object: v)
73
+ end
74
+ new(id: id, created: created, label: label, name: name, status: status, environment: environment,
75
+ last_deployed_on: last_deployed_on, input_variables: input_variables, additional_properties: struct)
76
+ end
77
+
78
+ # Serialize an instance of SlimDeploymentRead to a JSON object
79
+ #
80
+ # @return [JSON]
81
+ def to_json(*_args)
82
+ {
83
+ "id": @id,
84
+ "created": @created,
85
+ "label": @label,
86
+ "name": @name,
87
+ "status": ENTITY_STATUS[@status] || @status,
88
+ "environment": ENVIRONMENT_ENUM[@environment] || @environment,
89
+ "last_deployed_on": @last_deployed_on,
90
+ "input_variables": @input_variables
91
+ }.to_json
92
+ end
93
+
94
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
95
+ #
96
+ # @param obj [Object]
97
+ # @return [Void]
98
+ def self.validate_raw(obj:)
99
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
100
+ obj.created.is_a?(DateTime) != false || raise("Passed value for field obj.created is not the expected type, validation failed.")
101
+ obj.label.is_a?(String) != false || raise("Passed value for field obj.label is not the expected type, validation failed.")
102
+ obj.name.is_a?(String) != false || raise("Passed value for field obj.name is not the expected type, validation failed.")
103
+ obj.status&.is_a?(ENTITY_STATUS) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
104
+ obj.environment&.is_a?(ENVIRONMENT_ENUM) != false || raise("Passed value for field obj.environment is not the expected type, validation failed.")
105
+ obj.last_deployed_on.is_a?(DateTime) != false || raise("Passed value for field obj.last_deployed_on is not the expected type, validation failed.")
106
+ obj.input_variables.is_a?(Array) != false || raise("Passed value for field obj.input_variables is not the expected type, validation failed.")
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,126 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "date"
4
+ require_relative "processing_state_enum"
5
+ require_relative "processing_failure_reason_enum"
6
+ require_relative "document_status"
7
+ require_relative "document_document_to_document_index"
8
+ require "json"
9
+
10
+ module Vellum
11
+ class SlimDocument
12
+ attr_reader :id, :external_id, :last_uploaded_at, :label, :processing_state, :processing_failure_reason, :status,
13
+ :keywords, :metadata, :document_to_document_indexes, :additional_properties
14
+
15
+ # @param id [String] Vellum-generated ID that uniquely identifies this document.
16
+ # @param external_id [String] The external ID that was originally provided when uploading the document.
17
+ # @param last_uploaded_at [DateTime] A timestamp representing when this document was most recently uploaded.
18
+ # @param label [String] Human-friendly name for this document.
19
+ # @param processing_state [PROCESSING_STATE_ENUM] An enum value representing where this document is along its processing lifecycle. Note that this is different than its indexing lifecycle.
20
+ # - `QUEUED` - Queued
21
+ # - `PROCESSING` - Processing
22
+ # - `PROCESSED` - Processed
23
+ # - `FAILED` - Failed
24
+ # @param processing_failure_reason [PROCESSING_FAILURE_REASON_ENUM] An enum value representing why the document could not be processed. Is null unless processing_state is FAILED.
25
+ # - `EXCEEDED_CHARACTER_LIMIT` - Exceeded Character Limit
26
+ # - `INVALID_FILE` - Invalid File
27
+ # @param status [DOCUMENT_STATUS] The document's current status.
28
+ # - `ACTIVE` - Active
29
+ # @param keywords [Array<String>] A list of keywords associated with this document. Originally provided when uploading the document.
30
+ # @param metadata [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
31
+ # @param document_to_document_indexes [Array<DocumentDocumentToDocumentIndex>]
32
+ # @param additional_properties [OpenStruct] Additional properties unmapped to the current class definition
33
+ # @return [SlimDocument]
34
+ def initialize(id:, last_uploaded_at:, label:, document_to_document_indexes:, external_id: nil, processing_state: nil,
35
+ processing_failure_reason: nil, status: nil, keywords: nil, metadata: nil, additional_properties: nil)
36
+ # @type [String] Vellum-generated ID that uniquely identifies this document.
37
+ @id = id
38
+ # @type [String] The external ID that was originally provided when uploading the document.
39
+ @external_id = external_id
40
+ # @type [DateTime] A timestamp representing when this document was most recently uploaded.
41
+ @last_uploaded_at = last_uploaded_at
42
+ # @type [String] Human-friendly name for this document.
43
+ @label = label
44
+ # @type [PROCESSING_STATE_ENUM] An enum value representing where this document is along its processing lifecycle. Note that this is different than its indexing lifecycle.
45
+ # - `QUEUED` - Queued
46
+ # - `PROCESSING` - Processing
47
+ # - `PROCESSED` - Processed
48
+ # - `FAILED` - Failed
49
+ @processing_state = processing_state
50
+ # @type [PROCESSING_FAILURE_REASON_ENUM] An enum value representing why the document could not be processed. Is null unless processing_state is FAILED.
51
+ # - `EXCEEDED_CHARACTER_LIMIT` - Exceeded Character Limit
52
+ # - `INVALID_FILE` - Invalid File
53
+ @processing_failure_reason = processing_failure_reason
54
+ # @type [DOCUMENT_STATUS] The document's current status.
55
+ # - `ACTIVE` - Active
56
+ @status = status
57
+ # @type [Array<String>] A list of keywords associated with this document. Originally provided when uploading the document.
58
+ @keywords = keywords
59
+ # @type [Hash{String => String}] A previously supplied JSON object containing metadata that can be filtered on when searching.
60
+ @metadata = metadata
61
+ # @type [Array<DocumentDocumentToDocumentIndex>]
62
+ @document_to_document_indexes = document_to_document_indexes
63
+ # @type [OpenStruct] Additional properties unmapped to the current class definition
64
+ @additional_properties = additional_properties
65
+ end
66
+
67
+ # Deserialize a JSON object to an instance of SlimDocument
68
+ #
69
+ # @param json_object [JSON]
70
+ # @return [SlimDocument]
71
+ def self.from_json(json_object:)
72
+ struct = JSON.parse(json_object, object_class: OpenStruct)
73
+ parsed_json = JSON.parse(json_object)
74
+ id = struct.id
75
+ external_id = struct.external_id
76
+ last_uploaded_at = DateTime.parse(parsed_json["last_uploaded_at"])
77
+ label = struct.label
78
+ processing_state = PROCESSING_STATE_ENUM.key(parsed_json["processing_state"]) || parsed_json["processing_state"]
79
+ processing_failure_reason = PROCESSING_FAILURE_REASON_ENUM.key(parsed_json["processing_failure_reason"]) || parsed_json["processing_failure_reason"]
80
+ status = struct.status
81
+ keywords = struct.keywords
82
+ metadata = struct.metadata
83
+ document_to_document_indexes = parsed_json["document_to_document_indexes"].map do |v|
84
+ v = v.to_json
85
+ DocumentDocumentToDocumentIndex.from_json(json_object: v)
86
+ end
87
+ new(id: id, external_id: external_id, last_uploaded_at: last_uploaded_at, label: label,
88
+ processing_state: processing_state, processing_failure_reason: processing_failure_reason, status: status, keywords: keywords, metadata: metadata, document_to_document_indexes: document_to_document_indexes, additional_properties: struct)
89
+ end
90
+
91
+ # Serialize an instance of SlimDocument to a JSON object
92
+ #
93
+ # @return [JSON]
94
+ def to_json(*_args)
95
+ {
96
+ "id": @id,
97
+ "external_id": @external_id,
98
+ "last_uploaded_at": @last_uploaded_at,
99
+ "label": @label,
100
+ "processing_state": PROCESSING_STATE_ENUM[@processing_state] || @processing_state,
101
+ "processing_failure_reason": PROCESSING_FAILURE_REASON_ENUM[@processing_failure_reason] || @processing_failure_reason,
102
+ "status": @status,
103
+ "keywords": @keywords,
104
+ "metadata": @metadata,
105
+ "document_to_document_indexes": @document_to_document_indexes
106
+ }.to_json
107
+ end
108
+
109
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given hash and check each fields type against the current object's property definitions.
110
+ #
111
+ # @param obj [Object]
112
+ # @return [Void]
113
+ def self.validate_raw(obj:)
114
+ obj.id.is_a?(String) != false || raise("Passed value for field obj.id is not the expected type, validation failed.")
115
+ obj.external_id&.is_a?(String) != false || raise("Passed value for field obj.external_id is not the expected type, validation failed.")
116
+ obj.last_uploaded_at.is_a?(DateTime) != false || raise("Passed value for field obj.last_uploaded_at is not the expected type, validation failed.")
117
+ obj.label.is_a?(String) != false || raise("Passed value for field obj.label is not the expected type, validation failed.")
118
+ obj.processing_state&.is_a?(PROCESSING_STATE_ENUM) != false || raise("Passed value for field obj.processing_state is not the expected type, validation failed.")
119
+ obj.processing_failure_reason&.is_a?(PROCESSING_FAILURE_REASON_ENUM) != false || raise("Passed value for field obj.processing_failure_reason is not the expected type, validation failed.")
120
+ obj.status&.is_a?(String) != false || raise("Passed value for field obj.status is not the expected type, validation failed.")
121
+ obj.keywords&.is_a?(Array) != false || raise("Passed value for field obj.keywords is not the expected type, validation failed.")
122
+ obj.metadata&.is_a?(Hash) != false || raise("Passed value for field obj.metadata is not the expected type, validation failed.")
123
+ obj.document_to_document_indexes.is_a?(Array) != false || raise("Passed value for field obj.document_to_document_indexes is not the expected type, validation failed.")
124
+ end
125
+ end
126
+ end