trieve_ruby_client 0.10.7 → 0.11.0

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 (424) hide show
  1. checksums.yaml +4 -4
  2. data/GENERATE_COMMAND.txt +2 -0
  3. data/README.md +119 -16
  4. data/docs/APIVersion.md +15 -0
  5. data/docs/AnalyticsApi.md +303 -0
  6. data/docs/AuthApi.md +4 -4
  7. data/docs/AutocompleteReqPayload.md +6 -2
  8. data/docs/BookmarkGroupResponse.md +49 -0
  9. data/docs/BookmarkGroupResult.md +1 -1
  10. data/docs/ChatMessageProxy.md +1 -1
  11. data/docs/ChunkApi.md +165 -63
  12. data/docs/ChunkFilter.md +2 -0
  13. data/docs/ChunkGroupAndFileId.md +36 -0
  14. data/docs/ChunkGroupApi.md +110 -90
  15. data/docs/ChunkMetadata.md +1 -1
  16. data/docs/ChunkMetadataStringTagSet.md +1 -1
  17. data/docs/ChunkMetadataWithScore.md +1 -1
  18. data/docs/ChunkReqPayload.md +2 -2
  19. data/docs/ChunkReturnTypes.md +49 -0
  20. data/docs/ClusterAnalytics.md +63 -0
  21. data/docs/ClusterAnalyticsFilter.md +18 -0
  22. data/docs/ClusterAnalyticsResponse.md +49 -0
  23. data/docs/ClusterQueries.md +22 -0
  24. data/docs/ClusterTopics.md +20 -0
  25. data/docs/ContentChunkMetadata.md +1 -1
  26. data/docs/CountChunkQueryResponseBody.md +18 -0
  27. data/docs/CountChunksReqPayload.md +26 -0
  28. data/docs/CountQueries.md +20 -0
  29. data/docs/CreateMessageReqPayload.md +11 -1
  30. data/docs/CreateSetupCheckoutSessionResPayload.md +18 -0
  31. data/docs/Dataset.md +0 -2
  32. data/docs/DatasetAnalytics.md +28 -0
  33. data/docs/DatasetApi.md +8 -80
  34. data/docs/DatasetDTO.md +0 -2
  35. data/docs/DeprecatedSearchOverGroupsResponseBody.md +20 -0
  36. data/docs/DistancePhrase.md +20 -0
  37. data/docs/EditMessageReqPayload.md +11 -1
  38. data/docs/Event.md +3 -5
  39. data/docs/EventTypeRequest.md +15 -0
  40. data/docs/EventsApi.md +1 -1
  41. data/docs/FileApi.md +4 -4
  42. data/docs/GenerateChunksRequest.md +11 -1
  43. data/docs/GeoInfoWithBias.md +20 -0
  44. data/docs/GetChunksForGroupsResponse.md +22 -0
  45. data/docs/GetEventsData.md +1 -1
  46. data/docs/Granularity.md +15 -0
  47. data/docs/GroupData.md +1 -1
  48. data/docs/GroupScoreChunk.md +14 -0
  49. data/docs/GroupsBookmarkQueryResult.md +22 -0
  50. data/docs/HeadQueries.md +20 -0
  51. data/docs/HeadQueries1.md +22 -0
  52. data/docs/HeadQueryResponse.md +18 -0
  53. data/docs/HealthApi.md +1 -1
  54. data/docs/InvitationApi.md +1 -1
  55. data/docs/LatencyGraph.md +22 -0
  56. data/docs/LatencyGraphResponse.md +18 -0
  57. data/docs/LowConfidenceQueries.md +24 -0
  58. data/docs/LowConfidenceRecommendations.md +24 -0
  59. data/docs/MessageApi.md +4 -4
  60. data/docs/MetricsApi.md +76 -0
  61. data/docs/NewChunkMetadataTypes.md +51 -0
  62. data/docs/NoResultQueries.md +22 -0
  63. data/docs/OrganizationApi.md +6 -6
  64. data/docs/QueryCountResponse.md +18 -0
  65. data/docs/QueryDetails.md +20 -0
  66. data/docs/RAGAnalytics.md +63 -0
  67. data/docs/RAGAnalyticsFilter.md +20 -0
  68. data/docs/RAGAnalyticsResponse.md +49 -0
  69. data/docs/RAGQueries.md +26 -0
  70. data/docs/RAGUsage.md +20 -0
  71. data/docs/RAGUsageResponse.md +18 -0
  72. data/docs/RPSGraph.md +22 -0
  73. data/docs/RPSGraphResponse.md +18 -0
  74. data/docs/RagQueryEvent.md +30 -0
  75. data/docs/RagQueryResponse.md +18 -0
  76. data/docs/RagTypes.md +15 -0
  77. data/docs/RecommendChunksRequest.md +2 -2
  78. data/docs/RecommendChunksResponseBody.md +18 -0
  79. data/docs/RecommendGroupChunksRequest.md +2 -2
  80. data/docs/RecommendGroupsResponse.md +49 -0
  81. data/docs/RecommendGroupsResponseBody.md +18 -0
  82. data/docs/RecommendResponseTypes.md +49 -0
  83. data/docs/RecommendType.md +15 -0
  84. data/docs/RecommendationAnalytics.md +63 -0
  85. data/docs/RecommendationAnalyticsFilter.md +20 -0
  86. data/docs/RecommendationAnalyticsResponse.md +47 -0
  87. data/docs/RecommendationEvent.md +38 -0
  88. data/docs/RecommendationQueries.md +26 -0
  89. data/docs/RecommendationStrategy.md +15 -0
  90. data/docs/RecommendationType.md +15 -0
  91. data/docs/RecommendationsEventResponse.md +18 -0
  92. data/docs/RegenerateMessageReqPayload.md +9 -1
  93. data/docs/RoleProxy.md +15 -0
  94. data/docs/ScoreChunk.md +22 -0
  95. data/docs/SearchAnalytics.md +77 -0
  96. data/docs/SearchAnalyticsFilter.md +22 -0
  97. data/docs/SearchAnalyticsResponse.md +59 -0
  98. data/docs/SearchChunksReqPayload.md +6 -4
  99. data/docs/SearchClusterResponse.md +18 -0
  100. data/docs/SearchClusterTopics.md +28 -0
  101. data/docs/SearchGroupResponseTypes.md +49 -0
  102. data/docs/SearchLatencyGraph.md +20 -0
  103. data/docs/SearchMethod.md +15 -0
  104. data/docs/SearchMetrics.md +20 -0
  105. data/docs/SearchOverGroupsData.md +2 -4
  106. data/docs/SearchOverGroupsResponseBody.md +4 -4
  107. data/docs/SearchOverGroupsResponseTypes.md +4 -4
  108. data/docs/SearchOverGroupsResults.md +6 -4
  109. data/docs/SearchQueries.md +26 -0
  110. data/docs/SearchQueryEvent.md +34 -0
  111. data/docs/SearchQueryResponse.md +18 -0
  112. data/docs/SearchRPSGraph.md +20 -0
  113. data/docs/SearchResponseBody.md +20 -0
  114. data/docs/SearchResponseTypes.md +49 -0
  115. data/docs/SearchResultType.md +49 -0
  116. data/docs/SearchType.md +15 -0
  117. data/docs/SearchTypeCount.md +22 -0
  118. data/docs/SearchWithinGroupData.md +6 -2
  119. data/docs/SearchWithinGroupResponseBody.md +20 -0
  120. data/docs/SearchWithinGroupResults.md +1 -1
  121. data/docs/SlimChunkMetadata.md +1 -1
  122. data/docs/SlimChunkMetadataWithArrayTagSet.md +44 -0
  123. data/docs/SlimChunkMetadataWithScore.md +1 -1
  124. data/docs/SortBy.md +15 -0
  125. data/docs/SortOrder.md +15 -0
  126. data/docs/StripeApi.md +134 -4
  127. data/docs/StripeInvoice.md +28 -0
  128. data/docs/TopicApi.md +4 -4
  129. data/docs/UpdateChunkGroupData.md +3 -1
  130. data/docs/UpdateChunkReqPayload.md +2 -0
  131. data/docs/UserApi.md +3 -3
  132. data/lib/trieve_ruby_client/api/analytics_api.rb +322 -0
  133. data/lib/trieve_ruby_client/api/auth_api.rb +9 -9
  134. data/lib/trieve_ruby_client/api/chunk_api.rb +148 -52
  135. data/lib/trieve_ruby_client/api/chunk_group_api.rb +122 -107
  136. data/lib/trieve_ruby_client/api/dataset_api.rb +17 -81
  137. data/lib/trieve_ruby_client/api/events_api.rb +3 -3
  138. data/lib/trieve_ruby_client/api/file_api.rb +9 -9
  139. data/lib/trieve_ruby_client/api/health_api.rb +3 -3
  140. data/lib/trieve_ruby_client/api/invitation_api.rb +3 -3
  141. data/lib/trieve_ruby_client/api/message_api.rb +9 -9
  142. data/lib/trieve_ruby_client/api/metrics_api.rb +79 -0
  143. data/lib/trieve_ruby_client/api/organization_api.rb +13 -13
  144. data/lib/trieve_ruby_client/api/stripe_api.rb +135 -9
  145. data/lib/trieve_ruby_client/api/topic_api.rb +9 -9
  146. data/lib/trieve_ruby_client/api/user_api.rb +7 -7
  147. data/lib/trieve_ruby_client/api_client.rb +1 -1
  148. data/lib/trieve_ruby_client/api_error.rb +1 -1
  149. data/lib/trieve_ruby_client/configuration.rb +8 -1
  150. data/lib/trieve_ruby_client/models/add_chunk_to_group_data.rb +1 -1
  151. data/lib/trieve_ruby_client/models/api_key_resp_body.rb +1 -1
  152. data/lib/trieve_ruby_client/models/api_version.rb +40 -0
  153. data/lib/trieve_ruby_client/models/auth_query.rb +1 -1
  154. data/lib/trieve_ruby_client/models/autocomplete_req_payload.rb +47 -5
  155. data/lib/trieve_ruby_client/models/batch_queued_chunk_response.rb +1 -1
  156. data/lib/trieve_ruby_client/models/bookmark_group_response.rb +105 -0
  157. data/lib/trieve_ruby_client/models/bookmark_group_result.rb +2 -2
  158. data/lib/trieve_ruby_client/models/boost_phrase.rb +1 -1
  159. data/lib/trieve_ruby_client/models/chat_message_proxy.rb +24 -2
  160. data/lib/trieve_ruby_client/models/chunk_filter.rb +13 -2
  161. data/lib/trieve_ruby_client/models/chunk_group.rb +1 -1
  162. data/lib/trieve_ruby_client/models/chunk_group_and_file_id.rb +343 -0
  163. data/lib/trieve_ruby_client/models/chunk_metadata.rb +8 -2
  164. data/lib/trieve_ruby_client/models/chunk_metadata_string_tag_set.rb +8 -2
  165. data/lib/trieve_ruby_client/models/chunk_metadata_types.rb +1 -1
  166. data/lib/trieve_ruby_client/models/chunk_metadata_with_score.rb +8 -2
  167. data/lib/trieve_ruby_client/models/chunk_req_payload.rb +12 -15
  168. data/lib/trieve_ruby_client/models/chunk_return_types.rb +105 -0
  169. data/lib/trieve_ruby_client/models/cluster_analytics.rb +43 -0
  170. data/lib/trieve_ruby_client/models/cluster_analytics_filter.rb +215 -0
  171. data/lib/trieve_ruby_client/models/cluster_analytics_response.rb +105 -0
  172. data/lib/trieve_ruby_client/models/cluster_queries.rb +296 -0
  173. data/lib/trieve_ruby_client/models/cluster_topics.rb +265 -0
  174. data/lib/trieve_ruby_client/models/condition_type.rb +1 -1
  175. data/lib/trieve_ruby_client/models/content_chunk_metadata.rb +8 -2
  176. data/lib/trieve_ruby_client/models/count_chunk_query_response_body.rb +240 -0
  177. data/lib/trieve_ruby_client/models/count_chunks_req_payload.rb +307 -0
  178. data/lib/trieve_ruby_client/models/count_queries.rb +265 -0
  179. data/lib/trieve_ruby_client/models/create_chunk_group_req_payload.rb +1 -1
  180. data/lib/trieve_ruby_client/models/create_chunk_req_payload_enum.rb +1 -1
  181. data/lib/trieve_ruby_client/models/create_dataset_request.rb +1 -1
  182. data/lib/trieve_ruby_client/models/create_message_req_payload.rb +95 -4
  183. data/lib/trieve_ruby_client/models/create_organization_data.rb +1 -1
  184. data/lib/trieve_ruby_client/models/create_setup_checkout_session_res_payload.rb +221 -0
  185. data/lib/trieve_ruby_client/models/create_topic_req_payload.rb +1 -1
  186. data/lib/trieve_ruby_client/models/dataset.rb +2 -14
  187. data/lib/trieve_ruby_client/models/dataset_analytics.rb +301 -0
  188. data/lib/trieve_ruby_client/models/dataset_and_usage.rb +1 -1
  189. data/lib/trieve_ruby_client/models/dataset_dto.rb +2 -14
  190. data/lib/trieve_ruby_client/models/dataset_usage_count.rb +1 -1
  191. data/lib/trieve_ruby_client/models/date_range.rb +1 -1
  192. data/lib/trieve_ruby_client/models/delete_topic_data.rb +1 -1
  193. data/lib/trieve_ruby_client/models/delete_user_api_key_request.rb +1 -1
  194. data/lib/trieve_ruby_client/models/deprecated_search_over_groups_response_body.rb +239 -0
  195. data/lib/trieve_ruby_client/models/distance_phrase.rb +240 -0
  196. data/lib/trieve_ruby_client/models/edit_message_req_payload.rb +95 -4
  197. data/lib/trieve_ruby_client/models/error_response_body.rb +1 -1
  198. data/lib/trieve_ruby_client/models/event.rb +12 -24
  199. data/lib/trieve_ruby_client/models/event_return.rb +1 -1
  200. data/lib/trieve_ruby_client/models/event_type_request.rb +49 -0
  201. data/lib/trieve_ruby_client/models/field_condition.rb +1 -1
  202. data/lib/trieve_ruby_client/models/file.rb +1 -1
  203. data/lib/trieve_ruby_client/models/file_dto.rb +1 -1
  204. data/lib/trieve_ruby_client/models/generate_chunks_request.rb +78 -6
  205. data/lib/trieve_ruby_client/models/geo_info.rb +1 -1
  206. data/lib/trieve_ruby_client/models/geo_info_with_bias.rb +237 -0
  207. data/lib/trieve_ruby_client/models/geo_types.rb +1 -1
  208. data/lib/trieve_ruby_client/models/get_chunks_data.rb +1 -1
  209. data/lib/trieve_ruby_client/models/get_chunks_for_groups_response.rb +274 -0
  210. data/lib/trieve_ruby_client/models/get_datasets_pagination.rb +1 -1
  211. data/lib/trieve_ruby_client/models/get_events_data.rb +2 -2
  212. data/lib/trieve_ruby_client/models/get_groups_for_chunks_data.rb +1 -1
  213. data/lib/trieve_ruby_client/models/get_tracking_chunks_data.rb +1 -1
  214. data/lib/trieve_ruby_client/models/granularity.rb +42 -0
  215. data/lib/trieve_ruby_client/models/group_data.rb +2 -2
  216. data/lib/trieve_ruby_client/models/group_score_chunk.rb +92 -2
  217. data/lib/trieve_ruby_client/models/groups_bookmark_query_result.rb +274 -0
  218. data/lib/trieve_ruby_client/models/has_id_condition.rb +1 -1
  219. data/lib/trieve_ruby_client/models/head_queries.rb +237 -0
  220. data/lib/trieve_ruby_client/models/head_queries1.rb +290 -0
  221. data/lib/trieve_ruby_client/models/head_query_response.rb +223 -0
  222. data/lib/trieve_ruby_client/models/invitation_data.rb +1 -1
  223. data/lib/trieve_ruby_client/models/latency_graph.rb +275 -0
  224. data/lib/trieve_ruby_client/models/latency_graph_response.rb +223 -0
  225. data/lib/trieve_ruby_client/models/location_bounding_box.rb +1 -1
  226. data/lib/trieve_ruby_client/models/location_polygon.rb +1 -1
  227. data/lib/trieve_ruby_client/models/location_radius.rb +1 -1
  228. data/lib/trieve_ruby_client/models/low_confidence_queries.rb +300 -0
  229. data/lib/trieve_ruby_client/models/low_confidence_recommendations.rb +300 -0
  230. data/lib/trieve_ruby_client/models/match_condition.rb +1 -1
  231. data/lib/trieve_ruby_client/models/message.rb +1 -1
  232. data/lib/trieve_ruby_client/models/new_chunk_metadata_types.rb +106 -0
  233. data/lib/trieve_ruby_client/models/no_result_queries.rb +290 -0
  234. data/lib/trieve_ruby_client/models/organization.rb +1 -1
  235. data/lib/trieve_ruby_client/models/organization_usage_count.rb +1 -1
  236. data/lib/trieve_ruby_client/models/query_count_response.rb +223 -0
  237. data/lib/trieve_ruby_client/models/query_details.rb +271 -0
  238. data/lib/trieve_ruby_client/models/rag_analytics.rb +43 -0
  239. data/lib/trieve_ruby_client/models/rag_analytics_filter.rb +247 -0
  240. data/lib/trieve_ruby_client/models/rag_analytics_response.rb +105 -0
  241. data/lib/trieve_ruby_client/models/rag_queries.rb +310 -0
  242. data/lib/trieve_ruby_client/models/rag_query_event.rb +319 -0
  243. data/lib/trieve_ruby_client/models/rag_query_response.rb +223 -0
  244. data/lib/trieve_ruby_client/models/rag_types.rb +40 -0
  245. data/lib/trieve_ruby_client/models/rag_usage.rb +265 -0
  246. data/lib/trieve_ruby_client/models/rag_usage_response.rb +240 -0
  247. data/lib/trieve_ruby_client/models/range.rb +1 -1
  248. data/lib/trieve_ruby_client/models/range_condition.rb +1 -1
  249. data/lib/trieve_ruby_client/models/recommend_chunks_request.rb +25 -5
  250. data/lib/trieve_ruby_client/models/recommend_chunks_response_body.rb +223 -0
  251. data/lib/trieve_ruby_client/models/recommend_group_chunks_request.rb +25 -5
  252. data/lib/trieve_ruby_client/models/recommend_groups_response.rb +105 -0
  253. data/lib/trieve_ruby_client/models/recommend_groups_response_body.rb +223 -0
  254. data/lib/trieve_ruby_client/models/recommend_response_types.rb +105 -0
  255. data/lib/trieve_ruby_client/models/recommend_type.rb +40 -0
  256. data/lib/trieve_ruby_client/models/recommendation_analytics.rb +43 -0
  257. data/lib/trieve_ruby_client/models/recommendation_analytics_filter.rb +247 -0
  258. data/lib/trieve_ruby_client/models/recommendation_analytics_response.rb +104 -0
  259. data/lib/trieve_ruby_client/models/recommendation_event.rb +391 -0
  260. data/lib/trieve_ruby_client/models/recommendation_queries.rb +310 -0
  261. data/lib/trieve_ruby_client/models/recommendation_strategy.rb +40 -0
  262. data/lib/trieve_ruby_client/models/recommendation_type.rb +40 -0
  263. data/lib/trieve_ruby_client/models/recommendations_event_response.rb +223 -0
  264. data/lib/trieve_ruby_client/models/regenerate_message_req_payload.rb +84 -4
  265. data/lib/trieve_ruby_client/models/remove_chunk_from_group_req_payload.rb +1 -1
  266. data/lib/trieve_ruby_client/models/return_queued_chunk.rb +1 -1
  267. data/lib/trieve_ruby_client/models/role_proxy.rb +41 -0
  268. data/lib/trieve_ruby_client/models/rps_graph.rb +275 -0
  269. data/lib/trieve_ruby_client/models/rps_graph_response.rb +223 -0
  270. data/lib/trieve_ruby_client/models/score_chunk.rb +249 -0
  271. data/lib/trieve_ruby_client/models/score_chunk_dto.rb +1 -1
  272. data/lib/trieve_ruby_client/models/search_analytics.rb +50 -0
  273. data/lib/trieve_ruby_client/models/search_analytics_filter.rb +257 -0
  274. data/lib/trieve_ruby_client/models/search_analytics_response.rb +110 -0
  275. data/lib/trieve_ruby_client/models/search_chunk_query_response_body.rb +1 -1
  276. data/lib/trieve_ruby_client/models/search_chunks_req_payload.rb +47 -16
  277. data/lib/trieve_ruby_client/models/search_cluster_response.rb +223 -0
  278. data/lib/trieve_ruby_client/models/search_cluster_topics.rb +301 -0
  279. data/lib/trieve_ruby_client/models/search_group_response_types.rb +105 -0
  280. data/lib/trieve_ruby_client/models/search_latency_graph.rb +237 -0
  281. data/lib/trieve_ruby_client/models/search_method.rb +42 -0
  282. data/lib/trieve_ruby_client/models/search_metrics.rb +265 -0
  283. data/lib/trieve_ruby_client/models/search_over_groups_data.rb +26 -16
  284. data/lib/trieve_ruby_client/models/search_over_groups_response_body.rb +23 -23
  285. data/lib/trieve_ruby_client/models/search_over_groups_response_types.rb +3 -3
  286. data/lib/trieve_ruby_client/models/search_over_groups_results.rb +33 -23
  287. data/lib/trieve_ruby_client/models/search_queries.rb +310 -0
  288. data/lib/trieve_ruby_client/models/search_query_event.rb +351 -0
  289. data/lib/trieve_ruby_client/models/search_query_response.rb +223 -0
  290. data/lib/trieve_ruby_client/models/search_response_body.rb +239 -0
  291. data/lib/trieve_ruby_client/models/search_response_types.rb +105 -0
  292. data/lib/trieve_ruby_client/models/search_result_type.rb +105 -0
  293. data/lib/trieve_ruby_client/models/search_rps_graph.rb +237 -0
  294. data/lib/trieve_ruby_client/models/search_type.rb +42 -0
  295. data/lib/trieve_ruby_client/models/search_type_count.rb +253 -0
  296. data/lib/trieve_ruby_client/models/search_within_group_data.rb +47 -5
  297. data/lib/trieve_ruby_client/models/search_within_group_response_body.rb +239 -0
  298. data/lib/trieve_ruby_client/models/search_within_group_results.rb +2 -2
  299. data/lib/trieve_ruby_client/models/set_user_api_key_request.rb +1 -1
  300. data/lib/trieve_ruby_client/models/set_user_api_key_response.rb +1 -1
  301. data/lib/trieve_ruby_client/models/single_queued_chunk_response.rb +1 -1
  302. data/lib/trieve_ruby_client/models/slim_chunk_metadata.rb +8 -2
  303. data/lib/trieve_ruby_client/models/slim_chunk_metadata_with_array_tag_set.rb +385 -0
  304. data/lib/trieve_ruby_client/models/slim_chunk_metadata_with_score.rb +8 -2
  305. data/lib/trieve_ruby_client/models/slim_user.rb +1 -1
  306. data/lib/trieve_ruby_client/models/sort_by.rb +41 -0
  307. data/lib/trieve_ruby_client/models/sort_order.rb +40 -0
  308. data/lib/trieve_ruby_client/models/stripe_invoice.rb +301 -0
  309. data/lib/trieve_ruby_client/models/stripe_plan.rb +1 -1
  310. data/lib/trieve_ruby_client/models/suggested_queries_req_payload.rb +1 -1
  311. data/lib/trieve_ruby_client/models/suggested_queries_response.rb +1 -1
  312. data/lib/trieve_ruby_client/models/topic.rb +1 -1
  313. data/lib/trieve_ruby_client/models/update_chunk_by_tracking_id_data.rb +1 -1
  314. data/lib/trieve_ruby_client/models/update_chunk_group_data.rb +17 -6
  315. data/lib/trieve_ruby_client/models/update_chunk_req_payload.rb +12 -2
  316. data/lib/trieve_ruby_client/models/update_dataset_request.rb +1 -1
  317. data/lib/trieve_ruby_client/models/update_group_by_tracking_id_req_payload.rb +1 -1
  318. data/lib/trieve_ruby_client/models/update_organization_data.rb +1 -1
  319. data/lib/trieve_ruby_client/models/update_topic_req_payload.rb +1 -1
  320. data/lib/trieve_ruby_client/models/update_user_org_role_data.rb +1 -1
  321. data/lib/trieve_ruby_client/models/upload_file_req_payload.rb +1 -1
  322. data/lib/trieve_ruby_client/models/upload_file_result.rb +1 -1
  323. data/lib/trieve_ruby_client/models/user_organization.rb +1 -1
  324. data/lib/trieve_ruby_client/version.rb +2 -2
  325. data/lib/trieve_ruby_client.rb +86 -5
  326. data/openapi-generator.yaml +2 -2
  327. data/openapi.json +11050 -1
  328. data/spec/api/analytics_api_spec.rb +87 -0
  329. data/spec/api/metrics_api_spec.rb +46 -0
  330. data/spec/models/api_version_spec.rb +30 -0
  331. data/spec/models/bookmark_group_response_spec.rb +32 -0
  332. data/spec/models/chunk_group_and_file_id_spec.rb +90 -0
  333. data/spec/models/chunk_return_types_spec.rb +32 -0
  334. data/spec/models/cluster_analytics_filter_spec.rb +36 -0
  335. data/spec/models/cluster_analytics_response_spec.rb +32 -0
  336. data/spec/models/cluster_analytics_spec.rb +38 -0
  337. data/spec/models/cluster_queries_spec.rb +52 -0
  338. data/spec/models/cluster_topics_spec.rb +46 -0
  339. data/spec/models/count_chunk_query_response_body_spec.rb +36 -0
  340. data/spec/models/count_chunks_req_payload_spec.rb +60 -0
  341. data/spec/models/count_queries_spec.rb +46 -0
  342. data/spec/models/create_setup_checkout_session_res_payload_spec.rb +36 -0
  343. data/spec/models/dataset_analytics_spec.rb +66 -0
  344. data/spec/models/deprecated_search_over_groups_response_body_spec.rb +42 -0
  345. data/spec/models/distance_phrase_spec.rb +42 -0
  346. data/spec/models/event_type_request_spec.rb +30 -0
  347. data/spec/models/geo_info_with_bias_spec.rb +42 -0
  348. data/spec/models/get_chunks_for_groups_response_spec.rb +48 -0
  349. data/spec/models/granularity_spec.rb +30 -0
  350. data/spec/models/groups_bookmark_query_result_spec.rb +48 -0
  351. data/spec/models/head_queries1_spec.rb +52 -0
  352. data/spec/models/head_queries_spec.rb +42 -0
  353. data/spec/models/head_query_response_spec.rb +36 -0
  354. data/spec/models/latency_graph_response_spec.rb +36 -0
  355. data/spec/models/latency_graph_spec.rb +52 -0
  356. data/spec/models/low_confidence_queries_spec.rb +58 -0
  357. data/spec/models/low_confidence_recommendations_spec.rb +58 -0
  358. data/spec/models/new_chunk_metadata_types_spec.rb +32 -0
  359. data/spec/models/no_result_queries_spec.rb +52 -0
  360. data/spec/models/query_count_response_spec.rb +36 -0
  361. data/spec/models/query_details_spec.rb +46 -0
  362. data/spec/models/rag_analytics_filter_spec.rb +42 -0
  363. data/spec/models/rag_analytics_response_spec.rb +32 -0
  364. data/spec/models/rag_analytics_spec.rb +38 -0
  365. data/spec/models/rag_queries_spec.rb +64 -0
  366. data/spec/models/rag_query_event_spec.rb +72 -0
  367. data/spec/models/rag_query_response_spec.rb +36 -0
  368. data/spec/models/rag_types_spec.rb +30 -0
  369. data/spec/models/rag_usage_response_spec.rb +36 -0
  370. data/spec/models/rag_usage_spec.rb +46 -0
  371. data/spec/models/recommend_chunks_response_body_spec.rb +36 -0
  372. data/spec/models/recommend_groups_response_body_spec.rb +36 -0
  373. data/spec/models/recommend_groups_response_spec.rb +32 -0
  374. data/spec/models/recommend_response_types_spec.rb +32 -0
  375. data/spec/models/recommend_type_spec.rb +30 -0
  376. data/spec/models/recommendation_analytics_filter_spec.rb +42 -0
  377. data/spec/models/recommendation_analytics_response_spec.rb +32 -0
  378. data/spec/models/recommendation_analytics_spec.rb +38 -0
  379. data/spec/models/recommendation_event_spec.rb +96 -0
  380. data/spec/models/recommendation_queries_spec.rb +64 -0
  381. data/spec/models/recommendation_strategy_spec.rb +30 -0
  382. data/spec/models/recommendation_type_spec.rb +30 -0
  383. data/spec/models/recommendations_event_response_spec.rb +36 -0
  384. data/spec/models/role_proxy_spec.rb +30 -0
  385. data/spec/models/rps_graph_response_spec.rb +36 -0
  386. data/spec/models/rps_graph_spec.rb +52 -0
  387. data/spec/models/score_chunk_spec.rb +48 -0
  388. data/spec/models/search_analytics_filter_spec.rb +48 -0
  389. data/spec/models/search_analytics_response_spec.rb +32 -0
  390. data/spec/models/search_analytics_spec.rb +38 -0
  391. data/spec/models/search_cluster_response_spec.rb +36 -0
  392. data/spec/models/search_cluster_topics_spec.rb +66 -0
  393. data/spec/models/search_group_response_types_spec.rb +32 -0
  394. data/spec/models/search_latency_graph_spec.rb +42 -0
  395. data/spec/models/search_method_spec.rb +30 -0
  396. data/spec/models/search_metrics_spec.rb +46 -0
  397. data/spec/models/search_queries_spec.rb +64 -0
  398. data/spec/models/search_query_event_spec.rb +84 -0
  399. data/spec/models/search_query_response_spec.rb +36 -0
  400. data/spec/models/search_response_body_spec.rb +42 -0
  401. data/spec/models/search_response_types_spec.rb +32 -0
  402. data/spec/models/search_result_type_spec.rb +32 -0
  403. data/spec/models/search_rps_graph_spec.rb +42 -0
  404. data/spec/models/search_type_count_spec.rb +48 -0
  405. data/spec/models/search_type_spec.rb +30 -0
  406. data/spec/models/search_within_group_response_body_spec.rb +42 -0
  407. data/spec/models/slim_chunk_metadata_with_array_tag_set_spec.rb +114 -0
  408. data/spec/models/sort_by_spec.rb +30 -0
  409. data/spec/models/sort_order_spec.rb +30 -0
  410. data/spec/models/stripe_invoice_spec.rb +66 -0
  411. data/spec/spec_helper.rb +1 -1
  412. data/trieve_ruby_client.gemspec +1 -1
  413. metadata +456 -135
  414. data/trieve_ruby_client-0.5.0.gem +0 -0
  415. data/trieve_ruby_client-0.5.7.gem +0 -0
  416. data/trieve_ruby_client-0.6.0.gem +0 -0
  417. data/trieve_ruby_client-0.6.2.gem +0 -0
  418. data/trieve_ruby_client-0.6.7.gem +0 -0
  419. data/trieve_ruby_client-0.6.9.gem +0 -0
  420. data/trieve_ruby_client-0.7.2.gem +0 -0
  421. data/trieve_ruby_client-0.7.6.gem +0 -0
  422. data/trieve_ruby_client-0.8.0.gem +0 -0
  423. data/trieve_ruby_client-0.8.2.gem +0 -0
  424. data/trieve_ruby_client-0.8.5.gem +0 -0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
