algolia 3.10.2 → 3.12.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 (605) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/Bug_report.yml +1 -1
  3. data/.github/workflows/release.yml +1 -1
  4. data/CHANGELOG.md +24 -0
  5. data/Gemfile.lock +1 -1
  6. data/lib/algolia/api/abtesting_client.rb +3 -1
  7. data/lib/algolia/api/analytics_client.rb +45 -43
  8. data/lib/algolia/api/composition_client.rb +174 -0
  9. data/lib/algolia/api/ingestion_client.rb +15 -3
  10. data/lib/algolia/api/insights_client.rb +3 -1
  11. data/lib/algolia/api/monitoring_client.rb +2 -0
  12. data/lib/algolia/api/personalization_client.rb +3 -1
  13. data/lib/algolia/api/query_suggestions_client.rb +3 -1
  14. data/lib/algolia/api/recommend_client.rb +20 -18
  15. data/lib/algolia/api/search_client.rb +160 -141
  16. data/lib/algolia/models/abtesting/ab_test.rb +2 -5
  17. data/lib/algolia/models/abtesting/ab_test_configuration.rb +2 -5
  18. data/lib/algolia/models/abtesting/ab_test_response.rb +2 -5
  19. data/lib/algolia/models/abtesting/ab_tests_variant.rb +2 -5
  20. data/lib/algolia/models/abtesting/ab_tests_variant_search_params.rb +7 -3
  21. data/lib/algolia/models/abtesting/add_ab_tests_request.rb +2 -5
  22. data/lib/algolia/models/abtesting/add_ab_tests_variant.rb +7 -6
  23. data/lib/algolia/models/abtesting/currency.rb +2 -5
  24. data/lib/algolia/models/abtesting/effect_metric.rb +2 -0
  25. data/lib/algolia/models/abtesting/empty_search.rb +2 -5
  26. data/lib/algolia/models/abtesting/empty_search_filter.rb +2 -5
  27. data/lib/algolia/models/abtesting/error_base.rb +2 -5
  28. data/lib/algolia/models/abtesting/estimate_ab_test_request.rb +2 -5
  29. data/lib/algolia/models/abtesting/estimate_ab_test_response.rb +2 -5
  30. data/lib/algolia/models/abtesting/estimate_configuration.rb +2 -5
  31. data/lib/algolia/models/abtesting/filter_effects.rb +2 -5
  32. data/lib/algolia/models/abtesting/list_ab_tests_response.rb +2 -5
  33. data/lib/algolia/models/abtesting/minimum_detectable_effect.rb +2 -5
  34. data/lib/algolia/models/abtesting/outliers.rb +2 -5
  35. data/lib/algolia/models/abtesting/outliers_filter.rb +2 -5
  36. data/lib/algolia/models/abtesting/schedule_ab_test_response.rb +2 -5
  37. data/lib/algolia/models/abtesting/schedule_ab_tests_request.rb +2 -5
  38. data/lib/algolia/models/abtesting/status.rb +2 -0
  39. data/lib/algolia/models/abtesting/variant.rb +2 -5
  40. data/lib/algolia/models/analytics/click_position.rb +2 -5
  41. data/lib/algolia/models/analytics/currency_code.rb +2 -5
  42. data/lib/algolia/models/analytics/daily_add_to_cart_rates.rb +3 -6
  43. data/lib/algolia/models/analytics/daily_average_clicks.rb +2 -5
  44. data/lib/algolia/models/analytics/daily_click_through_rates.rb +3 -6
  45. data/lib/algolia/models/analytics/daily_conversion_rates.rb +3 -6
  46. data/lib/algolia/models/analytics/daily_no_click_rates.rb +3 -6
  47. data/lib/algolia/models/analytics/daily_no_results_rates.rb +3 -6
  48. data/lib/algolia/models/analytics/daily_purchase_rates.rb +3 -6
  49. data/lib/algolia/models/analytics/daily_revenue.rb +3 -6
  50. data/lib/algolia/models/analytics/daily_searches.rb +2 -5
  51. data/lib/algolia/models/analytics/daily_searches_no_clicks.rb +2 -5
  52. data/lib/algolia/models/analytics/daily_searches_no_results.rb +2 -5
  53. data/lib/algolia/models/analytics/daily_users.rb +2 -5
  54. data/lib/algolia/models/analytics/direction.rb +2 -0
  55. data/lib/algolia/models/analytics/error_base.rb +2 -5
  56. data/lib/algolia/models/analytics/get_add_to_cart_rate_response.rb +3 -6
  57. data/lib/algolia/models/analytics/get_average_click_position_response.rb +2 -5
  58. data/lib/algolia/models/analytics/get_click_positions_response.rb +2 -5
  59. data/lib/algolia/models/analytics/get_click_through_rate_response.rb +3 -6
  60. data/lib/algolia/models/analytics/get_conversion_rate_response.rb +3 -6
  61. data/lib/algolia/models/analytics/get_no_click_rate_response.rb +3 -6
  62. data/lib/algolia/models/analytics/get_no_results_rate_response.rb +3 -6
  63. data/lib/algolia/models/analytics/get_purchase_rate_response.rb +3 -6
  64. data/lib/algolia/models/analytics/get_revenue.rb +3 -6
  65. data/lib/algolia/models/analytics/get_searches_count_response.rb +2 -5
  66. data/lib/algolia/models/analytics/get_searches_no_clicks_response.rb +2 -5
  67. data/lib/algolia/models/analytics/get_searches_no_results_response.rb +2 -5
  68. data/lib/algolia/models/analytics/get_status_response.rb +2 -5
  69. data/lib/algolia/models/analytics/get_top_countries_response.rb +2 -5
  70. data/lib/algolia/models/analytics/get_top_filter_attribute.rb +2 -5
  71. data/lib/algolia/models/analytics/get_top_filter_attributes_response.rb +2 -5
  72. data/lib/algolia/models/analytics/get_top_filter_for_attribute.rb +2 -5
  73. data/lib/algolia/models/analytics/get_top_filter_for_attribute_response.rb +2 -5
  74. data/lib/algolia/models/analytics/get_top_filters_no_results_response.rb +3 -6
  75. data/lib/algolia/models/analytics/get_top_filters_no_results_value.rb +2 -5
  76. data/lib/algolia/models/analytics/get_top_filters_no_results_values.rb +2 -5
  77. data/lib/algolia/models/analytics/get_top_hits_response.rb +7 -6
  78. data/lib/algolia/models/analytics/get_top_searches_response.rb +7 -6
  79. data/lib/algolia/models/analytics/get_users_count_response.rb +2 -5
  80. data/lib/algolia/models/analytics/operator.rb +2 -0
  81. data/lib/algolia/models/analytics/order_by.rb +2 -0
  82. data/lib/algolia/models/analytics/top_country.rb +2 -5
  83. data/lib/algolia/models/analytics/top_hit.rb +3 -6
  84. data/lib/algolia/models/analytics/top_hit_with_analytics.rb +5 -8
  85. data/lib/algolia/models/analytics/top_hit_with_revenue_analytics.rb +8 -11
  86. data/lib/algolia/models/analytics/top_hits_response.rb +2 -5
  87. data/lib/algolia/models/analytics/top_hits_response_with_analytics.rb +2 -5
  88. data/lib/algolia/models/analytics/top_hits_response_with_revenue_analytics.rb +2 -5
  89. data/lib/algolia/models/analytics/top_search.rb +2 -5
  90. data/lib/algolia/models/analytics/top_search_with_analytics.rb +4 -7
  91. data/lib/algolia/models/analytics/top_search_with_revenue_analytics.rb +7 -10
  92. data/lib/algolia/models/analytics/top_searches_response.rb +2 -5
  93. data/lib/algolia/models/analytics/top_searches_response_with_analytics.rb +2 -5
  94. data/lib/algolia/models/analytics/top_searches_response_with_revenue_analytics.rb +2 -5
  95. data/lib/algolia/models/composition/around_precision.rb +110 -0
  96. data/lib/algolia/models/composition/around_radius.rb +110 -0
  97. data/lib/algolia/models/{ingestion/docker_registry.rb → composition/around_radius_all.rb} +8 -7
  98. data/lib/algolia/models/composition/banner.rb +215 -0
  99. data/lib/algolia/models/composition/banner_image.rb +220 -0
  100. data/lib/algolia/models/composition/banner_image_url.rb +209 -0
  101. data/lib/algolia/models/composition/banner_link.rb +209 -0
  102. data/lib/algolia/models/composition/composition_id_ranking_info.rb +221 -0
  103. data/lib/algolia/models/composition/composition_run_applied_rules.rb +211 -0
  104. data/lib/algolia/models/composition/composition_run_search_response.rb +222 -0
  105. data/lib/algolia/models/composition/compositions_search_response.rb +212 -0
  106. data/lib/algolia/models/composition/error_base.rb +209 -0
  107. data/lib/algolia/models/composition/exhaustive.rb +250 -0
  108. data/lib/algolia/models/composition/facet_filters.rb +110 -0
  109. data/lib/algolia/models/composition/facet_hits.rb +235 -0
  110. data/lib/algolia/models/composition/facet_ordering.rb +221 -0
  111. data/lib/algolia/models/composition/facet_stats.rb +239 -0
  112. data/lib/algolia/models/composition/facets.rb +209 -0
  113. data/lib/algolia/models/composition/highlight_result.rb +110 -0
  114. data/lib/algolia/models/composition/highlight_result_option.rb +255 -0
  115. data/lib/algolia/models/composition/hit.rb +251 -0
  116. data/lib/algolia/models/composition/hit_ranking_info.rb +371 -0
  117. data/lib/algolia/models/composition/inside_bounding_box.rb +109 -0
  118. data/lib/algolia/models/{ingestion/docker_image_type.rb → composition/match_level.rb} +10 -8
  119. data/lib/algolia/models/composition/matched_geo_location.rb +229 -0
  120. data/lib/algolia/models/composition/numeric_filters.rb +110 -0
  121. data/lib/algolia/models/composition/optional_filters.rb +110 -0
  122. data/lib/algolia/models/composition/params.rb +488 -0
  123. data/lib/algolia/models/composition/personalization.rb +229 -0
  124. data/lib/algolia/models/composition/range.rb +217 -0
  125. data/lib/algolia/models/composition/redirect.rb +208 -0
  126. data/lib/algolia/models/composition/redirect_rule_index_data.rb +211 -0
  127. data/lib/algolia/models/composition/redirect_rule_index_metadata.rb +258 -0
  128. data/lib/algolia/models/composition/redirect_url.rb +209 -0
  129. data/lib/algolia/models/composition/rendering_content.rb +227 -0
  130. data/lib/algolia/models/composition/request_body.rb +208 -0
  131. data/lib/algolia/models/composition/results_composition_info_response.rb +212 -0
  132. data/lib/algolia/models/composition/results_injected_item_applied_rules_info_response.rb +211 -0
  133. data/lib/algolia/models/composition/results_injected_item_info_response.rb +221 -0
  134. data/lib/algolia/models/composition/search_for_facet_values_params.rb +228 -0
  135. data/lib/algolia/models/composition/search_for_facet_values_request.rb +208 -0
  136. data/lib/algolia/models/composition/search_for_facet_values_response.rb +211 -0
  137. data/lib/algolia/models/composition/search_for_facet_values_results.rb +253 -0
  138. data/lib/algolia/models/composition/search_response.rb +230 -0
  139. data/lib/algolia/models/composition/search_results_item.rb +608 -0
  140. data/lib/algolia/models/composition/snippet_result.rb +110 -0
  141. data/lib/algolia/models/composition/snippet_result_option.rb +230 -0
  142. data/lib/algolia/models/composition/sort_remaining_by.rb +35 -0
  143. data/lib/algolia/models/composition/supported_language.rb +169 -0
  144. data/lib/algolia/models/composition/value.rb +229 -0
  145. data/lib/algolia/models/composition/widgets.rb +209 -0
  146. data/lib/algolia/models/ingestion/action.rb +2 -0
  147. data/lib/algolia/models/ingestion/action_type.rb +2 -0
  148. data/lib/algolia/models/ingestion/auth_algolia.rb +2 -5
  149. data/lib/algolia/models/ingestion/auth_algolia_insights.rb +2 -5
  150. data/lib/algolia/models/ingestion/auth_algolia_insights_partial.rb +2 -5
  151. data/lib/algolia/models/ingestion/auth_algolia_partial.rb +2 -5
  152. data/lib/algolia/models/ingestion/auth_api_key.rb +7 -3
  153. data/lib/algolia/models/ingestion/auth_api_key_partial.rb +7 -3
  154. data/lib/algolia/models/ingestion/auth_basic.rb +8 -3
  155. data/lib/algolia/models/ingestion/auth_basic_partial.rb +7 -3
  156. data/lib/algolia/models/ingestion/auth_google_service_account.rb +8 -3
  157. data/lib/algolia/models/ingestion/auth_google_service_account_partial.rb +7 -3
  158. data/lib/algolia/models/ingestion/auth_input.rb +7 -6
  159. data/lib/algolia/models/ingestion/auth_input_partial.rb +7 -6
  160. data/lib/algolia/models/ingestion/auth_o_auth.rb +9 -3
  161. data/lib/algolia/models/ingestion/auth_o_auth_partial.rb +7 -3
  162. data/lib/algolia/models/ingestion/authentication.rb +2 -5
  163. data/lib/algolia/models/ingestion/authentication_create.rb +2 -5
  164. data/lib/algolia/models/ingestion/authentication_create_response.rb +2 -5
  165. data/lib/algolia/models/ingestion/authentication_search.rb +2 -5
  166. data/lib/algolia/models/ingestion/authentication_sort_keys.rb +2 -0
  167. data/lib/algolia/models/ingestion/authentication_type.rb +2 -0
  168. data/lib/algolia/models/ingestion/authentication_update.rb +2 -5
  169. data/lib/algolia/models/ingestion/authentication_update_response.rb +2 -5
  170. data/lib/algolia/models/ingestion/big_commerce_channel.rb +2 -5
  171. data/lib/algolia/models/ingestion/big_commerce_metafield.rb +2 -5
  172. data/lib/algolia/models/ingestion/big_query_data_type.rb +2 -0
  173. data/lib/algolia/models/ingestion/commercetools_custom_fields.rb +2 -5
  174. data/lib/algolia/models/ingestion/delete_response.rb +2 -5
  175. data/lib/algolia/models/ingestion/destination.rb +2 -5
  176. data/lib/algolia/models/ingestion/destination_create.rb +2 -5
  177. data/lib/algolia/models/ingestion/destination_create_response.rb +2 -5
  178. data/lib/algolia/models/ingestion/destination_index_name.rb +2 -5
  179. data/lib/algolia/models/ingestion/destination_input.rb +7 -6
  180. data/lib/algolia/models/ingestion/destination_search.rb +2 -5
  181. data/lib/algolia/models/ingestion/destination_sort_keys.rb +2 -0
  182. data/lib/algolia/models/ingestion/destination_type.rb +2 -0
  183. data/lib/algolia/models/ingestion/destination_update.rb +2 -5
  184. data/lib/algolia/models/ingestion/destination_update_response.rb +2 -5
  185. data/lib/algolia/models/ingestion/docker_streams.rb +2 -5
  186. data/lib/algolia/models/ingestion/docker_streams_input.rb +8 -4
  187. data/lib/algolia/models/ingestion/docker_streams_sync_mode.rb +2 -0
  188. data/lib/algolia/models/ingestion/email_notifications.rb +209 -0
  189. data/lib/algolia/models/ingestion/entity_type.rb +2 -0
  190. data/lib/algolia/models/ingestion/error_base.rb +2 -5
  191. data/lib/algolia/models/ingestion/event.rb +2 -5
  192. data/lib/algolia/models/ingestion/event_sort_keys.rb +2 -0
  193. data/lib/algolia/models/ingestion/event_status.rb +2 -0
  194. data/lib/algolia/models/ingestion/event_type.rb +2 -0
  195. data/lib/algolia/models/ingestion/list_authentications_response.rb +2 -5
  196. data/lib/algolia/models/ingestion/list_destinations_response.rb +2 -5
  197. data/lib/algolia/models/ingestion/list_events_response.rb +2 -5
  198. data/lib/algolia/models/ingestion/list_sources_response.rb +2 -5
  199. data/lib/algolia/models/ingestion/list_tasks_response.rb +2 -5
  200. data/lib/algolia/models/ingestion/list_tasks_response_v1.rb +2 -5
  201. data/lib/algolia/models/ingestion/list_transformations_response.rb +2 -5
  202. data/lib/algolia/models/ingestion/mapping_field_directive.rb +2 -5
  203. data/lib/algolia/models/ingestion/mapping_format_schema.rb +2 -0
  204. data/lib/algolia/models/ingestion/mapping_input.rb +8 -3
  205. data/lib/algolia/models/ingestion/mapping_kit_action.rb +2 -5
  206. data/lib/algolia/models/ingestion/mapping_type_csv.rb +2 -0
  207. data/lib/algolia/models/ingestion/method_type.rb +2 -0
  208. data/lib/algolia/models/ingestion/notifications.rb +211 -0
  209. data/lib/algolia/models/ingestion/on_demand_trigger.rb +2 -5
  210. data/lib/algolia/models/ingestion/on_demand_trigger_input.rb +2 -5
  211. data/lib/algolia/models/ingestion/on_demand_trigger_type.rb +2 -0
  212. data/lib/algolia/models/ingestion/order_keys.rb +2 -0
  213. data/lib/algolia/models/ingestion/pagination.rb +2 -5
  214. data/lib/algolia/models/ingestion/platform.rb +2 -0
  215. data/lib/algolia/models/ingestion/platform_none.rb +2 -0
  216. data/lib/algolia/models/ingestion/platform_with_none.rb +7 -6
  217. data/lib/algolia/models/ingestion/policies.rb +207 -0
  218. data/lib/algolia/models/ingestion/push_task_payload.rb +2 -5
  219. data/lib/algolia/models/ingestion/push_task_records.rb +10 -13
  220. data/lib/algolia/models/ingestion/record_type.rb +2 -0
  221. data/lib/algolia/models/ingestion/run.rb +2 -5
  222. data/lib/algolia/models/ingestion/run_list_response.rb +2 -5
  223. data/lib/algolia/models/ingestion/run_outcome.rb +3 -2
  224. data/lib/algolia/models/ingestion/run_progress.rb +6 -5
  225. data/lib/algolia/models/ingestion/run_reason_code.rb +2 -0
  226. data/lib/algolia/models/ingestion/run_response.rb +2 -5
  227. data/lib/algolia/models/ingestion/run_sort_keys.rb +2 -0
  228. data/lib/algolia/models/ingestion/run_source_payload.rb +2 -5
  229. data/lib/algolia/models/ingestion/run_source_response.rb +2 -5
  230. data/lib/algolia/models/ingestion/run_status.rb +2 -0
  231. data/lib/algolia/models/ingestion/run_type.rb +2 -0
  232. data/lib/algolia/models/ingestion/schedule_trigger.rb +2 -5
  233. data/lib/algolia/models/ingestion/schedule_trigger_input.rb +7 -3
  234. data/lib/algolia/models/ingestion/schedule_trigger_type.rb +2 -0
  235. data/lib/algolia/models/ingestion/shopify_input.rb +2 -5
  236. data/lib/algolia/models/ingestion/shopify_market.rb +2 -5
  237. data/lib/algolia/models/ingestion/shopify_metafield.rb +2 -5
  238. data/lib/algolia/models/ingestion/source.rb +2 -5
  239. data/lib/algolia/models/ingestion/source_big_commerce.rb +7 -3
  240. data/lib/algolia/models/ingestion/source_big_query.rb +7 -3
  241. data/lib/algolia/models/ingestion/source_commercetools.rb +7 -3
  242. data/lib/algolia/models/ingestion/source_create.rb +2 -5
  243. data/lib/algolia/models/ingestion/source_create_response.rb +2 -5
  244. data/lib/algolia/models/ingestion/source_csv.rb +2 -5
  245. data/lib/algolia/models/ingestion/source_docker.rb +10 -37
  246. data/lib/algolia/models/ingestion/source_ga4_big_query_export.rb +9 -3
  247. data/lib/algolia/models/ingestion/source_input.rb +7 -6
  248. data/lib/algolia/models/ingestion/source_json.rb +2 -5
  249. data/lib/algolia/models/ingestion/source_search.rb +2 -5
  250. data/lib/algolia/models/ingestion/source_shopify.rb +7 -3
  251. data/lib/algolia/models/ingestion/source_sort_keys.rb +2 -0
  252. data/lib/algolia/models/ingestion/source_type.rb +2 -0
  253. data/lib/algolia/models/ingestion/source_update.rb +2 -5
  254. data/lib/algolia/models/ingestion/source_update_commercetools.rb +2 -5
  255. data/lib/algolia/models/ingestion/source_update_docker.rb +8 -33
  256. data/lib/algolia/models/ingestion/source_update_input.rb +7 -6
  257. data/lib/algolia/models/ingestion/source_update_response.rb +2 -5
  258. data/lib/algolia/models/ingestion/source_update_shopify.rb +2 -5
  259. data/lib/algolia/models/ingestion/streaming_input.rb +7 -3
  260. data/lib/algolia/models/ingestion/streaming_trigger.rb +2 -5
  261. data/lib/algolia/models/ingestion/streaming_trigger_type.rb +2 -0
  262. data/lib/algolia/models/ingestion/subscription_trigger.rb +2 -5
  263. data/lib/algolia/models/ingestion/subscription_trigger_type.rb +2 -0
  264. data/lib/algolia/models/ingestion/task.rb +22 -5
  265. data/lib/algolia/models/ingestion/task_create.rb +24 -9
  266. data/lib/algolia/models/ingestion/task_create_response.rb +2 -5
  267. data/lib/algolia/models/ingestion/task_create_trigger.rb +7 -6
  268. data/lib/algolia/models/ingestion/task_create_v1.rb +2 -5
  269. data/lib/algolia/models/ingestion/task_input.rb +7 -6
  270. data/lib/algolia/models/ingestion/task_search.rb +2 -5
  271. data/lib/algolia/models/ingestion/task_sort_keys.rb +2 -0
  272. data/lib/algolia/models/ingestion/task_update.rb +24 -9
  273. data/lib/algolia/models/ingestion/task_update_response.rb +2 -5
  274. data/lib/algolia/models/ingestion/task_update_v1.rb +2 -5
  275. data/lib/algolia/models/ingestion/task_v1.rb +22 -5
  276. data/lib/algolia/models/ingestion/transformation.rb +2 -5
  277. data/lib/algolia/models/ingestion/transformation_create.rb +2 -5
  278. data/lib/algolia/models/ingestion/transformation_create_response.rb +2 -5
  279. data/lib/algolia/models/ingestion/transformation_error.rb +2 -5
  280. data/lib/algolia/models/ingestion/transformation_search.rb +2 -5
  281. data/lib/algolia/models/ingestion/transformation_sort_keys.rb +2 -0
  282. data/lib/algolia/models/ingestion/transformation_try.rb +2 -5
  283. data/lib/algolia/models/ingestion/transformation_try_response.rb +2 -5
  284. data/lib/algolia/models/ingestion/transformation_update_response.rb +2 -5
  285. data/lib/algolia/models/ingestion/trigger.rb +7 -6
  286. data/lib/algolia/models/ingestion/trigger_type.rb +2 -0
  287. data/lib/algolia/models/ingestion/trigger_update_input.rb +2 -5
  288. data/lib/algolia/models/ingestion/watch_response.rb +2 -5
  289. data/lib/algolia/models/ingestion/window.rb +2 -5
  290. data/lib/algolia/models/insights/add_to_cart_event.rb +2 -0
  291. data/lib/algolia/models/insights/added_to_cart_object_ids.rb +9 -3
  292. data/lib/algolia/models/insights/added_to_cart_object_ids_after_search.rb +10 -3
  293. data/lib/algolia/models/insights/click_event.rb +2 -0
  294. data/lib/algolia/models/insights/clicked_filters.rb +8 -3
  295. data/lib/algolia/models/insights/clicked_object_ids.rb +8 -3
  296. data/lib/algolia/models/insights/clicked_object_ids_after_search.rb +9 -3
  297. data/lib/algolia/models/insights/conversion_event.rb +2 -0
  298. data/lib/algolia/models/insights/converted_filters.rb +8 -3
  299. data/lib/algolia/models/insights/converted_object_ids.rb +8 -3
  300. data/lib/algolia/models/insights/converted_object_ids_after_search.rb +8 -3
  301. data/lib/algolia/models/insights/discount.rb +7 -6
  302. data/lib/algolia/models/insights/error_base.rb +2 -5
  303. data/lib/algolia/models/insights/events_items.rb +7 -6
  304. data/lib/algolia/models/insights/events_response.rb +2 -5
  305. data/lib/algolia/models/insights/insights_events.rb +2 -5
  306. data/lib/algolia/models/insights/object_data.rb +2 -5
  307. data/lib/algolia/models/insights/object_data_after_search.rb +2 -5
  308. data/lib/algolia/models/insights/price.rb +7 -6
  309. data/lib/algolia/models/insights/purchase_event.rb +2 -0
  310. data/lib/algolia/models/insights/purchased_object_ids.rb +9 -3
  311. data/lib/algolia/models/insights/purchased_object_ids_after_search.rb +10 -3
  312. data/lib/algolia/models/insights/value.rb +7 -6
  313. data/lib/algolia/models/insights/view_event.rb +2 -0
  314. data/lib/algolia/models/insights/viewed_filters.rb +8 -3
  315. data/lib/algolia/models/insights/viewed_object_ids.rb +8 -3
  316. data/lib/algolia/models/monitoring/error_base.rb +2 -5
  317. data/lib/algolia/models/monitoring/incident.rb +2 -5
  318. data/lib/algolia/models/monitoring/incident_entry.rb +2 -5
  319. data/lib/algolia/models/monitoring/incidents_response.rb +2 -5
  320. data/lib/algolia/models/monitoring/indexing_metric.rb +2 -5
  321. data/lib/algolia/models/monitoring/indexing_time_response.rb +2 -5
  322. data/lib/algolia/models/monitoring/infrastructure_response.rb +2 -5
  323. data/lib/algolia/models/monitoring/inventory_response.rb +2 -5
  324. data/lib/algolia/models/monitoring/latency_metric.rb +2 -5
  325. data/lib/algolia/models/monitoring/latency_response.rb +2 -5
  326. data/lib/algolia/models/monitoring/metric.rb +2 -0
  327. data/lib/algolia/models/monitoring/metrics.rb +2 -5
  328. data/lib/algolia/models/monitoring/period.rb +2 -0
  329. data/lib/algolia/models/monitoring/probes_metric.rb +2 -5
  330. data/lib/algolia/models/monitoring/region.rb +2 -0
  331. data/lib/algolia/models/monitoring/server.rb +2 -5
  332. data/lib/algolia/models/monitoring/server_status.rb +2 -0
  333. data/lib/algolia/models/monitoring/status.rb +2 -0
  334. data/lib/algolia/models/monitoring/status_response.rb +2 -5
  335. data/lib/algolia/models/monitoring/time_entry.rb +2 -5
  336. data/lib/algolia/models/monitoring/type.rb +2 -0
  337. data/lib/algolia/models/personalization/delete_user_profile_response.rb +2 -5
  338. data/lib/algolia/models/personalization/error_base.rb +2 -5
  339. data/lib/algolia/models/personalization/event_type.rb +2 -0
  340. data/lib/algolia/models/personalization/{event_scoring.rb → events_scoring.rb} +5 -8
  341. data/lib/algolia/models/personalization/{facet_scoring.rb → facets_scoring.rb} +5 -8
  342. data/lib/algolia/models/personalization/get_user_token_response.rb +2 -5
  343. data/lib/algolia/models/personalization/personalization_strategy_params.rb +19 -22
  344. data/lib/algolia/models/personalization/set_personalization_strategy_response.rb +2 -5
  345. data/lib/algolia/models/query-suggestions/base_response.rb +2 -5
  346. data/lib/algolia/models/query-suggestions/config_status.rb +2 -5
  347. data/lib/algolia/models/query-suggestions/configuration.rb +2 -5
  348. data/lib/algolia/models/query-suggestions/configuration_response.rb +2 -5
  349. data/lib/algolia/models/query-suggestions/configuration_with_index.rb +2 -5
  350. data/lib/algolia/models/query-suggestions/error_base.rb +2 -5
  351. data/lib/algolia/models/query-suggestions/facet.rb +2 -5
  352. data/lib/algolia/models/query-suggestions/languages.rb +7 -6
  353. data/lib/algolia/models/query-suggestions/log_file.rb +2 -5
  354. data/lib/algolia/models/query-suggestions/log_level.rb +2 -0
  355. data/lib/algolia/models/query-suggestions/source_index.rb +2 -5
  356. data/lib/algolia/models/recommend/advanced_syntax_features.rb +2 -0
  357. data/lib/algolia/models/recommend/alternatives_as_exact.rb +2 -0
  358. data/lib/algolia/models/recommend/around_precision.rb +7 -6
  359. data/lib/algolia/models/recommend/around_radius.rb +7 -6
  360. data/lib/algolia/models/recommend/around_radius_all.rb +2 -0
  361. data/lib/algolia/models/recommend/auto_facet_filter.rb +2 -5
  362. data/lib/algolia/models/recommend/banner.rb +3 -6
  363. data/lib/algolia/models/recommend/banner_image.rb +3 -6
  364. data/lib/algolia/models/recommend/banner_image_url.rb +3 -6
  365. data/lib/algolia/models/recommend/banner_link.rb +3 -6
  366. data/lib/algolia/models/recommend/boolean_string.rb +2 -0
  367. data/lib/algolia/models/recommend/bought_together_query.rb +10 -13
  368. data/lib/algolia/models/recommend/condition.rb +2 -5
  369. data/lib/algolia/models/recommend/consequence.rb +2 -5
  370. data/lib/algolia/models/recommend/deleted_at_response.rb +2 -5
  371. data/lib/algolia/models/recommend/distinct.rb +7 -6
  372. data/lib/algolia/models/recommend/error_base.rb +2 -5
  373. data/lib/algolia/models/recommend/exact_on_single_word_query.rb +2 -0
  374. data/lib/algolia/models/recommend/exhaustive.rb +2 -5
  375. data/lib/algolia/models/recommend/facet_filters.rb +7 -6
  376. data/lib/algolia/models/recommend/facet_ordering.rb +2 -5
  377. data/lib/algolia/models/recommend/facet_stats.rb +2 -5
  378. data/lib/algolia/models/recommend/fallback_params.rb +26 -5
  379. data/lib/algolia/models/recommend/fbt_model.rb +2 -0
  380. data/lib/algolia/models/recommend/get_recommend_task_response.rb +2 -5
  381. data/lib/algolia/models/recommend/get_recommendations_params.rb +2 -5
  382. data/lib/algolia/models/recommend/get_recommendations_response.rb +2 -5
  383. data/lib/algolia/models/recommend/hide_consequence_object.rb +9 -12
  384. data/lib/algolia/models/recommend/highlight_result.rb +7 -6
  385. data/lib/algolia/models/recommend/highlight_result_option.rb +8 -3
  386. data/lib/algolia/models/recommend/ignore_plurals.rb +7 -6
  387. data/lib/algolia/models/recommend/index_settings_facets.rb +2 -5
  388. data/lib/algolia/models/recommend/inside_bounding_box.rb +7 -6
  389. data/lib/algolia/models/recommend/looking_similar_model.rb +2 -0
  390. data/lib/algolia/models/recommend/looking_similar_query.rb +10 -13
  391. data/lib/algolia/models/recommend/match_level.rb +2 -0
  392. data/lib/algolia/models/recommend/matched_geo_location.rb +2 -5
  393. data/lib/algolia/models/recommend/numeric_filters.rb +7 -6
  394. data/lib/algolia/models/recommend/optional_filters.rb +8 -7
  395. data/lib/algolia/models/recommend/optional_words.rb +7 -6
  396. data/lib/algolia/models/recommend/params_consequence.rb +2 -5
  397. data/lib/algolia/models/recommend/personalization.rb +2 -5
  398. data/lib/algolia/models/recommend/promote_consequence_object.rb +9 -12
  399. data/lib/algolia/models/recommend/query_type.rb +2 -0
  400. data/lib/algolia/models/recommend/range.rb +2 -5
  401. data/lib/algolia/models/recommend/ranking_info.rb +2 -5
  402. data/lib/algolia/models/recommend/re_ranking_apply_filter.rb +7 -6
  403. data/lib/algolia/models/recommend/recommend_hit.rb +15 -11
  404. data/lib/algolia/models/recommend/recommend_models.rb +2 -0
  405. data/lib/algolia/models/recommend/recommend_rule.rb +9 -12
  406. data/lib/algolia/models/recommend/recommend_search_params.rb +26 -5
  407. data/lib/algolia/models/recommend/recommend_updated_at_response.rb +2 -5
  408. data/lib/algolia/models/recommend/recommendations_hit.rb +7 -6
  409. data/lib/algolia/models/recommend/recommendations_request.rb +7 -6
  410. data/lib/algolia/models/recommend/recommendations_results.rb +2 -5
  411. data/lib/algolia/models/recommend/redirect.rb +2 -5
  412. data/lib/algolia/models/recommend/redirect_rule_index_data.rb +2 -5
  413. data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +2 -5
  414. data/lib/algolia/models/recommend/redirect_url.rb +2 -5
  415. data/lib/algolia/models/recommend/related_model.rb +2 -0
  416. data/lib/algolia/models/recommend/related_query.rb +10 -13
  417. data/lib/algolia/models/recommend/remove_stop_words.rb +7 -6
  418. data/lib/algolia/models/recommend/remove_words_if_no_results.rb +2 -0
  419. data/lib/algolia/models/recommend/rendering_content.rb +2 -5
  420. data/lib/algolia/models/recommend/rule_metadata.rb +2 -5
  421. data/lib/algolia/models/recommend/search_recommend_rules_params.rb +2 -5
  422. data/lib/algolia/models/recommend/search_recommend_rules_response.rb +2 -5
  423. data/lib/algolia/models/recommend/snippet_result.rb +7 -6
  424. data/lib/algolia/models/recommend/snippet_result_option.rb +7 -3
  425. data/lib/algolia/models/recommend/sort_remaining_by.rb +2 -0
  426. data/lib/algolia/models/recommend/supported_language.rb +2 -0
  427. data/lib/algolia/models/recommend/tag_filters.rb +7 -6
  428. data/lib/algolia/models/recommend/task_status.rb +2 -0
  429. data/lib/algolia/models/recommend/time_range.rb +2 -5
  430. data/lib/algolia/models/recommend/trending_facet_hit.rb +8 -3
  431. data/lib/algolia/models/recommend/trending_facets_model.rb +2 -0
  432. data/lib/algolia/models/recommend/trending_facets_query.rb +2 -5
  433. data/lib/algolia/models/recommend/trending_items_model.rb +2 -0
  434. data/lib/algolia/models/recommend/trending_items_query.rb +2 -5
  435. data/lib/algolia/models/recommend/typo_tolerance.rb +7 -6
  436. data/lib/algolia/models/recommend/typo_tolerance_enum.rb +2 -0
  437. data/lib/algolia/models/recommend/value.rb +2 -5
  438. data/lib/algolia/models/recommend/widgets.rb +4 -7
  439. data/lib/algolia/models/search/acl.rb +2 -0
  440. data/lib/algolia/models/search/action.rb +2 -0
  441. data/lib/algolia/models/search/add_api_key_response.rb +2 -5
  442. data/lib/algolia/models/search/advanced_syntax_features.rb +2 -0
  443. data/lib/algolia/models/search/alternatives_as_exact.rb +2 -0
  444. data/lib/algolia/models/search/anchoring.rb +2 -0
  445. data/lib/algolia/models/search/api_key.rb +2 -5
  446. data/lib/algolia/models/search/api_key_operation.rb +2 -0
  447. data/lib/algolia/models/search/around_precision.rb +7 -6
  448. data/lib/algolia/models/search/around_radius.rb +7 -6
  449. data/lib/algolia/models/search/around_radius_all.rb +2 -0
  450. data/lib/algolia/models/search/assign_user_id_params.rb +2 -5
  451. data/lib/algolia/models/search/attribute_to_update.rb +7 -6
  452. data/lib/algolia/models/search/automatic_facet_filter.rb +2 -5
  453. data/lib/algolia/models/search/automatic_facet_filters.rb +7 -6
  454. data/lib/algolia/models/search/banner.rb +3 -6
  455. data/lib/algolia/models/search/banner_image.rb +3 -6
  456. data/lib/algolia/models/search/banner_image_url.rb +3 -6
  457. data/lib/algolia/models/search/banner_link.rb +3 -6
  458. data/lib/algolia/models/search/batch_assign_user_ids_params.rb +2 -5
  459. data/lib/algolia/models/search/batch_dictionary_entries_params.rb +2 -5
  460. data/lib/algolia/models/search/batch_dictionary_entries_request.rb +2 -5
  461. data/lib/algolia/models/search/batch_params.rb +2 -5
  462. data/lib/algolia/models/search/batch_request.rb +2 -5
  463. data/lib/algolia/models/search/batch_response.rb +2 -5
  464. data/lib/algolia/models/search/batch_write_params.rb +2 -5
  465. data/lib/algolia/models/search/boolean_string.rb +2 -0
  466. data/lib/algolia/models/search/browse_params.rb +7 -6
  467. data/lib/algolia/models/search/browse_params_object.rb +2 -29
  468. data/lib/algolia/models/search/browse_response.rb +2 -5
  469. data/lib/algolia/models/search/built_in_operation.rb +2 -5
  470. data/lib/algolia/models/search/built_in_operation_type.rb +2 -0
  471. data/lib/algolia/models/search/built_in_operation_value.rb +7 -6
  472. data/lib/algolia/models/search/condition.rb +2 -5
  473. data/lib/algolia/models/search/consequence.rb +2 -5
  474. data/lib/algolia/models/search/consequence_hide.rb +10 -13
  475. data/lib/algolia/models/search/consequence_params.rb +2 -29
  476. data/lib/algolia/models/search/consequence_query.rb +7 -6
  477. data/lib/algolia/models/search/consequence_query_object.rb +2 -5
  478. data/lib/algolia/models/search/created_at_response.rb +2 -5
  479. data/lib/algolia/models/search/delete_api_key_response.rb +2 -5
  480. data/lib/algolia/models/search/delete_by_params.rb +2 -5
  481. data/lib/algolia/models/search/delete_source_response.rb +2 -5
  482. data/lib/algolia/models/search/deleted_at_response.rb +2 -5
  483. data/lib/algolia/models/search/dictionary_action.rb +2 -0
  484. data/lib/algolia/models/search/dictionary_entry.rb +10 -13
  485. data/lib/algolia/models/search/dictionary_entry_state.rb +2 -0
  486. data/lib/algolia/models/search/dictionary_entry_type.rb +2 -0
  487. data/lib/algolia/models/search/dictionary_language.rb +2 -5
  488. data/lib/algolia/models/search/dictionary_settings_params.rb +2 -5
  489. data/lib/algolia/models/search/dictionary_type.rb +2 -0
  490. data/lib/algolia/models/search/distinct.rb +7 -6
  491. data/lib/algolia/models/search/edit.rb +2 -5
  492. data/lib/algolia/models/search/edit_type.rb +2 -0
  493. data/lib/algolia/models/search/error_base.rb +2 -5
  494. data/lib/algolia/models/search/exact_on_single_word_query.rb +2 -0
  495. data/lib/algolia/models/search/exhaustive.rb +2 -5
  496. data/lib/algolia/models/search/facet_filters.rb +7 -6
  497. data/lib/algolia/models/search/facet_hits.rb +2 -5
  498. data/lib/algolia/models/search/facet_ordering.rb +2 -5
  499. data/lib/algolia/models/search/facet_stats.rb +2 -5
  500. data/lib/algolia/models/search/facets.rb +2 -5
  501. data/lib/algolia/models/search/fetched_index.rb +2 -5
  502. data/lib/algolia/models/search/get_api_key_response.rb +2 -5
  503. data/lib/algolia/models/search/get_dictionary_settings_response.rb +2 -5
  504. data/lib/algolia/models/search/get_logs_response.rb +2 -5
  505. data/lib/algolia/models/search/get_objects_params.rb +2 -5
  506. data/lib/algolia/models/search/get_objects_request.rb +10 -13
  507. data/lib/algolia/models/search/get_objects_response.rb +2 -5
  508. data/lib/algolia/models/search/get_task_response.rb +2 -5
  509. data/lib/algolia/models/search/get_top_user_ids_response.rb +2 -5
  510. data/lib/algolia/models/search/has_pending_mappings_response.rb +2 -5
  511. data/lib/algolia/models/search/highlight_result.rb +7 -6
  512. data/lib/algolia/models/search/highlight_result_option.rb +8 -3
  513. data/lib/algolia/models/search/hit.rb +10 -13
  514. data/lib/algolia/models/search/ignore_plurals.rb +7 -6
  515. data/lib/algolia/models/search/index_settings.rb +26 -29
  516. data/lib/algolia/models/search/inside_bounding_box.rb +7 -6
  517. data/lib/algolia/models/search/languages.rb +2 -5
  518. data/lib/algolia/models/search/list_api_keys_response.rb +2 -5
  519. data/lib/algolia/models/search/list_clusters_response.rb +2 -5
  520. data/lib/algolia/models/search/list_indices_response.rb +2 -5
  521. data/lib/algolia/models/search/list_user_ids_response.rb +2 -5
  522. data/lib/algolia/models/search/log.rb +2 -5
  523. data/lib/algolia/models/search/log_query.rb +2 -5
  524. data/lib/algolia/models/search/log_type.rb +2 -0
  525. data/lib/algolia/models/search/match_level.rb +2 -0
  526. data/lib/algolia/models/search/matched_geo_location.rb +2 -5
  527. data/lib/algolia/models/search/mode.rb +2 -0
  528. data/lib/algolia/models/search/multiple_batch_request.rb +2 -5
  529. data/lib/algolia/models/search/multiple_batch_response.rb +2 -5
  530. data/lib/algolia/models/search/numeric_filters.rb +7 -6
  531. data/lib/algolia/models/search/operation_index_params.rb +2 -5
  532. data/lib/algolia/models/search/operation_type.rb +2 -0
  533. data/lib/algolia/models/search/optional_filters.rb +8 -7
  534. data/lib/algolia/models/search/optional_words.rb +7 -6
  535. data/lib/algolia/models/search/personalization.rb +2 -5
  536. data/lib/algolia/models/search/promote.rb +7 -6
  537. data/lib/algolia/models/search/promote_object_id.rb +15 -11
  538. data/lib/algolia/models/search/promote_object_ids.rb +7 -3
  539. data/lib/algolia/models/search/query_type.rb +2 -0
  540. data/lib/algolia/models/search/range.rb +2 -5
  541. data/lib/algolia/models/search/ranking_info.rb +2 -5
  542. data/lib/algolia/models/search/re_ranking_apply_filter.rb +7 -6
  543. data/lib/algolia/models/search/redirect.rb +2 -5
  544. data/lib/algolia/models/search/redirect_rule_index_data.rb +2 -5
  545. data/lib/algolia/models/search/redirect_rule_index_metadata.rb +2 -5
  546. data/lib/algolia/models/search/redirect_url.rb +2 -5
  547. data/lib/algolia/models/search/remove_stop_words.rb +7 -6
  548. data/lib/algolia/models/search/remove_user_id_response.rb +2 -5
  549. data/lib/algolia/models/search/remove_words_if_no_results.rb +2 -0
  550. data/lib/algolia/models/search/rendering_content.rb +2 -5
  551. data/lib/algolia/models/search/replace_all_objects_response.rb +2 -5
  552. data/lib/algolia/models/search/replace_source_response.rb +2 -5
  553. data/lib/algolia/models/search/rule.rb +10 -13
  554. data/lib/algolia/models/search/save_object_response.rb +9 -12
  555. data/lib/algolia/models/search/save_synonym_response.rb +2 -5
  556. data/lib/algolia/models/search/scope_type.rb +2 -0
  557. data/lib/algolia/models/search/search_dictionary_entries_params.rb +2 -5
  558. data/lib/algolia/models/search/search_dictionary_entries_response.rb +2 -5
  559. data/lib/algolia/models/search/search_for_facet_values_request.rb +2 -5
  560. data/lib/algolia/models/search/search_for_facet_values_response.rb +7 -3
  561. data/lib/algolia/models/search/search_for_facets.rb +8 -27
  562. data/lib/algolia/models/search/search_for_hits.rb +2 -29
  563. data/lib/algolia/models/search/search_method_params.rb +2 -5
  564. data/lib/algolia/models/search/search_params.rb +7 -6
  565. data/lib/algolia/models/search/search_params_object.rb +2 -29
  566. data/lib/algolia/models/search/search_params_string.rb +7 -3
  567. data/lib/algolia/models/search/search_query.rb +7 -6
  568. data/lib/algolia/models/search/search_response.rb +2 -5
  569. data/lib/algolia/models/search/search_responses.rb +2 -5
  570. data/lib/algolia/models/search/search_result.rb +7 -6
  571. data/lib/algolia/models/search/search_rules_params.rb +2 -5
  572. data/lib/algolia/models/search/search_rules_response.rb +2 -5
  573. data/lib/algolia/models/search/search_strategy.rb +2 -0
  574. data/lib/algolia/models/search/search_synonyms_params.rb +2 -5
  575. data/lib/algolia/models/search/search_synonyms_response.rb +2 -5
  576. data/lib/algolia/models/search/search_type_default.rb +2 -0
  577. data/lib/algolia/models/search/search_type_facet.rb +2 -0
  578. data/lib/algolia/models/search/search_user_ids_params.rb +2 -5
  579. data/lib/algolia/models/search/search_user_ids_response.rb +2 -5
  580. data/lib/algolia/models/search/secured_api_key_restrictions.rb +2 -5
  581. data/lib/algolia/models/search/semantic_search.rb +2 -5
  582. data/lib/algolia/models/search/settings_response.rb +26 -29
  583. data/lib/algolia/models/search/snippet_result.rb +7 -6
  584. data/lib/algolia/models/search/snippet_result_option.rb +7 -3
  585. data/lib/algolia/models/search/sort_remaining_by.rb +2 -0
  586. data/lib/algolia/models/search/source.rb +2 -5
  587. data/lib/algolia/models/search/standard_entries.rb +2 -5
  588. data/lib/algolia/models/search/supported_language.rb +2 -0
  589. data/lib/algolia/models/search/synonym_hit.rb +10 -13
  590. data/lib/algolia/models/search/synonym_type.rb +2 -0
  591. data/lib/algolia/models/search/tag_filters.rb +7 -6
  592. data/lib/algolia/models/search/task_status.rb +2 -0
  593. data/lib/algolia/models/search/time_range.rb +2 -5
  594. data/lib/algolia/models/search/typo_tolerance.rb +7 -6
  595. data/lib/algolia/models/search/typo_tolerance_enum.rb +2 -0
  596. data/lib/algolia/models/search/update_api_key_response.rb +2 -5
  597. data/lib/algolia/models/search/updated_at_response.rb +2 -5
  598. data/lib/algolia/models/search/updated_at_with_object_id_response.rb +9 -12
  599. data/lib/algolia/models/search/user_highlight_result.rb +2 -5
  600. data/lib/algolia/models/search/user_hit.rb +10 -13
  601. data/lib/algolia/models/search/user_id.rb +2 -5
  602. data/lib/algolia/models/search/value.rb +2 -5
  603. data/lib/algolia/models/search/widgets.rb +4 -7
  604. data/lib/algolia/version.rb +3 -1
  605. metadata +60 -11
