algolia 2.3.4 → 3.0.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (602) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -93
  3. data/Gemfile +1 -14
  4. data/Gemfile.lock +64 -0
  5. data/README.md +4 -6
  6. data/Rakefile +0 -39
  7. data/algolia.gemspec +24 -39
  8. data/lib/algolia/api/abtesting_client.rb +418 -0
  9. data/lib/algolia/api/analytics_client.rb +1294 -0
  10. data/lib/algolia/api/ingestion_client.rb +1659 -0
  11. data/lib/algolia/api/insights_client.rb +252 -0
  12. data/lib/algolia/api/monitoring_client.rb +555 -0
  13. data/lib/algolia/api/personalization_client.rb +365 -0
  14. data/lib/algolia/api/query_suggestions_client.rb +491 -0
  15. data/lib/algolia/api/recommend_client.rb +460 -0
  16. data/lib/algolia/api/search_client.rb +2723 -0
  17. data/lib/algolia/api_client.rb +153 -0
  18. data/lib/algolia/api_error.rb +48 -0
  19. data/lib/algolia/configuration.rb +41 -0
  20. data/lib/algolia/logger_helper.rb +1 -1
  21. data/lib/algolia/models/abtesting/ab_test.rb +332 -0
  22. data/lib/algolia/models/abtesting/ab_test_response.rb +219 -0
  23. data/lib/algolia/models/abtesting/ab_tests_variant.rb +217 -0
  24. data/lib/algolia/models/abtesting/ab_tests_variant_search_params.rb +236 -0
  25. data/lib/algolia/models/abtesting/add_ab_tests_request.rb +239 -0
  26. data/lib/algolia/models/abtesting/add_ab_tests_variant.rb +96 -0
  27. data/lib/algolia/models/abtesting/currencies_value.rb +223 -0
  28. data/lib/algolia/models/abtesting/custom_search_params.rb +195 -0
  29. data/lib/algolia/models/abtesting/error_base.rb +196 -0
  30. data/lib/algolia/models/abtesting/filter_effects.rb +202 -0
  31. data/lib/algolia/models/abtesting/filter_effects_empty_search.rb +204 -0
  32. data/lib/algolia/models/abtesting/filter_effects_outliers.rb +204 -0
  33. data/lib/algolia/models/abtesting/list_ab_tests_response.rb +221 -0
  34. data/lib/algolia/models/abtesting/variant.rb +399 -0
  35. data/lib/algolia/models/analytics/average_click_event.rb +219 -0
  36. data/lib/algolia/models/analytics/click_position.rb +209 -0
  37. data/lib/algolia/models/analytics/click_through_rate_event.rb +249 -0
  38. data/lib/algolia/models/analytics/conversion_rate_event.rb +249 -0
  39. data/lib/algolia/models/analytics/direction.rb +33 -0
  40. data/lib/algolia/models/analytics/error_base.rb +196 -0
  41. data/lib/algolia/models/analytics/get_average_click_position_response.rb +221 -0
  42. data/lib/algolia/models/analytics/get_click_positions_response.rb +215 -0
  43. data/lib/algolia/models/analytics/get_click_through_rate_response.rb +251 -0
  44. data/lib/algolia/models/analytics/get_conversation_rate_response.rb +251 -0
  45. data/lib/algolia/models/analytics/get_no_click_rate_response.rb +251 -0
  46. data/lib/algolia/models/analytics/get_no_results_rate_response.rb +251 -0
  47. data/lib/algolia/models/analytics/get_searches_count_response.rb +209 -0
  48. data/lib/algolia/models/analytics/get_searches_no_clicks_response.rb +197 -0
  49. data/lib/algolia/models/analytics/get_searches_no_results_response.rb +197 -0
  50. data/lib/algolia/models/analytics/get_status_response.rb +195 -0
  51. data/lib/algolia/models/analytics/get_top_countries_response.rb +197 -0
  52. data/lib/algolia/models/analytics/get_top_filter_attribute.rb +207 -0
  53. data/lib/algolia/models/analytics/get_top_filter_attributes_response.rb +197 -0
  54. data/lib/algolia/models/analytics/get_top_filter_for_attribute.rb +231 -0
  55. data/lib/algolia/models/analytics/get_top_filter_for_attribute_response.rb +197 -0
  56. data/lib/algolia/models/analytics/get_top_filters_no_results_response.rb +197 -0
  57. data/lib/algolia/models/analytics/get_top_filters_no_results_value.rb +219 -0
  58. data/lib/algolia/models/analytics/get_top_filters_no_results_values.rb +209 -0
  59. data/lib/algolia/models/analytics/get_top_hits_response.rb +96 -0
  60. data/lib/algolia/models/analytics/get_top_searches_response.rb +96 -0
  61. data/lib/algolia/models/analytics/get_users_count_response.rb +209 -0
  62. data/lib/algolia/models/analytics/no_click_rate_event.rb +249 -0
  63. data/lib/algolia/models/analytics/no_results_rate_event.rb +249 -0
  64. data/lib/algolia/models/analytics/order_by.rb +35 -0
  65. data/lib/algolia/models/analytics/search_event.rb +207 -0
  66. data/lib/algolia/models/analytics/search_no_click_event.rb +219 -0
  67. data/lib/algolia/models/analytics/search_no_result_event.rb +219 -0
  68. data/lib/algolia/models/analytics/top_country.rb +207 -0
  69. data/lib/algolia/models/analytics/top_hit.rb +207 -0
  70. data/lib/algolia/models/analytics/top_hit_with_analytics.rb +285 -0
  71. data/lib/algolia/models/analytics/top_hits_response.rb +197 -0
  72. data/lib/algolia/models/analytics/top_hits_response_with_analytics.rb +197 -0
  73. data/lib/algolia/models/analytics/top_search.rb +219 -0
  74. data/lib/algolia/models/analytics/top_search_with_analytics.rb +309 -0
  75. data/lib/algolia/models/analytics/top_searches_response.rb +197 -0
  76. data/lib/algolia/models/analytics/top_searches_response_with_analytics.rb +197 -0
  77. data/lib/algolia/models/analytics/user_with_date.rb +207 -0
  78. data/lib/algolia/models/ingestion/action_type.rb +34 -0
  79. data/lib/algolia/models/ingestion/auth_algolia.rb +207 -0
  80. data/lib/algolia/models/ingestion/auth_algolia_partial.rb +203 -0
  81. data/lib/algolia/models/ingestion/auth_api_key.rb +195 -0
  82. data/lib/algolia/models/ingestion/auth_api_key_partial.rb +193 -0
  83. data/lib/algolia/models/ingestion/auth_basic.rb +206 -0
  84. data/lib/algolia/models/ingestion/auth_basic_partial.rb +202 -0
  85. data/lib/algolia/models/ingestion/auth_google_service_account.rb +208 -0
  86. data/lib/algolia/models/ingestion/auth_google_service_account_partial.rb +204 -0
  87. data/lib/algolia/models/ingestion/auth_input.rb +99 -0
  88. data/lib/algolia/models/ingestion/auth_input_partial.rb +99 -0
  89. data/lib/algolia/models/ingestion/auth_o_auth.rb +220 -0
  90. data/lib/algolia/models/ingestion/auth_o_auth_partial.rb +214 -0
  91. data/lib/algolia/models/ingestion/authentication.rb +283 -0
  92. data/lib/algolia/models/ingestion/authentication_create.rb +249 -0
  93. data/lib/algolia/models/ingestion/authentication_create_response.rb +220 -0
  94. data/lib/algolia/models/ingestion/authentication_search.rb +197 -0
  95. data/lib/algolia/models/ingestion/authentication_sort_keys.rb +36 -0
  96. data/lib/algolia/models/ingestion/authentication_type.rb +36 -0
  97. data/lib/algolia/models/ingestion/authentication_update.rb +243 -0
  98. data/lib/algolia/models/ingestion/authentication_update_response.rb +220 -0
  99. data/lib/algolia/models/ingestion/big_commerce_channel.rb +207 -0
  100. data/lib/algolia/models/ingestion/big_commerce_metafield.rb +207 -0
  101. data/lib/algolia/models/ingestion/big_query_data_type.rb +33 -0
  102. data/lib/algolia/models/ingestion/delete_response.rb +195 -0
  103. data/lib/algolia/models/ingestion/destination.rb +283 -0
  104. data/lib/algolia/models/ingestion/destination_create.rb +250 -0
  105. data/lib/algolia/models/ingestion/destination_create_response.rb +220 -0
  106. data/lib/algolia/models/ingestion/destination_index_name.rb +238 -0
  107. data/lib/algolia/models/ingestion/destination_index_prefix.rb +195 -0
  108. data/lib/algolia/models/ingestion/destination_input.rb +96 -0
  109. data/lib/algolia/models/ingestion/destination_search.rb +197 -0
  110. data/lib/algolia/models/ingestion/destination_sort_keys.rb +35 -0
  111. data/lib/algolia/models/ingestion/destination_type.rb +34 -0
  112. data/lib/algolia/models/ingestion/destination_update.rb +243 -0
  113. data/lib/algolia/models/ingestion/destination_update_response.rb +220 -0
  114. data/lib/algolia/models/ingestion/docker_image_type.rb +34 -0
  115. data/lib/algolia/models/ingestion/docker_registry.rb +33 -0
  116. data/lib/algolia/models/ingestion/docker_source_discover.rb +207 -0
  117. data/lib/algolia/models/ingestion/docker_source_streams.rb +196 -0
  118. data/lib/algolia/models/ingestion/error_base.rb +196 -0
  119. data/lib/algolia/models/ingestion/event.rb +311 -0
  120. data/lib/algolia/models/ingestion/event_sort_keys.rb +34 -0
  121. data/lib/algolia/models/ingestion/event_status.rb +37 -0
  122. data/lib/algolia/models/ingestion/event_type.rb +35 -0
  123. data/lib/algolia/models/ingestion/list_authentications_response.rb +207 -0
  124. data/lib/algolia/models/ingestion/list_destinations_response.rb +207 -0
  125. data/lib/algolia/models/ingestion/list_events_response.rb +218 -0
  126. data/lib/algolia/models/ingestion/list_sources_response.rb +207 -0
  127. data/lib/algolia/models/ingestion/list_tasks_response.rb +208 -0
  128. data/lib/algolia/models/ingestion/mapping_type_csv.rb +36 -0
  129. data/lib/algolia/models/ingestion/method_type.rb +33 -0
  130. data/lib/algolia/models/ingestion/on_demand_date_utils_input.rb +208 -0
  131. data/lib/algolia/models/ingestion/on_demand_trigger.rb +227 -0
  132. data/lib/algolia/models/ingestion/on_demand_trigger_input.rb +217 -0
  133. data/lib/algolia/models/ingestion/on_demand_trigger_type.rb +32 -0
  134. data/lib/algolia/models/ingestion/order_keys.rb +33 -0
  135. data/lib/algolia/models/ingestion/pagination.rb +227 -0
  136. data/lib/algolia/models/ingestion/platform.rb +33 -0
  137. data/lib/algolia/models/ingestion/platform_none.rb +32 -0
  138. data/lib/algolia/models/ingestion/platform_with_none.rb +96 -0
  139. data/lib/algolia/models/ingestion/record_type.rb +33 -0
  140. data/lib/algolia/models/ingestion/run.rb +359 -0
  141. data/lib/algolia/models/ingestion/run_list_response.rb +218 -0
  142. data/lib/algolia/models/ingestion/run_outcome.rb +34 -0
  143. data/lib/algolia/models/ingestion/run_progress.rb +201 -0
  144. data/lib/algolia/models/ingestion/run_reason_code.rb +38 -0
  145. data/lib/algolia/models/ingestion/run_response.rb +208 -0
  146. data/lib/algolia/models/ingestion/run_sort_keys.rb +34 -0
  147. data/lib/algolia/models/ingestion/run_status.rb +36 -0
  148. data/lib/algolia/models/ingestion/run_type.rb +34 -0
  149. data/lib/algolia/models/ingestion/schedule_date_utils_input.rb +214 -0
  150. data/lib/algolia/models/ingestion/schedule_trigger.rb +251 -0
  151. data/lib/algolia/models/ingestion/schedule_trigger_input.rb +229 -0
  152. data/lib/algolia/models/ingestion/schedule_trigger_type.rb +32 -0
  153. data/lib/algolia/models/ingestion/source.rb +282 -0
  154. data/lib/algolia/models/ingestion/source_big_commerce.rb +235 -0
  155. data/lib/algolia/models/ingestion/source_big_query.rb +278 -0
  156. data/lib/algolia/models/ingestion/source_commercetools.rb +238 -0
  157. data/lib/algolia/models/ingestion/source_create.rb +248 -0
  158. data/lib/algolia/models/ingestion/source_create_response.rb +218 -0
  159. data/lib/algolia/models/ingestion/source_csv.rb +276 -0
  160. data/lib/algolia/models/ingestion/source_docker.rb +261 -0
  161. data/lib/algolia/models/ingestion/source_input.rb +100 -0
  162. data/lib/algolia/models/ingestion/source_json.rb +236 -0
  163. data/lib/algolia/models/ingestion/source_search.rb +196 -0
  164. data/lib/algolia/models/ingestion/source_sort_keys.rb +35 -0
  165. data/lib/algolia/models/ingestion/source_type.rb +37 -0
  166. data/lib/algolia/models/ingestion/source_update.rb +211 -0
  167. data/lib/algolia/models/ingestion/source_update_commercetools.rb +207 -0
  168. data/lib/algolia/models/ingestion/source_update_docker.rb +246 -0
  169. data/lib/algolia/models/ingestion/source_update_input.rb +99 -0
  170. data/lib/algolia/models/ingestion/source_update_response.rb +218 -0
  171. data/lib/algolia/models/ingestion/subscription_trigger.rb +217 -0
  172. data/lib/algolia/models/ingestion/subscription_trigger_type.rb +32 -0
  173. data/lib/algolia/models/ingestion/task.rb +334 -0
  174. data/lib/algolia/models/ingestion/task_create.rb +299 -0
  175. data/lib/algolia/models/ingestion/task_create_response.rb +208 -0
  176. data/lib/algolia/models/ingestion/task_create_trigger.rb +97 -0
  177. data/lib/algolia/models/ingestion/task_input.rb +96 -0
  178. data/lib/algolia/models/ingestion/task_search.rb +196 -0
  179. data/lib/algolia/models/ingestion/task_sort_keys.rb +36 -0
  180. data/lib/algolia/models/ingestion/task_update.rb +250 -0
  181. data/lib/algolia/models/ingestion/task_update_response.rb +208 -0
  182. data/lib/algolia/models/ingestion/trigger.rb +97 -0
  183. data/lib/algolia/models/ingestion/trigger_type.rb +34 -0
  184. data/lib/algolia/models/ingestion/trigger_update_input.rb +196 -0
  185. data/lib/algolia/models/ingestion/window.rb +208 -0
  186. data/lib/algolia/models/insights/add_to_cart_event.rb +32 -0
  187. data/lib/algolia/models/insights/added_to_cart_object_ids.rb +384 -0
  188. data/lib/algolia/models/insights/added_to_cart_object_ids_after_search.rb +419 -0
  189. data/lib/algolia/models/insights/click_event.rb +32 -0
  190. data/lib/algolia/models/insights/clicked_filters.rb +351 -0
  191. data/lib/algolia/models/insights/clicked_object_ids.rb +341 -0
  192. data/lib/algolia/models/insights/clicked_object_ids_after_search.rb +418 -0
  193. data/lib/algolia/models/insights/conversion_event.rb +32 -0
  194. data/lib/algolia/models/insights/converted_filters.rb +350 -0
  195. data/lib/algolia/models/insights/converted_object_ids.rb +351 -0
  196. data/lib/algolia/models/insights/converted_object_ids_after_search.rb +386 -0
  197. data/lib/algolia/models/insights/discount.rb +97 -0
  198. data/lib/algolia/models/insights/error_base.rb +196 -0
  199. data/lib/algolia/models/insights/events_items.rb +106 -0
  200. data/lib/algolia/models/insights/events_response.rb +204 -0
  201. data/lib/algolia/models/insights/insights_events.rb +215 -0
  202. data/lib/algolia/models/insights/object_data.rb +211 -0
  203. data/lib/algolia/models/insights/object_data_after_search.rb +221 -0
  204. data/lib/algolia/models/insights/price.rb +97 -0
  205. data/lib/algolia/models/insights/purchase_event.rb +32 -0
  206. data/lib/algolia/models/insights/purchased_object_ids.rb +384 -0
  207. data/lib/algolia/models/insights/purchased_object_ids_after_search.rb +419 -0
  208. data/lib/algolia/models/insights/view_event.rb +32 -0
  209. data/lib/algolia/models/insights/viewed_filters.rb +351 -0
  210. data/lib/algolia/models/insights/viewed_object_ids.rb +351 -0
  211. data/lib/algolia/models/monitoring/error_base.rb +196 -0
  212. data/lib/algolia/models/monitoring/get_inventory403_response.rb +192 -0
  213. data/lib/algolia/models/monitoring/incident.rb +225 -0
  214. data/lib/algolia/models/monitoring/incidents_inner.rb +202 -0
  215. data/lib/algolia/models/monitoring/incidents_response.rb +194 -0
  216. data/lib/algolia/models/monitoring/indexing_time_response.rb +192 -0
  217. data/lib/algolia/models/monitoring/indexing_time_response_metrics.rb +194 -0
  218. data/lib/algolia/models/monitoring/infrastructure_response.rb +192 -0
  219. data/lib/algolia/models/monitoring/infrastructure_response_metrics.rb +243 -0
  220. data/lib/algolia/models/monitoring/inventory_response.rb +194 -0
  221. data/lib/algolia/models/monitoring/latency_response.rb +192 -0
  222. data/lib/algolia/models/monitoring/latency_response_metrics.rb +194 -0
  223. data/lib/algolia/models/monitoring/metric.rb +37 -0
  224. data/lib/algolia/models/monitoring/period.rb +36 -0
  225. data/lib/algolia/models/monitoring/probes_metric.rb +203 -0
  226. data/lib/algolia/models/monitoring/region.rb +46 -0
  227. data/lib/algolia/models/monitoring/server.rb +272 -0
  228. data/lib/algolia/models/monitoring/server_status.rb +32 -0
  229. data/lib/algolia/models/monitoring/status.rb +35 -0
  230. data/lib/algolia/models/monitoring/status_response.rb +194 -0
  231. data/lib/algolia/models/monitoring/time_inner.rb +203 -0
  232. data/lib/algolia/models/monitoring/type.rb +32 -0
  233. data/lib/algolia/models/personalization/delete_user_profile_response.rb +207 -0
  234. data/lib/algolia/models/personalization/error_base.rb +196 -0
  235. data/lib/algolia/models/personalization/event_scoring.rb +219 -0
  236. data/lib/algolia/models/personalization/facet_scoring.rb +207 -0
  237. data/lib/algolia/models/personalization/get_user_token_response.rb +219 -0
  238. data/lib/algolia/models/personalization/personalization_strategy_params.rb +223 -0
  239. data/lib/algolia/models/personalization/set_personalization_strategy_response.rb +195 -0
  240. data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_response.rb +223 -0
  241. data/lib/algolia/models/query-suggestions/base_query_suggestions_configuration_with_index.rb +195 -0
  242. data/lib/algolia/models/query-suggestions/base_response.rb +203 -0
  243. data/lib/algolia/models/query-suggestions/error_base.rb +196 -0
  244. data/lib/algolia/models/query-suggestions/facet.rb +204 -0
  245. data/lib/algolia/models/query-suggestions/get_config_status200_response.rb +233 -0
  246. data/lib/algolia/models/query-suggestions/get_log_file200_response.rb +244 -0
  247. data/lib/algolia/models/query-suggestions/languages.rb +97 -0
  248. data/lib/algolia/models/query-suggestions/log_level.rb +34 -0
  249. data/lib/algolia/models/query-suggestions/query_suggestions_configuration.rb +255 -0
  250. data/lib/algolia/models/query-suggestions/query_suggestions_configuration_response.rb +315 -0
  251. data/lib/algolia/models/query-suggestions/query_suggestions_configuration_with_index.rb +275 -0
  252. data/lib/algolia/models/query-suggestions/source_index.rb +305 -0
  253. data/lib/algolia/models/recommend/advanced_syntax_features.rb +33 -0
  254. data/lib/algolia/models/recommend/alternatives_as_exact.rb +34 -0
  255. data/lib/algolia/models/recommend/anchoring.rb +35 -0
  256. data/lib/algolia/models/recommend/around_precision.rb +97 -0
  257. data/lib/algolia/models/recommend/around_precision_from_value_inner.rb +201 -0
  258. data/lib/algolia/models/recommend/around_radius.rb +97 -0
  259. data/lib/algolia/models/recommend/around_radius_all.rb +32 -0
  260. data/lib/algolia/models/recommend/automatic_facet_filter.rb +216 -0
  261. data/lib/algolia/models/recommend/automatic_facet_filters.rb +97 -0
  262. data/lib/algolia/models/recommend/base_recommend_request.rb +233 -0
  263. data/lib/algolia/models/recommend/base_recommendations_query.rb +246 -0
  264. data/lib/algolia/models/recommend/base_recommended_for_you_query.rb +234 -0
  265. data/lib/algolia/models/recommend/base_recommended_for_you_query_parameters.rb +195 -0
  266. data/lib/algolia/models/recommend/base_search_params.rb +564 -0
  267. data/lib/algolia/models/recommend/base_search_params_without_query.rb +546 -0
  268. data/lib/algolia/models/recommend/base_search_response.rb +517 -0
  269. data/lib/algolia/models/recommend/base_trending_facets_query.rb +226 -0
  270. data/lib/algolia/models/recommend/base_trending_items_query.rb +252 -0
  271. data/lib/algolia/models/recommend/condition.rb +244 -0
  272. data/lib/algolia/models/recommend/consequence.rb +239 -0
  273. data/lib/algolia/models/recommend/consequence_hide.rb +196 -0
  274. data/lib/algolia/models/recommend/consequence_params.rb +1121 -0
  275. data/lib/algolia/models/recommend/consequence_query.rb +97 -0
  276. data/lib/algolia/models/recommend/consequence_query_object.rb +207 -0
  277. data/lib/algolia/models/recommend/deleted_at_response.rb +208 -0
  278. data/lib/algolia/models/recommend/distinct.rb +97 -0
  279. data/lib/algolia/models/recommend/edit.rb +234 -0
  280. data/lib/algolia/models/recommend/edit_type.rb +33 -0
  281. data/lib/algolia/models/recommend/error_base.rb +196 -0
  282. data/lib/algolia/models/recommend/exact_on_single_word_query.rb +34 -0
  283. data/lib/algolia/models/recommend/exhaustive.rb +234 -0
  284. data/lib/algolia/models/recommend/facet_filters.rb +97 -0
  285. data/lib/algolia/models/recommend/facet_ordering.rb +205 -0
  286. data/lib/algolia/models/recommend/facets.rb +196 -0
  287. data/lib/algolia/models/recommend/facets_stats.rb +223 -0
  288. data/lib/algolia/models/recommend/get_recommend_task_response.rb +216 -0
  289. data/lib/algolia/models/recommend/get_recommendations_params.rb +198 -0
  290. data/lib/algolia/models/recommend/get_recommendations_response.rb +194 -0
  291. data/lib/algolia/models/recommend/highlight_result.rb +96 -0
  292. data/lib/algolia/models/recommend/highlight_result_option.rb +253 -0
  293. data/lib/algolia/models/recommend/ignore_plurals.rb +97 -0
  294. data/lib/algolia/models/recommend/index_settings_as_search_params.rb +723 -0
  295. data/lib/algolia/models/recommend/match_level.rb +34 -0
  296. data/lib/algolia/models/recommend/matched_geo_location.rb +213 -0
  297. data/lib/algolia/models/recommend/mixed_search_filters.rb +96 -0
  298. data/lib/algolia/models/recommend/mode.rb +33 -0
  299. data/lib/algolia/models/recommend/numeric_filters.rb +97 -0
  300. data/lib/algolia/models/recommend/optional_filters.rb +97 -0
  301. data/lib/algolia/models/recommend/params.rb +220 -0
  302. data/lib/algolia/models/recommend/personalization.rb +213 -0
  303. data/lib/algolia/models/recommend/promote.rb +96 -0
  304. data/lib/algolia/models/recommend/promote_object_id.rb +208 -0
  305. data/lib/algolia/models/recommend/promote_object_ids.rb +210 -0
  306. data/lib/algolia/models/recommend/query_type.rb +34 -0
  307. data/lib/algolia/models/recommend/ranking_info.rb +328 -0
  308. data/lib/algolia/models/recommend/re_ranking_apply_filter.rb +97 -0
  309. data/lib/algolia/models/recommend/recommend_hit.rb +271 -0
  310. data/lib/algolia/models/recommend/recommend_models.rb +35 -0
  311. data/lib/algolia/models/recommend/recommendation_models.rb +33 -0
  312. data/lib/algolia/models/recommend/recommendations_hit.rb +96 -0
  313. data/lib/algolia/models/recommend/recommendations_hits.rb +216 -0
  314. data/lib/algolia/models/recommend/recommendations_query.rb +304 -0
  315. data/lib/algolia/models/recommend/recommendations_request.rb +98 -0
  316. data/lib/algolia/models/recommend/recommendations_results.rb +553 -0
  317. data/lib/algolia/models/recommend/recommended_for_you_model.rb +32 -0
  318. data/lib/algolia/models/recommend/recommended_for_you_query.rb +292 -0
  319. data/lib/algolia/models/recommend/recommended_for_you_query_parameters.rb +1105 -0
  320. data/lib/algolia/models/recommend/redirect.rb +195 -0
  321. data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +242 -0
  322. data/lib/algolia/models/recommend/redirect_rule_index_metadata_data.rb +195 -0
  323. data/lib/algolia/models/recommend/remove_stop_words.rb +97 -0
  324. data/lib/algolia/models/recommend/remove_words_if_no_results.rb +35 -0
  325. data/lib/algolia/models/recommend/rendering_content.rb +193 -0
  326. data/lib/algolia/models/recommend/rule_response.rb +246 -0
  327. data/lib/algolia/models/recommend/rule_response_metadata.rb +193 -0
  328. data/lib/algolia/models/recommend/search_params_object.rb +1103 -0
  329. data/lib/algolia/models/recommend/search_params_query.rb +193 -0
  330. data/lib/algolia/models/recommend/search_recommend_rules_params.rb +268 -0
  331. data/lib/algolia/models/recommend/search_recommend_rules_response.rb +233 -0
  332. data/lib/algolia/models/recommend/semantic_search.rb +198 -0
  333. data/lib/algolia/models/recommend/snippet_result.rb +96 -0
  334. data/lib/algolia/models/recommend/snippet_result_option.rb +229 -0
  335. data/lib/algolia/models/recommend/sort_remaining_by.rb +34 -0
  336. data/lib/algolia/models/recommend/tag_filters.rb +97 -0
  337. data/lib/algolia/models/recommend/task_status.rb +33 -0
  338. data/lib/algolia/models/recommend/trending_facet_hit.rb +238 -0
  339. data/lib/algolia/models/recommend/trending_facets_model.rb +32 -0
  340. data/lib/algolia/models/recommend/trending_facets_query.rb +284 -0
  341. data/lib/algolia/models/recommend/trending_items_model.rb +32 -0
  342. data/lib/algolia/models/recommend/trending_items_query.rb +310 -0
  343. data/lib/algolia/models/recommend/typo_tolerance.rb +97 -0
  344. data/lib/algolia/models/recommend/typo_tolerance_enum.rb +33 -0
  345. data/lib/algolia/models/recommend/value.rb +226 -0
  346. data/lib/algolia/models/search/acl.rb +47 -0
  347. data/lib/algolia/models/search/action.rb +38 -0
  348. data/lib/algolia/models/search/add_api_key_response.rb +207 -0
  349. data/lib/algolia/models/search/advanced_syntax_features.rb +33 -0
  350. data/lib/algolia/models/search/alternatives_as_exact.rb +34 -0
  351. data/lib/algolia/models/search/anchoring.rb +35 -0
  352. data/lib/algolia/models/search/api_key.rb +272 -0
  353. data/lib/algolia/models/search/around_precision.rb +97 -0
  354. data/lib/algolia/models/search/around_precision_from_value_inner.rb +201 -0
  355. data/lib/algolia/models/search/around_radius.rb +97 -0
  356. data/lib/algolia/models/search/around_radius_all.rb +32 -0
  357. data/lib/algolia/models/search/assign_user_id_params.rb +196 -0
  358. data/lib/algolia/models/search/attribute_to_update.rb +96 -0
  359. data/lib/algolia/models/search/automatic_facet_filter.rb +216 -0
  360. data/lib/algolia/models/search/automatic_facet_filters.rb +97 -0
  361. data/lib/algolia/models/search/base_get_api_key_response.rb +205 -0
  362. data/lib/algolia/models/search/base_index_settings.rb +366 -0
  363. data/lib/algolia/models/search/base_search_params.rb +564 -0
  364. data/lib/algolia/models/search/base_search_params_without_query.rb +546 -0
  365. data/lib/algolia/models/search/base_search_response.rb +517 -0
  366. data/lib/algolia/models/search/batch_assign_user_ids_params.rb +210 -0
  367. data/lib/algolia/models/search/batch_dictionary_entries_params.rb +208 -0
  368. data/lib/algolia/models/search/batch_dictionary_entries_request.rb +227 -0
  369. data/lib/algolia/models/search/batch_params.rb +197 -0
  370. data/lib/algolia/models/search/batch_request.rb +228 -0
  371. data/lib/algolia/models/search/batch_response.rb +209 -0
  372. data/lib/algolia/models/search/batch_write_params.rb +197 -0
  373. data/lib/algolia/models/search/browse_params.rb +96 -0
  374. data/lib/algolia/models/search/browse_params_object.rb +1113 -0
  375. data/lib/algolia/models/search/browse_response.rb +568 -0
  376. data/lib/algolia/models/search/built_in_operation.rb +229 -0
  377. data/lib/algolia/models/search/built_in_operation_type.rb +38 -0
  378. data/lib/algolia/models/search/condition.rb +244 -0
  379. data/lib/algolia/models/search/consequence.rb +239 -0
  380. data/lib/algolia/models/search/consequence_hide.rb +196 -0
  381. data/lib/algolia/models/search/consequence_params.rb +1121 -0
  382. data/lib/algolia/models/search/consequence_query.rb +97 -0
  383. data/lib/algolia/models/search/consequence_query_object.rb +207 -0
  384. data/lib/algolia/models/search/created_at_response.rb +196 -0
  385. data/lib/algolia/models/search/cursor.rb +193 -0
  386. data/lib/algolia/models/search/delete_api_key_response.rb +195 -0
  387. data/lib/algolia/models/search/delete_by_params.rb +263 -0
  388. data/lib/algolia/models/search/delete_source_response.rb +195 -0
  389. data/lib/algolia/models/search/deleted_at_response.rb +208 -0
  390. data/lib/algolia/models/search/dictionary_action.rb +33 -0
  391. data/lib/algolia/models/search/dictionary_entry.rb +276 -0
  392. data/lib/algolia/models/search/dictionary_entry_state.rb +33 -0
  393. data/lib/algolia/models/search/dictionary_language.rb +194 -0
  394. data/lib/algolia/models/search/dictionary_settings_params.rb +195 -0
  395. data/lib/algolia/models/search/dictionary_type.rb +34 -0
  396. data/lib/algolia/models/search/distinct.rb +97 -0
  397. data/lib/algolia/models/search/edit.rb +234 -0
  398. data/lib/algolia/models/search/edit_type.rb +33 -0
  399. data/lib/algolia/models/search/error_base.rb +196 -0
  400. data/lib/algolia/models/search/exact_on_single_word_query.rb +34 -0
  401. data/lib/algolia/models/search/exhaustive.rb +234 -0
  402. data/lib/algolia/models/search/facet_filters.rb +97 -0
  403. data/lib/algolia/models/search/facet_hits.rb +219 -0
  404. data/lib/algolia/models/search/facet_ordering.rb +205 -0
  405. data/lib/algolia/models/search/facets.rb +196 -0
  406. data/lib/algolia/models/search/facets_stats.rb +223 -0
  407. data/lib/algolia/models/search/fetched_index.rb +313 -0
  408. data/lib/algolia/models/search/get_api_key_response.rb +301 -0
  409. data/lib/algolia/models/search/get_dictionary_settings_response.rb +194 -0
  410. data/lib/algolia/models/search/get_logs_response.rb +196 -0
  411. data/lib/algolia/models/search/get_objects_params.rb +197 -0
  412. data/lib/algolia/models/search/get_objects_request.rb +220 -0
  413. data/lib/algolia/models/search/get_objects_response.rb +197 -0
  414. data/lib/algolia/models/search/get_task_response.rb +216 -0
  415. data/lib/algolia/models/search/get_top_user_ids_response.rb +198 -0
  416. data/lib/algolia/models/search/has_pending_mappings_response.rb +207 -0
  417. data/lib/algolia/models/search/highlight_result.rb +96 -0
  418. data/lib/algolia/models/search/highlight_result_option.rb +253 -0
  419. data/lib/algolia/models/search/hit.rb +241 -0
  420. data/lib/algolia/models/search/ignore_plurals.rb +97 -0
  421. data/lib/algolia/models/search/index_settings.rb +912 -0
  422. data/lib/algolia/models/search/index_settings_as_search_params.rb +723 -0
  423. data/lib/algolia/models/search/languages.rb +221 -0
  424. data/lib/algolia/models/search/list_api_keys_response.rb +197 -0
  425. data/lib/algolia/models/search/list_clusters_response.rb +198 -0
  426. data/lib/algolia/models/search/list_indices_response.rb +207 -0
  427. data/lib/algolia/models/search/list_user_ids_response.rb +198 -0
  428. data/lib/algolia/models/search/log.rb +358 -0
  429. data/lib/algolia/models/search/log_query.rb +213 -0
  430. data/lib/algolia/models/search/log_type.rb +35 -0
  431. data/lib/algolia/models/search/match_level.rb +34 -0
  432. data/lib/algolia/models/search/matched_geo_location.rb +213 -0
  433. data/lib/algolia/models/search/mixed_search_filters.rb +96 -0
  434. data/lib/algolia/models/search/mode.rb +33 -0
  435. data/lib/algolia/models/search/multiple_batch_request.rb +240 -0
  436. data/lib/algolia/models/search/multiple_batch_response.rb +211 -0
  437. data/lib/algolia/models/search/numeric_filters.rb +97 -0
  438. data/lib/algolia/models/search/operation_index_params.rb +240 -0
  439. data/lib/algolia/models/search/operation_type.rb +33 -0
  440. data/lib/algolia/models/search/optional_filters.rb +97 -0
  441. data/lib/algolia/models/search/params.rb +220 -0
  442. data/lib/algolia/models/search/personalization.rb +213 -0
  443. data/lib/algolia/models/search/promote.rb +96 -0
  444. data/lib/algolia/models/search/promote_object_id.rb +208 -0
  445. data/lib/algolia/models/search/promote_object_ids.rb +210 -0
  446. data/lib/algolia/models/search/query_type.rb +34 -0
  447. data/lib/algolia/models/search/ranking_info.rb +328 -0
  448. data/lib/algolia/models/search/re_ranking_apply_filter.rb +97 -0
  449. data/lib/algolia/models/search/redirect.rb +195 -0
  450. data/lib/algolia/models/search/redirect_rule_index_metadata.rb +242 -0
  451. data/lib/algolia/models/search/redirect_rule_index_metadata_data.rb +195 -0
  452. data/lib/algolia/models/search/remove_stop_words.rb +97 -0
  453. data/lib/algolia/models/search/remove_user_id_response.rb +195 -0
  454. data/lib/algolia/models/search/remove_words_if_no_results.rb +35 -0
  455. data/lib/algolia/models/search/rendering_content.rb +193 -0
  456. data/lib/algolia/models/search/replace_source_response.rb +195 -0
  457. data/lib/algolia/models/search/rule.rb +249 -0
  458. data/lib/algolia/models/search/save_object_response.rb +217 -0
  459. data/lib/algolia/models/search/save_synonym_response.rb +219 -0
  460. data/lib/algolia/models/search/scope_type.rb +34 -0
  461. data/lib/algolia/models/search/search_dictionary_entries_params.rb +244 -0
  462. data/lib/algolia/models/search/search_for_facet_values_request.rb +227 -0
  463. data/lib/algolia/models/search/search_for_facet_values_response.rb +218 -0
  464. data/lib/algolia/models/search/search_for_facets.rb +1158 -0
  465. data/lib/algolia/models/search/search_for_facets_options.rb +274 -0
  466. data/lib/algolia/models/search/search_for_hits.rb +1134 -0
  467. data/lib/algolia/models/search/search_for_hits_options.rb +226 -0
  468. data/lib/algolia/models/search/search_hits.rb +223 -0
  469. data/lib/algolia/models/search/search_method_params.rb +227 -0
  470. data/lib/algolia/models/search/search_params.rb +96 -0
  471. data/lib/algolia/models/search/search_params_object.rb +1103 -0
  472. data/lib/algolia/models/search/search_params_query.rb +193 -0
  473. data/lib/algolia/models/search/search_params_string.rb +193 -0
  474. data/lib/algolia/models/search/search_query.rb +96 -0
  475. data/lib/algolia/models/search/search_response.rb +560 -0
  476. data/lib/algolia/models/search/search_responses.rb +196 -0
  477. data/lib/algolia/models/search/search_result.rb +96 -0
  478. data/lib/algolia/models/search/search_rules_params.rb +311 -0
  479. data/lib/algolia/models/search/search_rules_response.rb +233 -0
  480. data/lib/algolia/models/search/search_strategy.rb +33 -0
  481. data/lib/algolia/models/search/search_synonyms_params.rb +193 -0
  482. data/lib/algolia/models/search/search_synonyms_response.rb +212 -0
  483. data/lib/algolia/models/search/search_type_default.rb +32 -0
  484. data/lib/algolia/models/search/search_type_facet.rb +32 -0
  485. data/lib/algolia/models/search/search_user_ids_params.rb +244 -0
  486. data/lib/algolia/models/search/search_user_ids_response.rb +264 -0
  487. data/lib/algolia/models/search/semantic_search.rb +198 -0
  488. data/lib/algolia/models/search/snippet_result.rb +96 -0
  489. data/lib/algolia/models/search/snippet_result_option.rb +229 -0
  490. data/lib/algolia/models/search/sort_remaining_by.rb +34 -0
  491. data/lib/algolia/models/search/source.rb +206 -0
  492. data/lib/algolia/models/search/standard_entries.rb +224 -0
  493. data/lib/algolia/models/search/synonym_hit.rb +295 -0
  494. data/lib/algolia/models/search/synonym_type.rb +36 -0
  495. data/lib/algolia/models/search/tag_filters.rb +97 -0
  496. data/lib/algolia/models/search/task_status.rb +33 -0
  497. data/lib/algolia/models/search/time_range.rb +207 -0
  498. data/lib/algolia/models/search/typo_tolerance.rb +97 -0
  499. data/lib/algolia/models/search/typo_tolerance_enum.rb +33 -0
  500. data/lib/algolia/models/search/update_api_key_response.rb +207 -0
  501. data/lib/algolia/models/search/updated_at_response.rb +208 -0
  502. data/lib/algolia/models/search/updated_at_with_object_id_response.rb +214 -0
  503. data/lib/algolia/models/search/updated_rule_response.rb +219 -0
  504. data/lib/algolia/models/search/user_highlight_result.rb +205 -0
  505. data/lib/algolia/models/search/user_hit.rb +269 -0
  506. data/lib/algolia/models/search/user_id.rb +247 -0
  507. data/lib/algolia/models/search/value.rb +226 -0
  508. data/lib/algolia/transport/echo_requester.rb +10 -0
  509. data/lib/algolia/{http → transport/http}/http_requester.rb +24 -19
  510. data/lib/algolia/{http → transport/http}/response.rb +11 -1
  511. data/lib/algolia/transport/request_options.rb +19 -31
  512. data/lib/algolia/transport/retry_strategy.rb +5 -8
  513. data/lib/algolia/transport/stateful_host.rb +1 -2
  514. data/lib/algolia/transport/transport.rb +33 -73
  515. data/lib/algolia/user_agent.rb +4 -14
  516. data/lib/algolia/version.rb +3 -1
  517. data/lib/algolia.rb +23 -40
  518. metadata +522 -217
  519. data/.circleci/config.yml +0 -155
  520. data/.dockerignore +0 -38
  521. data/.github/ISSUE_TEMPLATE.md +0 -20
  522. data/.github/PULL_REQUEST_TEMPLATE.md +0 -22
  523. data/.gitignore +0 -40
  524. data/.rubocop.yml +0 -189
  525. data/.rubocop_todo.yml +0 -14
  526. data/CODE_OF_CONDUCT.md +0 -74
  527. data/CONTRIBUTING.MD +0 -184
  528. data/DOCKER_README.MD +0 -89
  529. data/Dockerfile +0 -7
  530. data/LICENSE +0 -21
  531. data/SECURITY.md +0 -3
  532. data/Steepfile +0 -6
  533. data/bin/console +0 -21
  534. data/bin/setup +0 -8
  535. data/lib/algolia/account_client.rb +0 -65
  536. data/lib/algolia/analytics_client.rb +0 -105
  537. data/lib/algolia/config/analytics_config.rb +0 -20
  538. data/lib/algolia/config/base_config.rb +0 -43
  539. data/lib/algolia/config/insights_config.rb +0 -20
  540. data/lib/algolia/config/personalization_config.rb +0 -20
  541. data/lib/algolia/config/recommend_config.rb +0 -6
  542. data/lib/algolia/config/recommendation_config.rb +0 -7
  543. data/lib/algolia/config/search_config.rb +0 -40
  544. data/lib/algolia/defaults.rb +0 -35
  545. data/lib/algolia/helpers.rb +0 -134
  546. data/lib/algolia/insights_client.rb +0 -238
  547. data/lib/algolia/iterators/base_iterator.rb +0 -19
  548. data/lib/algolia/iterators/object_iterator.rb +0 -28
  549. data/lib/algolia/iterators/paginator_iterator.rb +0 -46
  550. data/lib/algolia/iterators/rule_iterator.rb +0 -9
  551. data/lib/algolia/iterators/synonym_iterator.rb +0 -9
  552. data/lib/algolia/personalization_client.rb +0 -60
  553. data/lib/algolia/recommend_client.rb +0 -134
  554. data/lib/algolia/recommendation_client.rb +0 -7
  555. data/lib/algolia/responses/add_api_key_response.rb +0 -38
  556. data/lib/algolia/responses/base_response.rb +0 -9
  557. data/lib/algolia/responses/delete_api_key_response.rb +0 -40
  558. data/lib/algolia/responses/dictionary_response.rb +0 -33
  559. data/lib/algolia/responses/indexing_response.rb +0 -28
  560. data/lib/algolia/responses/multiple_batch_indexing_response.rb +0 -29
  561. data/lib/algolia/responses/multiple_response.rb +0 -45
  562. data/lib/algolia/responses/restore_api_key_response.rb +0 -36
  563. data/lib/algolia/responses/update_api_key_response.rb +0 -39
  564. data/lib/algolia/search_client.rb +0 -791
  565. data/lib/algolia/search_index.rb +0 -1059
  566. data/renovate.json +0 -5
  567. data/sig/config/algolia_config.rbs +0 -24
  568. data/sig/config/analytics_config.rbs +0 -11
  569. data/sig/config/insights_config.rbs +0 -11
  570. data/sig/config/recommendation_config.rbs +0 -11
  571. data/sig/config/search_config.rbs +0 -11
  572. data/sig/enums/call_type.rbs +0 -5
  573. data/sig/helpers.rbs +0 -12
  574. data/sig/http/http_requester.rbs +0 -17
  575. data/sig/http/response.rbs +0 -14
  576. data/sig/interfaces/_connection.rbs +0 -16
  577. data/sig/iterators/base_iterator.rbs +0 -15
  578. data/sig/iterators/object_iterator.rbs +0 -6
  579. data/sig/iterators/paginator_iterator.rbs +0 -8
  580. data/sig/iterators/rule_iterator.rbs +0 -5
  581. data/sig/iterators/synonym_iterator.rbs +0 -5
  582. data/sig/transport/request_options.rbs +0 -33
  583. data/sig/transport/stateful_host.rbs +0 -21
  584. data/test/algolia/integration/account_client_test.rb +0 -47
  585. data/test/algolia/integration/analytics_client_test.rb +0 -117
  586. data/test/algolia/integration/base_test.rb +0 -9
  587. data/test/algolia/integration/insights_client_test.rb +0 -80
  588. data/test/algolia/integration/mocks/mock_requester.rb +0 -47
  589. data/test/algolia/integration/personalization_client_test.rb +0 -30
  590. data/test/algolia/integration/recommend_client_test.rb +0 -70
  591. data/test/algolia/integration/recommendation_client_test.rb +0 -30
  592. data/test/algolia/integration/search_client_test.rb +0 -465
  593. data/test/algolia/integration/search_index_test.rb +0 -729
  594. data/test/algolia/unit/algolia_config_test.rb +0 -16
  595. data/test/algolia/unit/helpers_test.rb +0 -92
  596. data/test/algolia/unit/http_requester_test.rb +0 -27
  597. data/test/algolia/unit/retry_strategy_test.rb +0 -139
  598. data/test/algolia/unit/user_agent_test.rb +0 -16
  599. data/test/test_helper.rb +0 -121
  600. data/upgrade_guide.md +0 -603
  601. /data/lib/algolia/{enums → transport}/call_type.rb +0 -0
  602. /data/lib/algolia/{enums → transport}/retry_outcome_type.rb +0 -0