5
 
6
- The version of the OpenAPI document: 0.10.7
6
+ The version of the OpenAPI document: 0.11.0
7
7
  Contact: developers@trieve.ai
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.4.0
@@ -90,7 +90,6 @@ module TrieveRubyClient
90
90
  :'chunk_html',
91
91
  :'link',
92
92
  :'metadata',
93
- :'qdrant_point_id',
94
93
  :'tag_set',
95
94
  :'time_stamp',
96
95
  :'tracking_id',
@@ -144,6 +143,8 @@ module TrieveRubyClient
144
143
 
145
144
  if attributes.key?(:'qdrant_point_id')
146
145
  self.qdrant_point_id = attributes[:'qdrant_point_id']
146
+ else
147
+ self.qdrant_point_id = nil
147
148
  end
148
149
 
149
150
  if attributes.key?(:'score')
@@ -194,6 +195,10 @@ module TrieveRubyClient
194
195
  invalid_properties.push('invalid value for "id", id cannot be nil.')
195
196
  end
196
197
 
198
+ if @qdrant_point_id.nil?
199
+ invalid_properties.push('invalid value for "qdrant_point_id", qdrant_point_id cannot be nil.')
200
+ end
201
+
197
202
  if @score.nil?
198
203
  invalid_properties.push('invalid value for "score", score cannot be nil.')