@@ -0,0 +1,250 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module Composition
10
+ # Whether certain properties of the search response are calculated exhaustive (exact) or approximated.
11
+ class Exhaustive
12
+ # Whether the facet count is exhaustive (`true`) or approximate (`false`). See the [related discussion](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
13
+ attr_accessor :facets_count
14
+
15
+ # The value is `false` if not all facet values are retrieved.
16
+ attr_accessor :facet_values
17
+
18
+ # Whether the `nbHits` is exhaustive (`true`) or approximate (`false`). When the query takes more than 50ms to be processed, the engine makes an approximation. This can happen when using complex filters on millions of records, when typo-tolerance was not exhaustive, or when enough hits have been retrieved (for example, after the engine finds 10,000 exact matches). `nbHits` is reported as non-exhaustive whenever an approximation is made, even if the approximation didn’t, in the end, impact the exhaustivity of the query.
19
+ attr_accessor :nb_hits
20
+
21
+ # Rules matching exhaustivity. The value is `false` if rules were enable for this query, and could not be fully processed due a timeout. This is generally caused by the number of alternatives (such as typos) which is too large.
22
+ attr_accessor :rules_match
23
+
24
+ # Whether the typo search was exhaustive (`true`) or approximate (`false`). An approximation is done when the typo search query part takes more than 10% of the query budget (ie. 5ms by default) to be processed (this can happen when a lot of typo alternatives exist for the query). This field will not be included when typo-tolerance is entirely disabled.
25
+ attr_accessor :typo
26
+
27
+ # Attribute mapping from ruby-style variable name to JSON key.
28
+ def self.attribute_map
29
+ {
30
+ :facets_count => :facetsCount,
31
+ :facet_values => :facetValues,
32
+ :nb_hits => :nbHits,
33
+ :rules_match => :rulesMatch,
34
+ :typo => :typo
35
+ }
36
+ end
37
+
38
+ # Attribute type mapping.
39
+ def self.types_mapping
40
+ {
41
+ :facets_count => :"Boolean",
42
+ :facet_values => :"Boolean",
43
+ :nb_hits => :"Boolean",
44
+ :rules_match => :"Boolean",
45
+ :typo => :"Boolean"
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new(
52
+ []
53
+ )
54
+ end
55
+
56
+ # Initializes the object
57
+ # @param [Hash] attributes Model attributes in the form of hash
58
+ def initialize(attributes = {})
59
+ if (!attributes.is_a?(Hash))
60
+ raise(
61
+ ArgumentError,
62
+ "The input argument (attributes) must be a hash in `Algolia::Exhaustive` initialize method"
63
+ )
64
+ end
65
+
66
+ # check to see if the attribute exists and convert string to symbol for hash key
67
+ attributes = attributes.each_with_object({}) { |(k, v), h|
68
+ if (!self.class.attribute_map.key?(k.to_sym))
69
+ raise(
70
+ ArgumentError,
71
+ "`#{k}` is not a valid attribute in `Algolia::Exhaustive`. Please check the name to make sure it's valid. List of attributes: " +
72
+ self.class.attribute_map.keys.inspect
73
+ )
74
+ end
75
+
76
+ h[k.to_sym] = v
77
+ }
78
+
79
+ if attributes.key?(:facets_count)
80
+ self.facets_count = attributes[:facets_count]
81
+ end
82
+
83
+ if attributes.key?(:facet_values)
84
+ self.facet_values = attributes[:facet_values]
85
+ end
86
+
87
+ if attributes.key?(:nb_hits)
88
+ self.nb_hits = attributes[:nb_hits]
89
+ end
90
+
91
+ if attributes.key?(:rules_match)
92
+ self.rules_match = attributes[:rules_match]
93
+ end
94
+
95
+ if attributes.key?(:typo)
96
+ self.typo = attributes[:typo]
97
+ end
98
+ end
99
+
100
+ # Checks equality by comparing each attribute.
101
+ # @param [Object] Object to be compared
102
+ def ==(other)
103
+ return true if self.equal?(other)
104
+ self.class == other.class &&
105
+ facets_count == other.facets_count &&
106
+ facet_values == other.facet_values &&
107
+ nb_hits == other.nb_hits &&
108
+ rules_match == other.rules_match &&
109
+ typo == other.typo
110
+ end
111
+
112
+ # @see the `==` method
113
+ # @param [Object] Object to be compared
114
+ def eql?(other)
115
+ self == other
116
+ end
117
+
118
+ # Calculates hash code according to all attributes.
119
+ # @return [Integer] Hash code
120
+ def hash
121
+ [facets_count, facet_values, nb_hits, rules_match, typo].hash
122
+ end
123
+
124
+ # Builds the object from hash
125
+ # @param [Hash] attributes Model attributes in the form of hash
126
+ # @return [Object] Returns the model itself
127
+ def self.build_from_hash(attributes)
128
+ return nil unless attributes.is_a?(Hash)
129
+ attributes = attributes.transform_keys(&:to_sym)
130
+ transformed_hash = {}
131
+ types_mapping.each_pair do |key, type|
132
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
133
+ transformed_hash[key.to_sym] = nil
134
+ elsif type =~ /\AArray<(.*)>/i
135
+ # check to ensure the input is an array given that the attribute
136
+ # is documented as an array but the input is not
137
+ if attributes[attribute_map[key]].is_a?(Array)
138
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
139
+ _deserialize(::Regexp.last_match(1), v)
140
+ }
141
+ end
142
+ elsif !attributes[attribute_map[key]].nil?
143
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
144
+ end
145
+ end
146
+
147
+ new(transformed_hash)
148
+ end
149
+
150
+ # Deserializes the data based on type
151
+ # @param string type Data type
152
+ # @param string value Value to be deserialized
153
+ # @return [Object] Deserialized data
154
+ def self._deserialize(type, value)
155
+ case type.to_sym
156
+ when :Time
157
+ Time.parse(value)
158
+ when :Date
159
+ Date.parse(value)
160
+ when :String
161
+ value.to_s
162
+ when :Integer
163
+ value.to_i
164
+ when :Float
165
+ value.to_f
166
+ when :Boolean
167
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
168
+ true
169
+ else
170
+ false
171
+ end
172
+
173
+ when :Object
174
+ # generic object (usually a Hash), return directly
175
+ value
176
+ when /\AArray<(?<inner_type>.+)>\z/
177
+ inner_type = Regexp.last_match[:inner_type]
178
+ value.map { |v| _deserialize(inner_type, v) }
179
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
180
+ k_type = Regexp.last_match[:k_type]
181
+ v_type = Regexp.last_match[:v_type]
182
+ {}.tap do |hash|
183
+ value.each do |k, v|
184
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
185
+ end
186
+ end
187
+ # model
188
+ else
189
+ # models (e.g. Pet) or oneOf
190
+ klass = Algolia::Composition.const_get(type)
191
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
192
+ .build_from_hash(value)
193
+ end
194
+ end
195
+
196
+ # Returns the string representation of the object
197
+ # @return [String] String presentation of the object
198
+ def to_s
199
+ to_hash.to_s
200
+ end
201
+
202
+ # to_body is an alias to to_hash (backward compatibility)
203
+ # @return [Hash] Returns the object in the form of hash
204
+ def to_body
205
+ to_hash
206
+ end
207
+
208
+ def to_json(*_args)
209
+ to_hash.to_json
210
+ end
211
+
212
+ # Returns the object in the form of hash
213
+ # @return [Hash] Returns the object in the form of hash
214
+ def to_hash
215
+ hash = {}
216
+ self.class.attribute_map.each_pair do |attr, param|
217
+ value = send(attr)
218
+ if value.nil?
219
+ is_nullable = self.class.openapi_nullable.include?(attr)
220
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
221
+ end
222
+
223
+ hash[param] = _to_hash(value)
224
+ end
225
+
226
+ hash
227
+ end
228
+
229
+ # Outputs non-array value in the form of hash
230
+ # For object, use to_hash. Otherwise, just return the value
231
+ # @param [Object] value Any valid value
232
+ # @return [Hash] Returns the value in the form of hash
233
+ def _to_hash(value)
234
+ if value.is_a?(Array)
235
+ value.compact.map { |v| _to_hash(v) }
236
+ elsif value.is_a?(Hash)
237
+ {}.tap do |hash|
238
+ value.each { |k, v| hash[k] = _to_hash(v) }
239
+ end
240
+ elsif value.respond_to?(:to_hash)
241
+ value.to_hash
242
+ else
243
+ value
244
+ end
245
+ end
246
+
247
+ end
248
+
249
+ end
250
+ end
@@ -0,0 +1,110 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module Composition
10
+ # Filter the search by facet values, so that only records with the same facet values are retrieved. **Prefer using the `filters` parameter, which supports all filter types and combinations with boolean operators.** - `[filter1, filter2]` is interpreted as `filter1 AND filter2`. - `[[filter1, filter2], filter3]` is interpreted as `filter1 OR filter2 AND filter3`. - `facet:-value` is interpreted as `NOT facet:value`. While it's best to avoid attributes that start with a `-`, you can still filter them by escaping with a backslash: `facet:\\-value`.
11
+ module FacetFilters
12
+ class << self
13
+ # List of class defined in oneOf (OpenAPI v3)
14
+ def openapi_one_of
15
+ [
16
+ :"Array<FacetFilters>",
17
+ :"String"
18
+ ]
19
+ end
20
+
21
+ # Builds the object
22
+ # @param [Mixed] Data to be matched against the list of oneOf items
23
+ # @return [Object] Returns the model or the data itself
24
+ def build(data)
25
+ # Go through the list of oneOf items and attempt to identify the appropriate one.
26
+ # Note:
27
+ # - We do not attempt to check whether exactly one item matches.
28
+ # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
29
+ # due to the way the deserialization is made in the base_object template (it just casts without verifying).
30
+ # - TODO: scalar values are de facto behaving as if they were nullable.
31
+ # - TODO: logging when debugging is set.
32
+ openapi_one_of.each do |klass|
33
+ begin
34
+ # "nullable: true"
35
+ next if klass == :AnyType
36
+ typed_data = find_and_cast_into_type(klass, data)
37
+ return typed_data if typed_data
38
+ # rescue all errors so we keep iterating even if the current item lookup raises
39
+ rescue
40
+ end
41
+ end
42
+
43
+ openapi_one_of.include?(:AnyType) ? data : nil
44
+ end
45
+
46
+ private
47
+
48
+ SchemaMismatchError = Class.new(StandardError)
49
+
50
+ def find_and_cast_into_type(klass, data)
51
+ return if data.nil?
52
+
53
+ case klass.to_s
54
+ when "Boolean"
55
+ return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
56
+ when "Float"
57
+ return data if data.instance_of?(Float)
58
+ when "Integer"
59
+ return data if data.instance_of?(Integer)
60
+ when "Time"
61
+ return Time.parse(data)
62
+ when "Date"
63
+ return Date.parse(data)
64
+ when "String"
65
+ return data if data.instance_of?(String)
66
+ # "type: object"
67
+ when "Object"
68
+ return data if data.instance_of?(Hash)
69
+ # "type: array"
70
+ when /\AArray<(?<sub_type>.+)>\z/
71
+ if data.instance_of?(Array)
72
+ sub_type = Regexp.last_match[:sub_type]
73
+ return data.map { |item| find_and_cast_into_type(sub_type, item) }
74
+ end
75
+ # "type: object" with "additionalProperties: { ... }"
76
+ when /\AHash<String, (?<sub_type>.+)>\z/
77
+ if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
78
+ sub_type = Regexp.last_match[:sub_type]
79
+ return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
80
+ end
81
+ # model
82
+ else
83
+ const = Algolia::Composition.const_get(klass)
84
+ if const
85
+ if const.respond_to?(:openapi_one_of)
86
+ # nested oneOf model
87
+ model = const.build(data)
88
+ elsif const.respond_to?(:discriminator_attributes)
89
+ if const.discriminator_attributes.all? { |attr| data.key?(attr) }
90
+ model = const.build_from_hash(data)
91
+ end
92
+ else
93
+ # maybe it's an enum, or doens't have discriminators
94
+ model = const.build_from_hash(data)
95
+ end
96
+
97
+ return model if model
98
+ end
99
+ end
100
+
101
+ # if no match by now, raise
102
+ raise
103
+ rescue
104
+ raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
105
+ end
106
+ end
107
+ end
108
+
109
+ end
110
+ end
@@ -0,0 +1,235 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module Composition
10
+ class FacetHits
11
+ # Facet value.
12
+ attr_accessor :value
13
+
14
+ # Highlighted attribute value, including HTML tags.
15
+ attr_accessor :highlighted
16
+
17
+ # Number of records with this facet value. [The count may be approximated](https://support.algolia.com/hc/en-us/articles/4406975248145-Why-are-my-facet-and-hit-counts-not-accurate-).
18
+ attr_accessor :count
19
+
20
+ # Attribute mapping from ruby-style variable name to JSON key.
21
+ def self.attribute_map
22
+ {
23
+ :value => :value,
24
+ :highlighted => :highlighted,
25
+ :count => :count
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.types_mapping
31
+ {
32
+ :value => :"String",
33
+ :highlighted => :"String",
34
+ :count => :"Integer"
35
+ }
36
+ end
37
+
38
+ # List of attributes with nullable: true
39
+ def self.openapi_nullable
40
+ Set.new(
41
+ []
42
+ )
43
+ end
44
+
45
+ # Initializes the object
46
+ # @param [Hash] attributes Model attributes in the form of hash
47
+ def initialize(attributes = {})
48
+ if (!attributes.is_a?(Hash))
49
+ raise(
50
+ ArgumentError,
51
+ "The input argument (attributes) must be a hash in `Algolia::FacetHits` initialize method"
52
+ )
53
+ end
54
+
55
+ # check to see if the attribute exists and convert string to symbol for hash key
56
+ attributes = attributes.each_with_object({}) { |(k, v), h|
57
+ if (!self.class.attribute_map.key?(k.to_sym))
58
+ raise(
59
+ ArgumentError,
60
+ "`#{k}` is not a valid attribute in `Algolia::FacetHits`. Please check the name to make sure it's valid. List of attributes: " +
61
+ self.class.attribute_map.keys.inspect
62
+ )
63
+ end
64
+
65
+ h[k.to_sym] = v
66
+ }
67
+
68
+ if attributes.key?(:value)
69
+ self.value = attributes[:value]
70
+ else
71
+ self.value = nil
72
+ end
73
+
74
+ if attributes.key?(:highlighted)
75
+ self.highlighted = attributes[:highlighted]
76
+ else
77
+ self.highlighted = nil
78
+ end
79
+
80
+ if attributes.key?(:count)
81
+ self.count = attributes[:count]
82
+ else
83
+ self.count = nil
84
+ end
85
+ end
86
+
87
+ # Checks equality by comparing each attribute.
88
+ # @param [Object] Object to be compared
89
+ def ==(other)
90
+ return true if self.equal?(other)
91
+ self.class == other.class &&
92
+ value == other.value &&
93
+ highlighted == other.highlighted &&
94
+ count == other.count
95
+ end
96
+
97
+ # @see the `==` method
98
+ # @param [Object] Object to be compared
99
+ def eql?(other)
100
+ self == other
101
+ end
102
+
103
+ # Calculates hash code according to all attributes.
104
+ # @return [Integer] Hash code
105
+ def hash
106
+ [value, highlighted, count].hash
107
+ end
108
+
109
+ # Builds the object from hash
110
+ # @param [Hash] attributes Model attributes in the form of hash
111
+ # @return [Object] Returns the model itself
112
+ def self.build_from_hash(attributes)
113
+ return nil unless attributes.is_a?(Hash)
114
+ attributes = attributes.transform_keys(&:to_sym)
115
+ transformed_hash = {}
116
+ types_mapping.each_pair do |key, type|
117
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
118
+ transformed_hash[key.to_sym] = nil
119
+ elsif type =~ /\AArray<(.*)>/i
120
+ # check to ensure the input is an array given that the attribute
121
+ # is documented as an array but the input is not
122
+ if attributes[attribute_map[key]].is_a?(Array)
123
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
124
+ _deserialize(::Regexp.last_match(1), v)
125
+ }
126
+ end
127
+ elsif !attributes[attribute_map[key]].nil?
128
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
129
+ end
130
+ end
131
+
132
+ new(transformed_hash)
133
+ end
134
+
135
+ # Deserializes the data based on type
136
+ # @param string type Data type
137
+ # @param string value Value to be deserialized
138
+ # @return [Object] Deserialized data
139
+ def self._deserialize(type, value)
140
+ case type.to_sym
141
+ when :Time
142
+ Time.parse(value)
143
+ when :Date
144
+ Date.parse(value)
145
+ when :String
146
+ value.to_s
147
+ when :Integer
148
+ value.to_i
149
+ when :Float
150
+ value.to_f
151
+ when :Boolean
152
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
153
+ true
154
+ else
155
+ false
156
+ end
157
+
158
+ when :Object
159
+ # generic object (usually a Hash), return directly
160
+ value
161
+ when /\AArray<(?<inner_type>.+)>\z/
162
+ inner_type = Regexp.last_match[:inner_type]
163
+ value.map { |v| _deserialize(inner_type, v) }
164
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
165
+ k_type = Regexp.last_match[:k_type]
166
+ v_type = Regexp.last_match[:v_type]
167
+ {}.tap do |hash|
168
+ value.each do |k, v|
169
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
170
+ end
171
+ end
172
+ # model
173
+ else
174
+ # models (e.g. Pet) or oneOf
175
+ klass = Algolia::Composition.const_get(type)
176
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
177
+ .build_from_hash(value)
178
+ end
179
+ end
180
+
181
+ # Returns the string representation of the object
182
+ # @return [String] String presentation of the object
183
+ def to_s
184
+ to_hash.to_s
185
+ end
186
+
187
+ # to_body is an alias to to_hash (backward compatibility)
188
+ # @return [Hash] Returns the object in the form of hash
189
+ def to_body
190
+ to_hash
191
+ end
192
+
193
+ def to_json(*_args)
194
+ to_hash.to_json
195
+ end
196
+
197
+ # Returns the object in the form of hash
198
+ # @return [Hash] Returns the object in the form of hash
199
+ def to_hash
200
+ hash = {}
201
+ self.class.attribute_map.each_pair do |attr, param|
202
+ value = send(attr)
203
+ if value.nil?
204
+ is_nullable = self.class.openapi_nullable.include?(attr)
205
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
206
+ end
207
+
208
+ hash[param] = _to_hash(value)
209
+ end
210
+
211
+ hash
212
+ end
213
+
214
+ # Outputs non-array value in the form of hash
215
+ # For object, use to_hash. Otherwise, just return the value
216
+ # @param [Object] value Any valid value
217
+ # @return [Hash] Returns the value in the form of hash
218
+ def _to_hash(value)
219
+ if value.is_a?(Array)
220
+ value.compact.map { |v| _to_hash(v) }
221
+ elsif value.is_a?(Hash)
222
+ {}.tap do |hash|
223
+ value.each { |k, v| hash[k] = _to_hash(v) }
224
+ end
225
+ elsif value.respond_to?(:to_hash)
226
+ value.to_hash
227
+ else
228
+ value
229
+ end
230
+ end
231
+
232
+ end
233
+
234
+ end
235
+ end