@@ -0,0 +1,1113 @@
1
+ # 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.
2
+
3
+ require 'date'
4
+ require 'time'
5
+
6
+ module Algolia
7
+ module Search
8
+ class BrowseParamsObject
9
+ # Text to search for in an index.
10
+ attr_accessor :query
11
+
12
+ # Overrides the query parameter and performs a more generic search.
13
+ attr_accessor :similar_query
14
+
15
+ # [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
16
+ attr_accessor :filters
17
+
18
+ attr_accessor :facet_filters
19
+
20
+ attr_accessor :optional_filters
21
+
22
+ attr_accessor :numeric_filters
23
+
24
+ attr_accessor :tag_filters
25
+
26
+ # Determines how to calculate [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). If `false`, maximum score is kept. If `true`, score is summed.
27
+ attr_accessor :sum_or_filters_scores
28
+
29
+ # Restricts a query to only look at a subset of your [searchable attributes](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/).
30
+ attr_accessor :restrict_searchable_attributes
31
+
32
+ # Returns [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts), their facet values, and the number of matching facet values.
33
+ attr_accessor :facets
34
+
35
+ # Forces faceting to be applied after [de-duplication](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/) (with the distinct feature). Alternatively, the `afterDistinct` [modifier](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) of `attributesForFaceting` allows for more granular control.
36
+ attr_accessor :faceting_after_distinct
37
+
38
+ # Page to retrieve (the first page is `0`, not `1`).
39
+ attr_accessor :page
40
+
41
+ # Specifies the offset of the first hit to return. > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
42
+ attr_accessor :offset
43
+
44
+ # Sets the number of hits to retrieve (for use with `offset`). > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
45
+ attr_accessor :length
46
+
47
+ # Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
48
+ attr_accessor :around_lat_lng
49
+
50
+ # Search for entries around a location. The location is automatically computed from the requester's IP address.
51
+ attr_accessor :around_lat_lng_via_ip
52
+
53
+ attr_accessor :around_radius
54
+
55
+ attr_accessor :around_precision
56
+
57
+ # Minimum radius (in meters) used for a geographical search when `aroundRadius` isn't set.
58
+ attr_accessor :minimum_around_radius
59
+
60
+ # Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
61
+ attr_accessor :inside_bounding_box
62
+
63
+ # Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
64
+ attr_accessor :inside_polygon
65
+
66
+ # Changes the default values of parameters that work best for a natural language query, such as `ignorePlurals`, `removeStopWords`, `removeWordsIfNoResults`, `analyticsTags`, and `ruleContexts`. These parameters work well together when the query consists of fuller natural language strings instead of keywords, for example when processing voice search queries.
67
+ attr_accessor :natural_languages
68
+
69
+ # Assigns [rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) to search queries.
70
+ attr_accessor :rule_contexts
71
+
72
+ # Defines how much [Personalization affects results](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
73
+ attr_accessor :personalization_impact
74
+
75
+ # Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search.
76
+ attr_accessor :user_token
77
+
78
+ # Incidates whether the search response includes [detailed ranking information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information).
79
+ attr_accessor :get_ranking_info
80
+
81
+ # Enriches the API's response with information about how the query was processed.
82
+ attr_accessor :explain
83
+
84
+ # Whether to take into account an index's synonyms for a particular search.
85
+ attr_accessor :synonyms
86
+
87
+ # Indicates whether a query ID parameter is included in the search response. This is required for [tracking click and conversion events](https://www.algolia.com/doc/guides/sending-events/concepts/event-types/#events-related-to-algolia-requests).
88
+ attr_accessor :click_analytics
89
+
90
+ # Indicates whether this query will be included in [analytics](https://www.algolia.com/doc/guides/search-analytics/guides/exclude-queries/).
91
+ attr_accessor :analytics
92
+
93
+ # Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
94
+ attr_accessor :analytics_tags
95
+
96
+ # Whether to include or exclude a query from the processing-time percentile computation.
97
+ attr_accessor :percentile_computation
98
+
99
+ # Incidates whether this search will be considered in A/B testing.
100
+ attr_accessor :enable_ab_test
101
+
102
+ # Attributes used for [faceting](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/) and the [modifiers](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) that can be applied: `filterOnly`, `searchable`, and `afterDistinct`.
103
+ attr_accessor :attributes_for_faceting
104
+
105
+ # Attributes to include in the API response. To reduce the size of your response, you can retrieve only some of the attributes. By default, the response includes all attributes.
106
+ attr_accessor :attributes_to_retrieve
107
+
108
+ # Determines the order in which Algolia [returns your results](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/).
109
+ attr_accessor :ranking
110
+
111
+ # Specifies the [Custom ranking criterion](https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/). Use the `asc` and `desc` modifiers to specify the ranking order: ascending or descending.
112
+ attr_accessor :custom_ranking
113
+
114
+ # Relevancy threshold below which less relevant results aren't included in the results.
115
+ attr_accessor :relevancy_strictness
116
+
117
+ # Attributes to highlight. Strings that match the search query in the attributes are highlighted by surrounding them with HTML tags (`highlightPreTag` and `highlightPostTag`).
118
+ attr_accessor :attributes_to_highlight
119
+
120
+ # Attributes to _snippet_. 'Snippeting' is shortening the attribute to a certain number of words. If not specified, the attribute is shortened to the 10 words around the matching string but you can specify the number. For example: `body:20`.
121
+ attr_accessor :attributes_to_snippet
122
+
123
+ # HTML string to insert before the highlighted parts in all highlight and snippet results.
124
+ attr_accessor :highlight_pre_tag
125
+
126
+ # HTML string to insert after the highlighted parts in all highlight and snippet results.
127
+ attr_accessor :highlight_post_tag
128
+
129
+ # String used as an ellipsis indicator when a snippet is truncated.
130
+ attr_accessor :snippet_ellipsis_text
131
+
132
+ # Restrict highlighting and snippeting to items that matched the query.
133
+ attr_accessor :restrict_highlight_and_snippet_arrays
134
+
135
+ # Number of hits per page.
136
+ attr_accessor :hits_per_page
137
+
138
+ # Minimum number of characters a word in the query string must contain to accept matches with [one typo](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
139
+ attr_accessor :min_word_sizefor1_typo
140
+
141
+ # Minimum number of characters a word in the query string must contain to accept matches with [two typos](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/in-depth/configuring-typo-tolerance/#configuring-word-length-for-typos).
142
+ attr_accessor :min_word_sizefor2_typos
143
+
144
+ attr_accessor :typo_tolerance
145
+
146
+ # Whether to allow typos on numbers (\"numeric tokens\") in the query string.
147
+ attr_accessor :allow_typos_on_numeric_tokens
148
+
149
+ # Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
150
+ attr_accessor :disable_typo_tolerance_on_attributes
151
+
152
+ attr_accessor :ignore_plurals
153
+
154
+ attr_accessor :remove_stop_words
155
+
156
+ # Characters that the engine shouldn't automatically [normalize](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
157
+ attr_accessor :keep_diacritics_on_characters
158
+
159
+ # Sets your user's search language. This adjusts language-specific settings and features such as `ignorePlurals`, `removeStopWords`, and [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) word detection.
160
+ attr_accessor :query_languages
161
+
162
+ # [Splits compound words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#splitting-compound-words) into their component word parts in the query.
163
+ attr_accessor :decompound_query
164
+
165
+ # Incidates whether [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/) are enabled.
166
+ attr_accessor :enable_rules
167
+
168
+ # Incidates whether [Personalization](https://www.algolia.com/doc/guides/personalization/what-is-personalization/) is enabled.
169
+ attr_accessor :enable_personalization
170
+
171
+ attr_accessor :query_type
172
+
173
+ attr_accessor :remove_words_if_no_results
174
+
175
+ attr_accessor :mode
176
+
177
+ attr_accessor :semantic_search
178
+
179
+ # Enables the [advanced query syntax](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#advanced-syntax).
180
+ attr_accessor :advanced_syntax
181
+
182
+ # Words which should be considered [optional](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words) when found in a query.
183
+ attr_accessor :optional_words
184
+
185
+ # Attributes for which you want to [turn off the exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes).
186
+ attr_accessor :disable_exact_on_attributes
187
+
188
+ attr_accessor :exact_on_single_word_query
189
+
190
+ # Alternatives that should be considered an exact match by [the exact ranking criterion](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/in-depth/adjust-exact-settings/#turn-off-exact-for-some-attributes).
191
+ attr_accessor :alternatives_as_exact
192
+
193
+ # Allows you to specify which advanced syntax features are active when `advancedSyntax` is enabled.
194
+ attr_accessor :advanced_syntax_features
195
+
196
+ attr_accessor :distinct
197
+
198
+ # Whether to highlight and snippet the original word that matches the synonym or the synonym itself.
199
+ attr_accessor :replace_synonyms_in_highlight
200
+
201
+ # Precision of the [proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity).
202
+ attr_accessor :min_proximity
203
+
204
+ # Attributes to include in the API response for search and browse queries.
205
+ attr_accessor :response_fields
206
+
207
+ # Maximum number of facet hits to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
208
+ attr_accessor :max_facet_hits
209
+
210
+ # Maximum number of facet values to return for each facet.
211
+ attr_accessor :max_values_per_facet
212
+
213
+ # Controls how facet values are fetched.
214
+ attr_accessor :sort_facet_values_by
215
+
216
+ # When the [Attribute criterion is ranked above Proximity](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#attribute-and-proximity-combinations) in your ranking formula, Proximity is used to select which searchable attribute is matched in the Attribute ranking stage.
217
+ attr_accessor :attribute_criteria_computed_by_min_proximity
218
+
219
+ attr_accessor :rendering_content
220
+
221
+ # Indicates whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/).
222
+ attr_accessor :enable_re_ranking
223
+
224
+ attr_accessor :re_ranking_apply_filter
225
+
226
+ # Cursor indicating the location to resume browsing from. Must match the value returned by the previous call. Pass this value to the subsequent browse call to get the next page of results. When the end of the index has been reached, `cursor` is absent from the response.
227
+ attr_accessor :cursor
228
+
229
+ class EnumAttributeValidator
230
+ attr_reader :datatype
231
+ attr_reader :allowable_values
232
+
233
+ def initialize(datatype, allowable_values)
234
+ @allowable_values = allowable_values.map do |value|
235
+ case datatype.to_s
236
+ when /Integer/i
237
+ value.to_i
238
+ when /Float/i
239
+ value.to_f
240
+ else
241
+ value
242
+ end
243
+ end
244
+ end
245
+
246
+ def valid?(value)
247
+ !value || allowable_values.include?(value)
248
+ end
249
+ end
250
+
251
+ # Attribute mapping from ruby-style variable name to JSON key.
252
+ def self.attribute_map
253
+ {
254
+ :query => :query,
255
+ :similar_query => :similarQuery,
256
+ :filters => :filters,
257
+ :facet_filters => :facetFilters,
258
+ :optional_filters => :optionalFilters,
259
+ :numeric_filters => :numericFilters,
260
+ :tag_filters => :tagFilters,
261
+ :sum_or_filters_scores => :sumOrFiltersScores,
262
+ :restrict_searchable_attributes => :restrictSearchableAttributes,
263
+ :facets => :facets,
264
+ :faceting_after_distinct => :facetingAfterDistinct,
265
+ :page => :page,
266
+ :offset => :offset,
267
+ :length => :length,
268
+ :around_lat_lng => :aroundLatLng,
269
+ :around_lat_lng_via_ip => :aroundLatLngViaIP,
270
+ :around_radius => :aroundRadius,
271
+ :around_precision => :aroundPrecision,
272
+ :minimum_around_radius => :minimumAroundRadius,
273
+ :inside_bounding_box => :insideBoundingBox,
274
+ :inside_polygon => :insidePolygon,
275
+ :natural_languages => :naturalLanguages,
276
+ :rule_contexts => :ruleContexts,
277
+ :personalization_impact => :personalizationImpact,
278
+ :user_token => :userToken,
279
+ :get_ranking_info => :getRankingInfo,
280
+ :explain => :explain,
281
+ :synonyms => :synonyms,
282
+ :click_analytics => :clickAnalytics,
283
+ :analytics => :analytics,
284
+ :analytics_tags => :analyticsTags,
285
+ :percentile_computation => :percentileComputation,
286
+ :enable_ab_test => :enableABTest,
287
+ :attributes_for_faceting => :attributesForFaceting,
288
+ :attributes_to_retrieve => :attributesToRetrieve,
289
+ :ranking => :ranking,
290
+ :custom_ranking => :customRanking,
291
+ :relevancy_strictness => :relevancyStrictness,
292
+ :attributes_to_highlight => :attributesToHighlight,
293
+ :attributes_to_snippet => :attributesToSnippet,
294
+ :highlight_pre_tag => :highlightPreTag,
295
+ :highlight_post_tag => :highlightPostTag,
296
+ :snippet_ellipsis_text => :snippetEllipsisText,
297
+ :restrict_highlight_and_snippet_arrays => :restrictHighlightAndSnippetArrays,
298
+ :hits_per_page => :hitsPerPage,
299
+ :min_word_sizefor1_typo => :minWordSizefor1Typo,
300
+ :min_word_sizefor2_typos => :minWordSizefor2Typos,
301
+ :typo_tolerance => :typoTolerance,
302
+ :allow_typos_on_numeric_tokens => :allowTyposOnNumericTokens,
303
+ :disable_typo_tolerance_on_attributes => :disableTypoToleranceOnAttributes,
304
+ :ignore_plurals => :ignorePlurals,
305
+ :remove_stop_words => :removeStopWords,
306
+ :keep_diacritics_on_characters => :keepDiacriticsOnCharacters,
307
+ :query_languages => :queryLanguages,
308
+ :decompound_query => :decompoundQuery,
309
+ :enable_rules => :enableRules,
310
+ :enable_personalization => :enablePersonalization,
311
+ :query_type => :queryType,
312
+ :remove_words_if_no_results => :removeWordsIfNoResults,
313
+ :mode => :mode,
314
+ :semantic_search => :semanticSearch,
315
+ :advanced_syntax => :advancedSyntax,
316
+ :optional_words => :optionalWords,
317
+ :disable_exact_on_attributes => :disableExactOnAttributes,
318
+ :exact_on_single_word_query => :exactOnSingleWordQuery,
319
+ :alternatives_as_exact => :alternativesAsExact,
320
+ :advanced_syntax_features => :advancedSyntaxFeatures,
321
+ :distinct => :distinct,
322
+ :replace_synonyms_in_highlight => :replaceSynonymsInHighlight,
323
+ :min_proximity => :minProximity,
324
+ :response_fields => :responseFields,
325
+ :max_facet_hits => :maxFacetHits,
326
+ :max_values_per_facet => :maxValuesPerFacet,
327
+ :sort_facet_values_by => :sortFacetValuesBy,
328
+ :attribute_criteria_computed_by_min_proximity => :attributeCriteriaComputedByMinProximity,
329
+ :rendering_content => :renderingContent,
330
+ :enable_re_ranking => :enableReRanking,
331
+ :re_ranking_apply_filter => :reRankingApplyFilter,
332
+ :cursor => :cursor
333
+ }
334
+ end
335
+
336
+ # Returns all the JSON keys this model knows about
337
+ def self.acceptable_attributes
338
+ attribute_map.values
339
+ end
340
+
341
+ # Attribute type mapping.
342
+ def self.types_mapping
343
+ {
344
+ :query => :String,
345
+ :similar_query => :String,
346
+ :filters => :String,
347
+ :facet_filters => :FacetFilters,
348
+ :optional_filters => :OptionalFilters,
349
+ :numeric_filters => :NumericFilters,
350
+ :tag_filters => :TagFilters,
351
+ :sum_or_filters_scores => :Boolean,
352
+ :restrict_searchable_attributes => :'Array<String>',
353
+ :facets => :'Array<String>',
354
+ :faceting_after_distinct => :Boolean,
355
+ :page => :Integer,
356
+ :offset => :Integer,
357
+ :length => :Integer,
358
+ :around_lat_lng => :String,
359
+ :around_lat_lng_via_ip => :Boolean,
360
+ :around_radius => :AroundRadius,
361
+ :around_precision => :AroundPrecision,
362
+ :minimum_around_radius => :Integer,
363
+ :inside_bounding_box => :'Array<Array<Float>>',
364
+ :inside_polygon => :'Array<Array<Float>>',
365
+ :natural_languages => :'Array<String>',
366
+ :rule_contexts => :'Array<String>',
367
+ :personalization_impact => :Integer,
368
+ :user_token => :String,
369
+ :get_ranking_info => :Boolean,
370
+ :explain => :'Array<String>',
371
+ :synonyms => :Boolean,
372
+ :click_analytics => :Boolean,
373
+ :analytics => :Boolean,
374
+ :analytics_tags => :'Array<String>',
375
+ :percentile_computation => :Boolean,
376
+ :enable_ab_test => :Boolean,
377
+ :attributes_for_faceting => :'Array<String>',
378
+ :attributes_to_retrieve => :'Array<String>',
379
+ :ranking => :'Array<String>',
380
+ :custom_ranking => :'Array<String>',
381
+ :relevancy_strictness => :Integer,
382
+ :attributes_to_highlight => :'Array<String>',
383
+ :attributes_to_snippet => :'Array<String>',
384
+ :highlight_pre_tag => :String,
385
+ :highlight_post_tag => :String,
386
+ :snippet_ellipsis_text => :String,
387
+ :restrict_highlight_and_snippet_arrays => :Boolean,
388
+ :hits_per_page => :Integer,
389
+ :min_word_sizefor1_typo => :Integer,
390
+ :min_word_sizefor2_typos => :Integer,
391
+ :typo_tolerance => :TypoTolerance,
392
+ :allow_typos_on_numeric_tokens => :Boolean,
393
+ :disable_typo_tolerance_on_attributes => :'Array<String>',
394
+ :ignore_plurals => :IgnorePlurals,
395
+ :remove_stop_words => :RemoveStopWords,
396
+ :keep_diacritics_on_characters => :String,
397
+ :query_languages => :'Array<String>',
398
+ :decompound_query => :Boolean,
399
+ :enable_rules => :Boolean,
400
+ :enable_personalization => :Boolean,
401
+ :query_type => :QueryType,
402
+ :remove_words_if_no_results => :RemoveWordsIfNoResults,
403
+ :mode => :Mode,
404
+ :semantic_search => :SemanticSearch,
405
+ :advanced_syntax => :Boolean,
406
+ :optional_words => :'Array<String>',
407
+ :disable_exact_on_attributes => :'Array<String>',
408
+ :exact_on_single_word_query => :ExactOnSingleWordQuery,
409
+ :alternatives_as_exact => :'Array<AlternativesAsExact>',
410
+ :advanced_syntax_features => :'Array<AdvancedSyntaxFeatures>',
411
+ :distinct => :Distinct,
412
+ :replace_synonyms_in_highlight => :Boolean,
413
+ :min_proximity => :Integer,
414
+ :response_fields => :'Array<String>',
415
+ :max_facet_hits => :Integer,
416
+ :max_values_per_facet => :Integer,
417
+ :sort_facet_values_by => :String,
418
+ :attribute_criteria_computed_by_min_proximity => :Boolean,
419
+ :rendering_content => :RenderingContent,
420
+ :enable_re_ranking => :Boolean,
421
+ :re_ranking_apply_filter => :ReRankingApplyFilter,
422
+ :cursor => :String
423
+ }
424
+ end
425
+
426
+ # List of attributes with nullable: true
427
+ def self.openapi_nullable
428
+ Set.new([
429
+ :re_ranking_apply_filter
430
+ ])
431
+ end
432
+
433
+ # List of class defined in allOf (OpenAPI v3)
434
+ def self.openapi_all_of
435
+ [
436
+ :Cursor,
437
+ :SearchParamsObject
438
+ ]
439
+ end
440
+
441
+ # Initializes the object
442
+ # @param [Hash] attributes Model attributes in the form of hash
443
+ def initialize(attributes = {})
444
+ unless attributes.is_a?(Hash)
445
+ raise ArgumentError, "The input argument (attributes) must be a hash in `Algolia::BrowseParamsObject` initialize method"
446
+ end
447
+
448
+ # check to see if the attribute exists and convert string to symbol for hash key
449
+ attributes = attributes.each_with_object({}) do |(k, v), h|
450
+ unless self.class.attribute_map.key?(k.to_sym)
451
+ raise ArgumentError,
452
+ "`#{k}` is not a valid attribute in `Algolia::BrowseParamsObject`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
453
+ end
454
+
455
+ h[k.to_sym] = v
456
+ end
457
+
458
+ if attributes.key?(:query)
459
+ self.query = attributes[:query]
460
+ end
461
+
462
+ if attributes.key?(:similar_query)
463
+ self.similar_query = attributes[:similar_query]
464
+ end
465
+
466
+ if attributes.key?(:filters)
467
+ self.filters = attributes[:filters]
468
+ end
469
+
470
+ if attributes.key?(:facet_filters)
471
+ self.facet_filters = attributes[:facet_filters]
472
+ end
473
+
474
+ if attributes.key?(:optional_filters)
475
+ self.optional_filters = attributes[:optional_filters]
476
+ end
477
+
478
+ if attributes.key?(:numeric_filters)
479
+ self.numeric_filters = attributes[:numeric_filters]
480
+ end
481
+
482
+ if attributes.key?(:tag_filters)
483
+ self.tag_filters = attributes[:tag_filters]
484
+ end
485
+
486
+ if attributes.key?(:sum_or_filters_scores)
487
+ self.sum_or_filters_scores = attributes[:sum_or_filters_scores]
488
+ end
489
+
490
+ if attributes.key?(:restrict_searchable_attributes)
491
+ if (value = attributes[:restrict_searchable_attributes]).is_a?(Array)
492
+ self.restrict_searchable_attributes = value
493
+ end
494
+ end
495
+
496
+ if attributes.key?(:facets)
497
+ if (value = attributes[:facets]).is_a?(Array)
498
+ self.facets = value
499
+ end
500
+ end
501
+
502
+ if attributes.key?(:faceting_after_distinct)
503
+ self.faceting_after_distinct = attributes[:faceting_after_distinct]
504
+ end
505
+
506
+ if attributes.key?(:page)
507
+ self.page = attributes[:page]
508
+ end
509
+
510
+ if attributes.key?(:offset)
511
+ self.offset = attributes[:offset]
512
+ end
513
+
514
+ if attributes.key?(:length)
515
+ self.length = attributes[:length]
516
+ end
517
+
518
+ if attributes.key?(:around_lat_lng)
519
+ self.around_lat_lng = attributes[:around_lat_lng]
520
+ end
521
+
522
+ if attributes.key?(:around_lat_lng_via_ip)
523
+ self.around_lat_lng_via_ip = attributes[:around_lat_lng_via_ip]
524
+ end
525
+
526
+ if attributes.key?(:around_radius)
527
+ self.around_radius = attributes[:around_radius]
528
+ end
529
+
530
+ if attributes.key?(:around_precision)
531
+ self.around_precision = attributes[:around_precision]
532
+ end
533
+
534
+ if attributes.key?(:minimum_around_radius)
535
+ self.minimum_around_radius = attributes[:minimum_around_radius]
536
+ end
537
+
538
+ if attributes.key?(:inside_bounding_box)
539
+ if (value = attributes[:inside_bounding_box]).is_a?(Array)
540
+ self.inside_bounding_box = value
541
+ end
542
+ end
543
+
544
+ if attributes.key?(:inside_polygon)
545
+ if (value = attributes[:inside_polygon]).is_a?(Array)
546
+ self.inside_polygon = value
547
+ end
548
+ end
549
+
550
+ if attributes.key?(:natural_languages)
551
+ if (value = attributes[:natural_languages]).is_a?(Array)
552
+ self.natural_languages = value
553
+ end
554
+ end
555
+
556
+ if attributes.key?(:rule_contexts)
557
+ if (value = attributes[:rule_contexts]).is_a?(Array)
558
+ self.rule_contexts = value
559
+ end
560
+ end
561
+
562
+ if attributes.key?(:personalization_impact)
563
+ self.personalization_impact = attributes[:personalization_impact]
564
+ end
565
+
566
+ if attributes.key?(:user_token)
567
+ self.user_token = attributes[:user_token]
568
+ end
569
+
570
+ if attributes.key?(:get_ranking_info)
571
+ self.get_ranking_info = attributes[:get_ranking_info]
572
+ end
573
+
574
+ if attributes.key?(:explain)
575
+ if (value = attributes[:explain]).is_a?(Array)
576
+ self.explain = value
577
+ end
578
+ end
579
+
580
+ if attributes.key?(:synonyms)
581
+ self.synonyms = attributes[:synonyms]
582
+ end
583
+
584
+ if attributes.key?(:click_analytics)
585
+ self.click_analytics = attributes[:click_analytics]
586
+ end
587
+
588
+ if attributes.key?(:analytics)
589
+ self.analytics = attributes[:analytics]
590
+ end
591
+
592
+ if attributes.key?(:analytics_tags)
593
+ if (value = attributes[:analytics_tags]).is_a?(Array)
594
+ self.analytics_tags = value
595
+ end
596
+ end
597
+
598
+ if attributes.key?(:percentile_computation)
599
+ self.percentile_computation = attributes[:percentile_computation]
600
+ end
601
+
602
+ if attributes.key?(:enable_ab_test)
603
+ self.enable_ab_test = attributes[:enable_ab_test]
604
+ end
605
+
606
+ if attributes.key?(:attributes_for_faceting)
607
+ if (value = attributes[:attributes_for_faceting]).is_a?(Array)
608
+ self.attributes_for_faceting = value
609
+ end
610
+ end
611
+
612
+ if attributes.key?(:attributes_to_retrieve)
613
+ if (value = attributes[:attributes_to_retrieve]).is_a?(Array)
614
+ self.attributes_to_retrieve = value
615
+ end
616
+ end
617
+
618
+ if attributes.key?(:ranking)
619
+ if (value = attributes[:ranking]).is_a?(Array)
620
+ self.ranking = value
621
+ end
622
+ end
623
+
624
+ if attributes.key?(:custom_ranking)
625
+ if (value = attributes[:custom_ranking]).is_a?(Array)
626
+ self.custom_ranking = value
627
+ end
628
+ end
629
+
630
+ if attributes.key?(:relevancy_strictness)
631
+ self.relevancy_strictness = attributes[:relevancy_strictness]
632
+ end
633
+
634
+ if attributes.key?(:attributes_to_highlight)
635
+ if (value = attributes[:attributes_to_highlight]).is_a?(Array)
636
+ self.attributes_to_highlight = value
637
+ end
638
+ end
639
+
640
+ if attributes.key?(:attributes_to_snippet)
641
+ if (value = attributes[:attributes_to_snippet]).is_a?(Array)
642
+ self.attributes_to_snippet = value
643
+ end
644
+ end
645
+
646
+ if attributes.key?(:highlight_pre_tag)
647
+ self.highlight_pre_tag = attributes[:highlight_pre_tag]
648
+ end
649
+
650
+ if attributes.key?(:highlight_post_tag)
651
+ self.highlight_post_tag = attributes[:highlight_post_tag]
652
+ end
653
+
654
+ if attributes.key?(:snippet_ellipsis_text)
655
+ self.snippet_ellipsis_text = attributes[:snippet_ellipsis_text]
656
+ end
657
+
658
+ if attributes.key?(:restrict_highlight_and_snippet_arrays)
659
+ self.restrict_highlight_and_snippet_arrays = attributes[:restrict_highlight_and_snippet_arrays]
660
+ end
661
+
662
+ if attributes.key?(:hits_per_page)
663
+ self.hits_per_page = attributes[:hits_per_page]
664
+ end
665
+
666
+ if attributes.key?(:min_word_sizefor1_typo)
667
+ self.min_word_sizefor1_typo = attributes[:min_word_sizefor1_typo]
668
+ end
669
+
670
+ if attributes.key?(:min_word_sizefor2_typos)
671
+ self.min_word_sizefor2_typos = attributes[:min_word_sizefor2_typos]
672
+ end
673
+
674
+ if attributes.key?(:typo_tolerance)
675
+ self.typo_tolerance = attributes[:typo_tolerance]
676
+ end
677
+
678
+ if attributes.key?(:allow_typos_on_numeric_tokens)
679
+ self.allow_typos_on_numeric_tokens = attributes[:allow_typos_on_numeric_tokens]
680
+ end
681
+
682
+ if attributes.key?(:disable_typo_tolerance_on_attributes)
683
+ if (value = attributes[:disable_typo_tolerance_on_attributes]).is_a?(Array)
684
+ self.disable_typo_tolerance_on_attributes = value
685
+ end
686
+ end
687
+
688
+ if attributes.key?(:ignore_plurals)
689
+ self.ignore_plurals = attributes[:ignore_plurals]
690
+ end
691
+
692
+ if attributes.key?(:remove_stop_words)
693
+ self.remove_stop_words = attributes[:remove_stop_words]
694
+ end
695
+
696
+ if attributes.key?(:keep_diacritics_on_characters)
697
+ self.keep_diacritics_on_characters = attributes[:keep_diacritics_on_characters]
698
+ end
699
+
700
+ if attributes.key?(:query_languages)
701
+ if (value = attributes[:query_languages]).is_a?(Array)
702
+ self.query_languages = value
703
+ end
704
+ end
705
+
706
+ if attributes.key?(:decompound_query)
707
+ self.decompound_query = attributes[:decompound_query]
708
+ end
709
+
710
+ if attributes.key?(:enable_rules)
711
+ self.enable_rules = attributes[:enable_rules]
712
+ end
713
+
714
+ if attributes.key?(:enable_personalization)
715
+ self.enable_personalization = attributes[:enable_personalization]
716
+ end
717
+
718
+ if attributes.key?(:query_type)
719
+ self.query_type = attributes[:query_type]
720
+ end
721
+
722
+ if attributes.key?(:remove_words_if_no_results)
723
+ self.remove_words_if_no_results = attributes[:remove_words_if_no_results]
724
+ end
725
+
726
+ if attributes.key?(:mode)
727
+ self.mode = attributes[:mode]
728
+ end
729
+
730
+ if attributes.key?(:semantic_search)
731
+ self.semantic_search = attributes[:semantic_search]
732
+ end
733
+
734
+ if attributes.key?(:advanced_syntax)
735
+ self.advanced_syntax = attributes[:advanced_syntax]
736
+ end
737
+
738
+ if attributes.key?(:optional_words)
739
+ if (value = attributes[:optional_words]).is_a?(Array)
740
+ self.optional_words = value
741
+ end
742
+ end
743
+
744
+ if attributes.key?(:disable_exact_on_attributes)
745
+ if (value = attributes[:disable_exact_on_attributes]).is_a?(Array)
746
+ self.disable_exact_on_attributes = value
747
+ end
748
+ end
749
+
750
+ if attributes.key?(:exact_on_single_word_query)
751
+ self.exact_on_single_word_query = attributes[:exact_on_single_word_query]
752
+ end
753
+
754
+ if attributes.key?(:alternatives_as_exact)
755
+ if (value = attributes[:alternatives_as_exact]).is_a?(Array)
756
+ self.alternatives_as_exact = value
757
+ end
758
+ end
759
+
760
+ if attributes.key?(:advanced_syntax_features)
761
+ if (value = attributes[:advanced_syntax_features]).is_a?(Array)
762
+ self.advanced_syntax_features = value
763
+ end
764
+ end
765
+
766
+ if attributes.key?(:distinct)
767
+ self.distinct = attributes[:distinct]
768
+ end
769
+
770
+ if attributes.key?(:replace_synonyms_in_highlight)
771
+ self.replace_synonyms_in_highlight = attributes[:replace_synonyms_in_highlight]
772
+ end
773
+
774
+ if attributes.key?(:min_proximity)
775
+ self.min_proximity = attributes[:min_proximity]
776
+ end
777
+
778
+ if attributes.key?(:response_fields)
779
+ if (value = attributes[:response_fields]).is_a?(Array)
780
+ self.response_fields = value
781
+ end
782
+ end
783
+
784
+ if attributes.key?(:max_facet_hits)
785
+ self.max_facet_hits = attributes[:max_facet_hits]
786
+ end
787
+
788
+ if attributes.key?(:max_values_per_facet)
789
+ self.max_values_per_facet = attributes[:max_values_per_facet]
790
+ end
791
+
792
+ if attributes.key?(:sort_facet_values_by)
793
+ self.sort_facet_values_by = attributes[:sort_facet_values_by]
794
+ end
795
+
796
+ if attributes.key?(:attribute_criteria_computed_by_min_proximity)
797
+ self.attribute_criteria_computed_by_min_proximity = attributes[:attribute_criteria_computed_by_min_proximity]
798
+ end
799
+
800
+ if attributes.key?(:rendering_content)
801
+ self.rendering_content = attributes[:rendering_content]
802
+ end
803
+
804
+ if attributes.key?(:enable_re_ranking)
805
+ self.enable_re_ranking = attributes[:enable_re_ranking]
806
+ end
807
+
808
+ if attributes.key?(:re_ranking_apply_filter)
809
+ self.re_ranking_apply_filter = attributes[:re_ranking_apply_filter]
810
+ end
811
+
812
+ if attributes.key?(:cursor)
813
+ self.cursor = attributes[:cursor]
814
+ end
815
+ end
816
+
817
+ # Custom attribute writer method with validation
818
+ # @param [Object] length Value to be assigned
819
+ def length=(length)
820
+ if length.nil?
821
+ raise ArgumentError, 'length cannot be nil'
822
+ end
823
+
824
+ if length > 1000
825
+ raise ArgumentError, 'invalid value for "length", must be smaller than or equal to 1000.'
826
+ end
827
+
828
+ if length < 1
829
+ raise ArgumentError, 'invalid value for "length", must be greater than or equal to 1.'
830
+ end
831
+
832
+ @length = length
833
+ end
834
+
835
+ # Custom attribute writer method with validation
836
+ # @param [Object] minimum_around_radius Value to be assigned
837
+ def minimum_around_radius=(minimum_around_radius)
838
+ if minimum_around_radius.nil?
839
+ raise ArgumentError, 'minimum_around_radius cannot be nil'
840
+ end
841
+
842
+ if minimum_around_radius < 1
843
+ raise ArgumentError, 'invalid value for "minimum_around_radius", must be greater than or equal to 1.'
844
+ end
845
+
846
+ @minimum_around_radius = minimum_around_radius
847
+ end
848
+
849
+ # Custom attribute writer method with validation
850
+ # @param [Object] hits_per_page Value to be assigned
851
+ def hits_per_page=(hits_per_page)
852
+ if hits_per_page.nil?
853
+ raise ArgumentError, 'hits_per_page cannot be nil'
854
+ end
855
+
856
+ if hits_per_page > 1000
857
+ raise ArgumentError, 'invalid value for "hits_per_page", must be smaller than or equal to 1000.'
858
+ end
859
+
860
+ if hits_per_page < 1
861
+ raise ArgumentError, 'invalid value for "hits_per_page", must be greater than or equal to 1.'
862
+ end
863
+
864
+ @hits_per_page = hits_per_page
865
+ end
866
+
867
+ # Custom attribute writer method with validation
868
+ # @param [Object] min_proximity Value to be assigned
869
+ def min_proximity=(min_proximity)
870
+ if min_proximity.nil?
871
+ raise ArgumentError, 'min_proximity cannot be nil'
872
+ end
873
+
874
+ if min_proximity > 7
875
+ raise ArgumentError, 'invalid value for "min_proximity", must be smaller than or equal to 7.'
876
+ end
877
+
878
+ if min_proximity < 1
879
+ raise ArgumentError, 'invalid value for "min_proximity", must be greater than or equal to 1.'
880
+ end
881
+
882
+ @min_proximity = min_proximity
883
+ end
884
+
885
+ # Custom attribute writer method with validation
886
+ # @param [Object] max_facet_hits Value to be assigned
887
+ def max_facet_hits=(max_facet_hits)
888
+ if max_facet_hits.nil?
889
+ raise ArgumentError, 'max_facet_hits cannot be nil'
890
+ end
891
+
892
+ if max_facet_hits > 100
893
+ raise ArgumentError, 'invalid value for "max_facet_hits", must be smaller than or equal to 100.'
894
+ end
895
+
896
+ @max_facet_hits = max_facet_hits
897
+ end
898
+
899
+ # Checks equality by comparing each attribute.
900
+ # @param [Object] Object to be compared
901
+ def ==(other)
902
+ return true if equal?(other)
903
+
904
+ self.class == other.class &&
905
+ query == other.query &&
906
+ similar_query == other.similar_query &&
907
+ filters == other.filters &&
908
+ facet_filters == other.facet_filters &&
909
+ optional_filters == other.optional_filters &&
910
+ numeric_filters == other.numeric_filters &&
911
+ tag_filters == other.tag_filters &&
912
+ sum_or_filters_scores == other.sum_or_filters_scores &&
913
+ restrict_searchable_attributes == other.restrict_searchable_attributes &&
914
+ facets == other.facets &&
915
+ faceting_after_distinct == other.faceting_after_distinct &&
916
+ page == other.page &&
917
+ offset == other.offset &&
918
+ length == other.length &&
919
+ around_lat_lng == other.around_lat_lng &&
920
+ around_lat_lng_via_ip == other.around_lat_lng_via_ip &&
921
+ around_radius == other.around_radius &&
922
+ around_precision == other.around_precision &&
923
+ minimum_around_radius == other.minimum_around_radius &&
924
+ inside_bounding_box == other.inside_bounding_box &&
925
+ inside_polygon == other.inside_polygon &&
926
+ natural_languages == other.natural_languages &&
927
+ rule_contexts == other.rule_contexts &&
928
+ personalization_impact == other.personalization_impact &&
929
+ user_token == other.user_token &&
930
+ get_ranking_info == other.get_ranking_info &&
931
+ explain == other.explain &&
932
+ synonyms == other.synonyms &&
933
+ click_analytics == other.click_analytics &&
934
+ analytics == other.analytics &&
935
+ analytics_tags == other.analytics_tags &&
936
+ percentile_computation == other.percentile_computation &&
937
+ enable_ab_test == other.enable_ab_test &&
938
+ attributes_for_faceting == other.attributes_for_faceting &&
939
+ attributes_to_retrieve == other.attributes_to_retrieve &&
940
+ ranking == other.ranking &&
941
+ custom_ranking == other.custom_ranking &&
942
+ relevancy_strictness == other.relevancy_strictness &&
943
+ attributes_to_highlight == other.attributes_to_highlight &&
944
+ attributes_to_snippet == other.attributes_to_snippet &&
945
+ highlight_pre_tag == other.highlight_pre_tag &&
946
+ highlight_post_tag == other.highlight_post_tag &&
947
+ snippet_ellipsis_text == other.snippet_ellipsis_text &&
948
+ restrict_highlight_and_snippet_arrays == other.restrict_highlight_and_snippet_arrays &&
949
+ hits_per_page == other.hits_per_page &&
950
+ min_word_sizefor1_typo == other.min_word_sizefor1_typo &&
951
+ min_word_sizefor2_typos == other.min_word_sizefor2_typos &&
952
+ typo_tolerance == other.typo_tolerance &&
953
+ allow_typos_on_numeric_tokens == other.allow_typos_on_numeric_tokens &&
954
+ disable_typo_tolerance_on_attributes == other.disable_typo_tolerance_on_attributes &&
955
+ ignore_plurals == other.ignore_plurals &&
956
+ remove_stop_words == other.remove_stop_words &&
957
+ keep_diacritics_on_characters == other.keep_diacritics_on_characters &&
958
+ query_languages == other.query_languages &&
959
+ decompound_query == other.decompound_query &&
960
+ enable_rules == other.enable_rules &&
961
+ enable_personalization == other.enable_personalization &&
962
+ query_type == other.query_type &&
963
+ remove_words_if_no_results == other.remove_words_if_no_results &&
964
+ mode == other.mode &&
965
+ semantic_search == other.semantic_search &&
966
+ advanced_syntax == other.advanced_syntax &&
967
+ optional_words == other.optional_words &&
968
+ disable_exact_on_attributes == other.disable_exact_on_attributes &&
969
+ exact_on_single_word_query == other.exact_on_single_word_query &&
970
+ alternatives_as_exact == other.alternatives_as_exact &&
971
+ advanced_syntax_features == other.advanced_syntax_features &&
972
+ distinct == other.distinct &&
973
+ replace_synonyms_in_highlight == other.replace_synonyms_in_highlight &&
974
+ min_proximity == other.min_proximity &&
975
+ response_fields == other.response_fields &&
976
+ max_facet_hits == other.max_facet_hits &&
977
+ max_values_per_facet == other.max_values_per_facet &&
978
+ sort_facet_values_by == other.sort_facet_values_by &&
979
+ attribute_criteria_computed_by_min_proximity == other.attribute_criteria_computed_by_min_proximity &&
980
+ rendering_content == other.rendering_content &&
981
+ enable_re_ranking == other.enable_re_ranking &&
982
+ re_ranking_apply_filter == other.re_ranking_apply_filter &&
983
+ cursor == other.cursor
984
+ end
985
+
986
+ # @see the `==` method
987
+ # @param [Object] Object to be compared
988
+ def eql?(other)
989
+ self == other
990
+ end
991
+
992
+ # Calculates hash code according to all attributes.
993
+ # @return [Integer] Hash code
994
+ def hash
995
+ [query, similar_query, filters, facet_filters, optional_filters, numeric_filters, tag_filters, sum_or_filters_scores, restrict_searchable_attributes, facets,
996
+ faceting_after_distinct, page, offset, length, around_lat_lng, around_lat_lng_via_ip, around_radius, around_precision, minimum_around_radius, inside_bounding_box, inside_polygon, natural_languages, rule_contexts, personalization_impact, user_token, get_ranking_info, explain, synonyms, click_analytics, analytics, analytics_tags, percentile_computation, enable_ab_test, attributes_for_faceting, attributes_to_retrieve, ranking, custom_ranking, relevancy_strictness, attributes_to_highlight, attributes_to_snippet, highlight_pre_tag, highlight_post_tag, snippet_ellipsis_text, restrict_highlight_and_snippet_arrays, hits_per_page, min_word_sizefor1_typo, min_word_sizefor2_typos, typo_tolerance, allow_typos_on_numeric_tokens, disable_typo_tolerance_on_attributes, ignore_plurals, remove_stop_words, keep_diacritics_on_characters, query_languages, decompound_query, enable_rules, enable_personalization, query_type, remove_words_if_no_results, mode, semantic_search, advanced_syntax, optional_words, disable_exact_on_attributes, exact_on_single_word_query, alternatives_as_exact, advanced_syntax_features, distinct, replace_synonyms_in_highlight, min_proximity, response_fields, max_facet_hits, max_values_per_facet, sort_facet_values_by, attribute_criteria_computed_by_min_proximity, rendering_content, enable_re_ranking, re_ranking_apply_filter, cursor].hash
997
+ end
998
+
999
+ # Builds the object from hash
1000
+ # @param [Hash] attributes Model attributes in the form of hash
1001
+ # @return [Object] Returns the model itself
1002
+ def self.build_from_hash(attributes)
1003
+ return nil unless attributes.is_a?(Hash)
1004
+
1005
+ attributes = attributes.transform_keys(&:to_sym)
1006
+ transformed_hash = {}
1007
+ types_mapping.each_pair do |key, type|
1008
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
1009
+ transformed_hash[key.to_s] = nil
1010
+ elsif type =~ /\AArray<(.*)>/i
1011
+ # check to ensure the input is an array given that the attribute
1012
+ # is documented as an array but the input is not
1013
+ if attributes[attribute_map[key]].is_a?(Array)
1014
+ transformed_hash[key.to_s] = attributes[attribute_map[key]].map { |v| _deserialize(::Regexp.last_match(1), v) }
1015
+ end
1016
+ elsif !attributes[attribute_map[key]].nil?
1017
+ transformed_hash[key.to_s] = _deserialize(type, attributes[attribute_map[key]])
1018
+ end
1019
+ end
1020
+ new(transformed_hash)
1021
+ end
1022
+
1023
+ # Deserializes the data based on type
1024
+ # @param string type Data type
1025
+ # @param string value Value to be deserialized
1026
+ # @return [Object] Deserialized data
1027
+ def self._deserialize(type, value)
1028
+ case type.to_sym
1029
+ when :Time
1030
+ Time.parse(value)
1031
+ when :Date
1032
+ Date.parse(value)
1033
+ when :String
1034
+ value.to_s
1035
+ when :Integer
1036
+ value.to_i
1037
+ when :Float
1038
+ value.to_f
1039
+ when :Boolean
1040
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
1041
+ true
1042
+ else
1043
+ false
1044
+ end
1045
+ when :Object
1046
+ # generic object (usually a Hash), return directly
1047
+ value
1048
+ when /\AArray<(?<inner_type>.+)>\z/
1049
+ inner_type = Regexp.last_match[:inner_type]
1050
+ value.map { |v| _deserialize(inner_type, v) }
1051
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
1052
+ k_type = Regexp.last_match[:k_type]
1053
+ v_type = Regexp.last_match[:v_type]
1054
+ {}.tap do |hash|
1055
+ value.each do |k, v|
1056
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
1057
+ end
1058
+ end
1059
+ else # model
1060
+ # models (e.g. Pet) or oneOf
1061
+ klass = Algolia::Search.const_get(type)
1062
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
1063
+ end
1064
+ end
1065
+
1066
+ # Returns the string representation of the object
1067
+ # @return [String] String presentation of the object
1068
+ def to_s
1069
+ to_hash.to_s
1070
+ end
1071
+
1072
+ # to_body is an alias to to_hash (backward compatibility)
1073
+ # @return [Hash] Returns the object in the form of hash
1074
+ def to_body
1075
+ to_hash
1076
+ end
1077
+
1078
+ # Returns the object in the form of hash
1079
+ # @return [Hash] Returns the object in the form of hash
1080
+ def to_hash
1081
+ hash = {}
1082
+ self.class.attribute_map.each_pair do |attr, param|
1083
+ value = send(attr)
1084
+ if value.nil?
1085
+ is_nullable = self.class.openapi_nullable.include?(attr)
1086
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
1087
+ end
1088
+
1089
+ hash[param] = _to_hash(value)
1090
+ end
1091
+ hash
1092
+ end
1093
+
1094
+ # Outputs non-array value in the form of hash
1095
+ # For object, use to_hash. Otherwise, just return the value
1096
+ # @param [Object] value Any valid value
1097
+ # @return [Hash] Returns the value in the form of hash
1098
+ def _to_hash(value)
1099
+ if value.is_a?(Array)
1100
+ value.compact.map { |v| _to_hash(v) }
1101
+ elsif value.is_a?(Hash)
1102
+ {}.tap do |hash|
1103
+ value.each { |k, v| hash[k] = _to_hash(v) }
1104
+ end
1105
+ elsif value.respond_to? :to_hash
1106
+ value.to_hash
1107
+ else
1108
+ value
1109
+ end
1110
+ end
1111
+ end
1112
+ end
1113
+ end