199
204
  end
@@ -216,6 +221,7 @@ module TrieveRubyClient
216
221
  return false if @created_at.nil?
217
222
  return false if @dataset_id.nil?
218
223
  return false if @id.nil?
224
+ return false if @qdrant_point_id.nil?
219
225
  return false if @score.nil?
220
226
  return false if @updated_at.nil?
221
227
  return false if @weight.nil?
@@ -3,7 +3,7 @@
3
3
 
4
4
  #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
5
 
6
- The version of the OpenAPI document: 0.10.7
6
+ The version of the OpenAPI document: 0.11.0
7
7
  Contact: developers@trieve.ai
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.4.0
@@ -20,12 +20,11 @@ module TrieveRubyClient
20
20
  # HTML content of the chunk. This can also be plaintext. The innerText of the HTML will be used to create the embedding vector. The point of using HTML is for convienience, as some users have applications where users submit HTML content.
21
21
  attr_accessor :chunk_html
22
22
 
23
- # Chunk_vector is a vector of floats which can be used instead of generating a new embedding. This is useful for when you are using a pre-embedded dataset. If this is not provided, the innerText of the chunk_html will be used to create the embedding.
24
- attr_accessor :chunk_vector
25
-
26
23
  # Convert HTML to raw text before processing to avoid adding noise to the vector embeddings. By default this is true. If you are using HTML content that you want to be included in the vector embeddings, set this to false.
27
24
  attr_accessor :convert_html_to_text
28
25
 
26
+ attr_accessor :distance_phrase
27
+
29
28
  # Group ids are the ids of the groups that the chunk should be placed into. This is useful for when you want to create a chunk and add it to a group or multiple groups in one request. Necessary because this route queues the chunk for ingestion and the chunk may not exist yet immediately after response.
30
29
  attr_accessor :group_ids
31
30
 
@@ -69,8 +68,8 @@ module TrieveRubyClient
69
68
  {
70
69
  :'boost_phrase' => :'boost_phrase',
71
70
  :'chunk_html' => :'chunk_html',
72
- :'chunk_vector' => :'chunk_vector',
73
71
  :'convert_html_to_text' => :'convert_html_to_text',
72
+ :'distance_phrase' => :'distance_phrase',
74
73
  :'group_ids' => :'group_ids',
75
74
  :'group_tracking_ids' => :'group_tracking_ids',
76
75
  :'image_urls' => :'image_urls',
@@ -97,8 +96,8 @@ module TrieveRubyClient
97
96
  {
98
97
  :'boost_phrase' => :'BoostPhrase',
99
98
  :'chunk_html' => :'String',
100
- :'chunk_vector' => :'Array<Float>',
101
99
  :'convert_html_to_text' => :'Boolean',
100
+ :'distance_phrase' => :'DistancePhrase',
102
101
  :'group_ids' => :'Array<String>',
103
102
  :'group_tracking_ids' => :'Array<String>',
104
103
  :'image_urls' => :'Array<String>',
@@ -120,8 +119,8 @@ module TrieveRubyClient
120
119
  Set.new([
121
120
  :'boost_phrase',
122
121
  :'chunk_html',
123
- :'chunk_vector',
124
122
  :'convert_html_to_text',
123
+ :'distance_phrase',
125
124
  :'group_ids',
126
125
  :'group_tracking_ids',
127
126
  :'image_urls',
@@ -161,16 +160,14 @@ module TrieveRubyClient
161
160
  self.chunk_html = attributes[:'chunk_html']
162
161
  end
163
162
 
164
- if attributes.key?(:'chunk_vector')
165
- if (value = attributes[:'chunk_vector']).is_a?(Array)
166
- self.chunk_vector = value
167
- end
168
- end
169
-
170
163
  if attributes.key?(:'convert_html_to_text')
171
164
  self.convert_html_to_text = attributes[:'convert_html_to_text']
172
165
  end
173
166
 
167
+ if attributes.key?(:'distance_phrase')
168
+ self.distance_phrase = attributes[:'distance_phrase']
169
+ end
170
+
174
171
  if attributes.key?(:'group_ids')
175
172
  if (value = attributes[:'group_ids']).is_a?(Array)
176
173
  self.group_ids = value
@@ -254,8 +251,8 @@ module TrieveRubyClient
254
251
  self.class == o.class &&
255
252
  boost_phrase == o.boost_phrase &&
256
253
  chunk_html == o.chunk_html &&
257
- chunk_vector == o.chunk_vector &&
258
254
  convert_html_to_text == o.convert_html_to_text &&
255
+ distance_phrase == o.distance_phrase &&
259
256
  group_ids == o.group_ids &&
260
257
  group_tracking_ids == o.group_tracking_ids &&
261
258
  image_urls == o.image_urls &&
@@ -280,7 +277,7 @@ module TrieveRubyClient
280
277
  # Calculates hash code according to all attributes.
281
278
  # @return [Integer] Hash code
282
279
  def hash
283
- [boost_phrase, chunk_html, chunk_vector, convert_html_to_text, group_ids, group_tracking_ids, image_urls, link, location, metadata, num_value, split_avg, tag_set, time_stamp, tracking_id, upsert_by_tracking_id, weight].hash
280
+ [boost_phrase, chunk_html, convert_html_to_text, distance_phrase, group_ids, group_tracking_ids, image_urls, link, location, metadata, num_value, split_avg, tag_set, time_stamp, tracking_id, upsert_by_tracking_id, weight].hash
284
281
  end
285
282
 
286
283
  # Builds the object from hash
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #Trieve API
3
+
4
+ #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
+
6
+ The version of the OpenAPI document: 0.11.0
7
+ Contact: developers@trieve.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrieveRubyClient
17
+ module ChunkReturnTypes
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'ChunkMetadata',
23
+ :'ChunkMetadataStringTagSet'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of oneOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - We do not attempt to check whether exactly one item matches.
34
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
35
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
36
+ # - TODO: scalar values are de facto behaving as if they were nullable.
37
+ # - TODO: logging when debugging is set.
38
+ openapi_one_of.each do |klass|
39
+ begin
40
+ next if klass == :AnyType # "nullable: true"
41
+ typed_data = find_and_cast_into_type(klass, data)
42
+ return typed_data if typed_data
43
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
44
+ end
45
+ end
46
+
47
+ openapi_one_of.include?(:AnyType) ? data : nil
48
+ end
49
+
50
+ private
51
+
52
+ SchemaMismatchError = Class.new(StandardError)
53
+
54
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
55
+ def find_and_cast_into_type(klass, data)
56
+ return if data.nil?
57
+
58
+ case klass.to_s
59
+ when 'Boolean'
60
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
61
+ when 'Float'
62
+ return data if data.instance_of?(Float)
63
+ when 'Integer'
64
+ return data if data.instance_of?(Integer)
65
+ when 'Time'
66
+ return Time.parse(data)
67
+ when 'Date'
68
+ return Date.parse(data)
69
+ when 'String'
70
+ return data if data.instance_of?(String)
71
+ when 'Object' # "type: object"
72
+ return data if data.instance_of?(Hash)
73
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
74
+ if data.instance_of?(Array)
75
+ sub_type = Regexp.last_match[:sub_type]
76
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
77
+ end
78
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
79
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
80
+ sub_type = Regexp.last_match[:sub_type]
81
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
82
+ end
83
+ else # model
84
+ const = TrieveRubyClient.const_get(klass)
85
+ if const
86
+ if const.respond_to?(:openapi_one_of) # nested oneOf model
87
+ model = const.build(data)
88
+ return model if model
89
+ else
90
+ # raise if data contains keys that are not known to the model
91
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
92
+ model = const.build_from_hash(data)
93
+ return model if model
94
+ end
95
+ end
96
+ end
97
+
98
+ raise # if no match by now, raise
99
+ rescue
100
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
101
+ end
102
+ end
103
+ end
104
+
105
+ end
@@ -0,0 +1,43 @@
1
+ =begin
2
+ #Trieve API
3
+
4
+ #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
+
6
+ The version of the OpenAPI document: 0.11.0
7
+ Contact: developers@trieve.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrieveRubyClient
17
+ module ClusterAnalytics
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'ClusterQueries',
23
+ :'ClusterTopics'
24
+ ]
25
+ end
26
+
27
+ # Discriminator's property name (OpenAPI v3)
28
+ def openapi_discriminator_name
29
+ :'type'
30
+ end
31
+
32
+ # Builds the object
33
+ # @param [Mixed] Data to be matched against the list of oneOf items
34
+ # @return [Object] Returns the model or the data itself
35
+ def build(data)
36
+ discriminator_value = data[openapi_discriminator_name]
37
+ return nil if discriminator_value.nil?
38
+ TrieveRubyClient.const_get(discriminator_value).build_from_hash(data)
39
+ end
40
+ end
41
+ end
42
+
43
+ end
@@ -0,0 +1,215 @@
1
+ =begin
2
+ #Trieve API
3
+
4
+ #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
+
6
+ The version of the OpenAPI document: 0.11.0
7
+ Contact: developers@trieve.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrieveRubyClient
17
+ class ClusterAnalyticsFilter
18
+ attr_accessor :date_range
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :'date_range' => :'date_range'
24
+ }
25
+ end
26
+
27
+ # Returns all the JSON keys this model knows about
28
+ def self.acceptable_attributes
29
+ attribute_map.values
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.openapi_types
34
+ {
35
+ :'date_range' => :'DateRange'
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new([
42
+ :'date_range'
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TrieveRubyClient::ClusterAnalyticsFilter` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TrieveRubyClient::ClusterAnalyticsFilter`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'date_range')
62
+ self.date_range = attributes[:'date_range']
63
+ end
64
+ end
65
+
66
+ # Show invalid properties with the reasons. Usually used together with valid?
67
+ # @return Array for valid properties with the reasons
68
+ def list_invalid_properties
69
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
70
+ invalid_properties = Array.new
71
+ invalid_properties
72
+ end
73
+
74
+ # Check to see if the all the properties in the model are valid
75
+ # @return true if the model is valid
76
+ def valid?
77
+ warn '[DEPRECATED] the `valid?` method is obsolete'
78
+ true
79
+ end
80
+
81
+ # Checks equality by comparing each attribute.
82
+ # @param [Object] Object to be compared
83
+ def ==(o)
84
+ return true if self.equal?(o)
85
+ self.class == o.class &&
86
+ date_range == o.date_range
87
+ end
88
+
89
+ # @see the `==` method
90
+ # @param [Object] Object to be compared
91
+ def eql?(o)
92
+ self == o
93
+ end
94
+
95
+ # Calculates hash code according to all attributes.
96
+ # @return [Integer] Hash code
97
+ def hash
98
+ [date_range].hash
99
+ end
100
+
101
+ # Builds the object from hash
102
+ # @param [Hash] attributes Model attributes in the form of hash
103
+ # @return [Object] Returns the model itself
104
+ def self.build_from_hash(attributes)
105
+ return nil unless attributes.is_a?(Hash)
106
+ attributes = attributes.transform_keys(&:to_sym)
107
+ transformed_hash = {}
108
+ openapi_types.each_pair do |key, type|
109
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
110
+ transformed_hash["#{key}"] = nil
111
+ elsif type =~ /\AArray<(.*)>/i
112
+ # check to ensure the input is an array given that the attribute
113
+ # is documented as an array but the input is not
114
+ if attributes[attribute_map[key]].is_a?(Array)
115
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
116
+ end
117
+ elsif !attributes[attribute_map[key]].nil?
118
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
119
+ end
120
+ end
121
+ new(transformed_hash)
122
+ end
123
+
124
+ # Deserializes the data based on type
125
+ # @param string type Data type
126
+ # @param string value Value to be deserialized
127
+ # @return [Object] Deserialized data
128
+ def self._deserialize(type, value)
129
+ case type.to_sym
130
+ when :Time
131
+ Time.parse(value)
132
+ when :Date
133
+ Date.parse(value)
134
+ when :String
135
+ value.to_s
136
+ when :Integer
137
+ value.to_i
138
+ when :Float
139
+ value.to_f
140
+ when :Boolean
141
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
142
+ true
143
+ else
144
+ false
145
+ end
146
+ when :Object
147
+ # generic object (usually a Hash), return directly
148
+ value
149
+ when /\AArray<(?<inner_type>.+)>\z/
150
+ inner_type = Regexp.last_match[:inner_type]
151
+ value.map { |v| _deserialize(inner_type, v) }
152
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
153
+ k_type = Regexp.last_match[:k_type]
154
+ v_type = Regexp.last_match[:v_type]
155
+ {}.tap do |hash|
156
+ value.each do |k, v|
157
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
158
+ end
159
+ end
160
+ else # model
161
+ # models (e.g. Pet) or oneOf
162
+ klass = TrieveRubyClient.const_get(type)
163
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
164
+ end
165
+ end
166
+
167
+ # Returns the string representation of the object
168
+ # @return [String] String presentation of the object
169
+ def to_s
170
+ to_hash.to_s
171
+ end
172
+
173
+ # to_body is an alias to to_hash (backward compatibility)
174
+ # @return [Hash] Returns the object in the form of hash
175
+ def to_body
176
+ to_hash
177
+ end
178
+
179
+ # Returns the object in the form of hash
180
+ # @return [Hash] Returns the object in the form of hash
181
+ def to_hash
182
+ hash = {}
183
+ self.class.attribute_map.each_pair do |attr, param|
184
+ value = self.send(attr)
185
+ if value.nil?
186
+ is_nullable = self.class.openapi_nullable.include?(attr)
187
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
188
+ end
189
+
190
+ hash[param] = _to_hash(value)
191
+ end
192
+ hash
193
+ end
194
+
195
+ # Outputs non-array value in the form of hash
196
+ # For object, use to_hash. Otherwise, just return the value
197
+ # @param [Object] value Any valid value
198
+ # @return [Hash] Returns the value in the form of hash
199
+ def _to_hash(value)
200
+ if value.is_a?(Array)
201
+ value.compact.map { |v| _to_hash(v) }
202
+ elsif value.is_a?(Hash)
203
+ {}.tap do |hash|
204
+ value.each { |k, v| hash[k] = _to_hash(v) }
205
+ end
206
+ elsif value.respond_to? :to_hash
207
+ value.to_hash
208
+ else
209
+ value
210
+ end
211
+ end
212
+
213
+ end
214
+
215
+ end
@@ -0,0 +1,105 @@
1
+ =begin
2
+ #Trieve API
3
+
4
+ #Trieve OpenAPI Specification. This document describes all of the operations available through the Trieve API.
5
+
6
+ The version of the OpenAPI document: 0.11.0
7
+ Contact: developers@trieve.ai
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.4.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TrieveRubyClient
17
+ module ClusterAnalyticsResponse
18
+ class << self
19
+ # List of class defined in oneOf (OpenAPI v3)
20
+ def openapi_one_of
21
+ [
22
+ :'SearchClusterResponse',
23
+ :'SearchQueryResponse'
24
+ ]
25
+ end
26
+
27
+ # Builds the object
28
+ # @param [Mixed] Data to be matched against the list of oneOf items
29
+ # @return [Object] Returns the model or the data itself
30
+ def build(data)
31
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
32
+ # Note:
33
+ # - We do not attempt to check whether exactly one item matches.
34
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
35
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
36
+ # - TODO: scalar values are de facto behaving as if they were nullable.
37
+ # - TODO: logging when debugging is set.
38
+ openapi_one_of.each do |klass|
39
+ begin
40
+ next if klass == :AnyType # "nullable: true"
41
+ typed_data = find_and_cast_into_type(klass, data)
42
+ return typed_data if typed_data
43
+ rescue # rescue all errors so we keep iterating even if the current item lookup raises
44
+ end
45
+ end
46
+
47
+ openapi_one_of.include?(:AnyType) ? data : nil
48
+ end
49
+
50
+ private
51
+
52
+ SchemaMismatchError = Class.new(StandardError)
53
+
54
+ # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
55
+ def find_and_cast_into_type(klass, data)
56
+ return if data.nil?
57
+
58
+ case klass.to_s
59
+ when 'Boolean'
60
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
61
+ when 'Float'
62
+ return data if data.instance_of?(Float)
63
+ when 'Integer'
64
+ return data if data.instance_of?(Integer)
65
+ when 'Time'
66
+ return Time.parse(data)
67
+ when 'Date'
68
+ return Date.parse(data)
69
+ when 'String'
70
+ return data if data.instance_of?(String)
71
+ when 'Object' # "type: object"
72
+ return data if data.instance_of?(Hash)
73
+ when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
74
+ if data.instance_of?(Array)
75
+ sub_type = Regexp.last_match[:sub_type]
76
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
77
+ end
78
+ when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
79
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
80
+ sub_type = Regexp.last_match[:sub_type]
81
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
82
+ end
83
+ else # model
84
+ const = TrieveRubyClient.const_get(klass)
85
+ if const
86
+ if const.respond_to?(:openapi_one_of) # nested oneOf model
87
+ model = const.build(data)
88
+ return model if model
89
+ else
90
+ # raise if data contains keys that are not known to the model
91
+ raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
92
+ model = const.build_from_hash(data)
93
+ return model if model
94
+ end
95
+ end
96
+ end
97
+
98
+ raise # if no match by now, raise
99
+ rescue
100
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
101
+ end
102
+ end
103
+ end
104
+
105
+ end