algolia 2.3.4 → 3.0.0.alpha.2

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 (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,912 @@
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
+ # Algolia index settings.
9
+ class IndexSettings
10
+ # Creates [replicas](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/), which are copies of a primary index with the same records but different settings.
11
+ attr_accessor :replicas
12
+
13
+ # Maximum number of hits accessible through pagination.
14
+ attr_accessor :pagination_limited_to
15
+
16
+ # Attributes that can't be retrieved at query time.
17
+ attr_accessor :unretrievable_attributes
18
+
19
+ # Words for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
20
+ attr_accessor :disable_typo_tolerance_on_words
21
+
22
+ # Attributes in your index to which [Japanese transliteration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations/#japanese-transliteration-and-type-ahead) applies. This will ensure that words indexed in Katakana or Kanji can also be searched in Hiragana.
23
+ attr_accessor :attributes_to_transliterate
24
+
25
+ # Attributes on which to split [camel case](https://wikipedia.org/wiki/Camel_case) words.
26
+ attr_accessor :camel_case_attributes
27
+
28
+ # Attributes in your index to which [word segmentation](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/how-to/customize-segmentation/) (decompounding) applies.
29
+ attr_accessor :decompounded_attributes
30
+
31
+ # Set the languages of your index, for language-specific processing steps such as [tokenization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/tokenization/) and [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
32
+ attr_accessor :index_languages
33
+
34
+ # Attributes for which you want to turn off [prefix matching](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#adjusting-prefix-search).
35
+ attr_accessor :disable_prefix_on_attributes
36
+
37
+ # Incidates whether the engine compresses arrays with exclusively non-negative integers. When enabled, the compressed arrays may be reordered.
38
+ attr_accessor :allow_compression_of_integer_array
39
+
40
+ # Numeric attributes that can be used as [numerical filters](https://www.algolia.com/doc/guides/managing-results/rules/detecting-intent/how-to/applying-a-custom-filter-for-a-specific-query/#numerical-filters).
41
+ attr_accessor :numeric_attributes_for_filtering
42
+
43
+ # Controls which separators are added to an Algolia index as part of [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/#what-does-normalization-mean). Separators are all non-letter characters except spaces and currency characters, such as $€£¥.
44
+ attr_accessor :separators_to_index
45
+
46
+ # [Attributes used for searching](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/), including determining [if matches at the beginning of a word are important (ordered) or not (unordered)](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/how-to/configuring-searchable-attributes-the-right-way/#understanding-word-position).
47
+ attr_accessor :searchable_attributes
48
+
49
+ # Lets you store custom data in your indices.
50
+ attr_accessor :user_data
51
+
52
+ # A list of characters and their normalized replacements to override Algolia's default [normalization](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/).
53
+ attr_accessor :custom_normalization
54
+
55
+ # Name of the deduplication attribute to be used with Algolia's [_distinct_ feature](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/#introducing-algolias-distinct-feature).
56
+ attr_accessor :attribute_for_distinct
57
+
58
+ # 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`.
59
+ attr_accessor :attributes_for_faceting
60
+
61
+ # 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.
62
+ attr_accessor :attributes_to_retrieve
63
+
64
+ # Determines the order in which Algolia [returns your results](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/).
65
+ attr_accessor :ranking
66
+
67
+ # 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.
68
+ attr_accessor :custom_ranking
69
+
70
+ # Relevancy threshold below which less relevant results aren't included in the results.
71
+ attr_accessor :relevancy_strictness
72
+
73
+ # Attributes to highlight. Strings that match the search query in the attributes are highlighted by surrounding them with HTML tags (`highlightPreTag` and `highlightPostTag`).
74
+ attr_accessor :attributes_to_highlight
75
+
76
+ # 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`.
77
+ attr_accessor :attributes_to_snippet
78
+
79
+ # HTML string to insert before the highlighted parts in all highlight and snippet results.
80
+ attr_accessor :highlight_pre_tag
81
+
82
+ # HTML string to insert after the highlighted parts in all highlight and snippet results.
83
+ attr_accessor :highlight_post_tag
84
+
85
+ # String used as an ellipsis indicator when a snippet is truncated.
86
+ attr_accessor :snippet_ellipsis_text
87
+
88
+ # Restrict highlighting and snippeting to items that matched the query.
89
+ attr_accessor :restrict_highlight_and_snippet_arrays
90
+
91
+ # Number of hits per page.
92
+ attr_accessor :hits_per_page
93
+
94
+ # 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).
95
+ attr_accessor :min_word_sizefor1_typo
96
+
97
+ # 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).
98
+ attr_accessor :min_word_sizefor2_typos
99
+
100
+ attr_accessor :typo_tolerance
101
+
102
+ # Whether to allow typos on numbers (\"numeric tokens\") in the query string.
103
+ attr_accessor :allow_typos_on_numeric_tokens
104
+
105
+ # Attributes for which you want to turn off [typo tolerance](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/typo-tolerance/).
106
+ attr_accessor :disable_typo_tolerance_on_attributes
107
+
108
+ attr_accessor :ignore_plurals
109
+
110
+ attr_accessor :remove_stop_words
111
+
112
+ # 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/).
113
+ attr_accessor :keep_diacritics_on_characters
114
+
115
+ # 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.
116
+ attr_accessor :query_languages
117
+
118
+ # [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.
119
+ attr_accessor :decompound_query
120
+
121
+ # Incidates whether [Rules](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/) are enabled.
122
+ attr_accessor :enable_rules
123
+
124
+ # Incidates whether [Personalization](https://www.algolia.com/doc/guides/personalization/what-is-personalization/) is enabled.
125
+ attr_accessor :enable_personalization
126
+
127
+ attr_accessor :query_type
128
+
129
+ attr_accessor :remove_words_if_no_results
130
+
131
+ attr_accessor :mode
132
+
133
+ attr_accessor :semantic_search
134
+
135
+ # Enables the [advanced query syntax](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/override-search-engine-defaults/#advanced-syntax).
136
+ attr_accessor :advanced_syntax
137
+
138
+ # 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.
139
+ attr_accessor :optional_words
140
+
141
+ # 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).
142
+ attr_accessor :disable_exact_on_attributes
143
+
144
+ attr_accessor :exact_on_single_word_query
145
+
146
+ # 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).
147
+ attr_accessor :alternatives_as_exact
148
+
149
+ # Allows you to specify which advanced syntax features are active when `advancedSyntax` is enabled.
150
+ attr_accessor :advanced_syntax_features
151
+
152
+ attr_accessor :distinct
153
+
154
+ # Whether to highlight and snippet the original word that matches the synonym or the synonym itself.
155
+ attr_accessor :replace_synonyms_in_highlight
156
+
157
+ # Precision of the [proximity ranking criterion](https://www.algolia.com/doc/guides/managing-results/relevance-overview/in-depth/ranking-criteria/#proximity).
158
+ attr_accessor :min_proximity
159
+
160
+ # Attributes to include in the API response for search and browse queries.
161
+ attr_accessor :response_fields
162
+
163
+ # 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).
164
+ attr_accessor :max_facet_hits
165
+
166
+ # Maximum number of facet values to return for each facet.
167
+ attr_accessor :max_values_per_facet
168
+
169
+ # Controls how facet values are fetched.
170
+ attr_accessor :sort_facet_values_by
171
+
172
+ # 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.
173
+ attr_accessor :attribute_criteria_computed_by_min_proximity
174
+
175
+ attr_accessor :rendering_content
176
+
177
+ # Indicates whether this search will use [Dynamic Re-Ranking](https://www.algolia.com/doc/guides/algolia-ai/re-ranking/).
178
+ attr_accessor :enable_re_ranking
179
+
180
+ attr_accessor :re_ranking_apply_filter
181
+
182
+ class EnumAttributeValidator
183
+ attr_reader :datatype
184
+ attr_reader :allowable_values
185
+
186
+ def initialize(datatype, allowable_values)
187
+ @allowable_values = allowable_values.map do |value|
188
+ case datatype.to_s
189
+ when /Integer/i
190
+ value.to_i
191
+ when /Float/i
192
+ value.to_f
193
+ else
194
+ value
195
+ end
196
+ end
197
+ end
198
+
199
+ def valid?(value)
200
+ !value || allowable_values.include?(value)
201
+ end
202
+ end
203
+
204
+ # Attribute mapping from ruby-style variable name to JSON key.
205
+ def self.attribute_map
206
+ {
207
+ :replicas => :replicas,
208
+ :pagination_limited_to => :paginationLimitedTo,
209
+ :unretrievable_attributes => :unretrievableAttributes,
210
+ :disable_typo_tolerance_on_words => :disableTypoToleranceOnWords,
211
+ :attributes_to_transliterate => :attributesToTransliterate,
212
+ :camel_case_attributes => :camelCaseAttributes,
213
+ :decompounded_attributes => :decompoundedAttributes,
214
+ :index_languages => :indexLanguages,
215
+ :disable_prefix_on_attributes => :disablePrefixOnAttributes,
216
+ :allow_compression_of_integer_array => :allowCompressionOfIntegerArray,
217
+ :numeric_attributes_for_filtering => :numericAttributesForFiltering,
218
+ :separators_to_index => :separatorsToIndex,
219
+ :searchable_attributes => :searchableAttributes,
220
+ :user_data => :userData,
221
+ :custom_normalization => :customNormalization,
222
+ :attribute_for_distinct => :attributeForDistinct,
223
+ :attributes_for_faceting => :attributesForFaceting,
224
+ :attributes_to_retrieve => :attributesToRetrieve,
225
+ :ranking => :ranking,
226
+ :custom_ranking => :customRanking,
227
+ :relevancy_strictness => :relevancyStrictness,
228
+ :attributes_to_highlight => :attributesToHighlight,
229
+ :attributes_to_snippet => :attributesToSnippet,
230
+ :highlight_pre_tag => :highlightPreTag,
231
+ :highlight_post_tag => :highlightPostTag,
232
+ :snippet_ellipsis_text => :snippetEllipsisText,
233
+ :restrict_highlight_and_snippet_arrays => :restrictHighlightAndSnippetArrays,
234
+ :hits_per_page => :hitsPerPage,
235
+ :min_word_sizefor1_typo => :minWordSizefor1Typo,
236
+ :min_word_sizefor2_typos => :minWordSizefor2Typos,
237
+ :typo_tolerance => :typoTolerance,
238
+ :allow_typos_on_numeric_tokens => :allowTyposOnNumericTokens,
239
+ :disable_typo_tolerance_on_attributes => :disableTypoToleranceOnAttributes,
240
+ :ignore_plurals => :ignorePlurals,
241
+ :remove_stop_words => :removeStopWords,
242
+ :keep_diacritics_on_characters => :keepDiacriticsOnCharacters,
243
+ :query_languages => :queryLanguages,
244
+ :decompound_query => :decompoundQuery,
245
+ :enable_rules => :enableRules,
246
+ :enable_personalization => :enablePersonalization,
247
+ :query_type => :queryType,
248
+ :remove_words_if_no_results => :removeWordsIfNoResults,
249
+ :mode => :mode,
250
+ :semantic_search => :semanticSearch,
251
+ :advanced_syntax => :advancedSyntax,
252
+ :optional_words => :optionalWords,
253
+ :disable_exact_on_attributes => :disableExactOnAttributes,
254
+ :exact_on_single_word_query => :exactOnSingleWordQuery,
255
+ :alternatives_as_exact => :alternativesAsExact,
256
+ :advanced_syntax_features => :advancedSyntaxFeatures,
257
+ :distinct => :distinct,
258
+ :replace_synonyms_in_highlight => :replaceSynonymsInHighlight,
259
+ :min_proximity => :minProximity,
260
+ :response_fields => :responseFields,
261
+ :max_facet_hits => :maxFacetHits,
262
+ :max_values_per_facet => :maxValuesPerFacet,
263
+ :sort_facet_values_by => :sortFacetValuesBy,
264
+ :attribute_criteria_computed_by_min_proximity => :attributeCriteriaComputedByMinProximity,
265
+ :rendering_content => :renderingContent,
266
+ :enable_re_ranking => :enableReRanking,
267
+ :re_ranking_apply_filter => :reRankingApplyFilter
268
+ }
269
+ end
270
+
271
+ # Returns all the JSON keys this model knows about
272
+ def self.acceptable_attributes
273
+ attribute_map.values
274
+ end
275
+
276
+ # Attribute type mapping.
277
+ def self.types_mapping
278
+ {
279
+ :replicas => :'Array<String>',
280
+ :pagination_limited_to => :Integer,
281
+ :unretrievable_attributes => :'Array<String>',
282
+ :disable_typo_tolerance_on_words => :'Array<String>',
283
+ :attributes_to_transliterate => :'Array<String>',
284
+ :camel_case_attributes => :'Array<String>',
285
+ :decompounded_attributes => :Object,
286
+ :index_languages => :'Array<String>',
287
+ :disable_prefix_on_attributes => :'Array<String>',
288
+ :allow_compression_of_integer_array => :Boolean,
289
+ :numeric_attributes_for_filtering => :'Array<String>',
290
+ :separators_to_index => :String,
291
+ :searchable_attributes => :'Array<String>',
292
+ :user_data => :Object,
293
+ :custom_normalization => :'Hash<String, Hash<String, String>>',
294
+ :attribute_for_distinct => :String,
295
+ :attributes_for_faceting => :'Array<String>',
296
+ :attributes_to_retrieve => :'Array<String>',
297
+ :ranking => :'Array<String>',
298
+ :custom_ranking => :'Array<String>',
299
+ :relevancy_strictness => :Integer,
300
+ :attributes_to_highlight => :'Array<String>',
301
+ :attributes_to_snippet => :'Array<String>',
302
+ :highlight_pre_tag => :String,
303
+ :highlight_post_tag => :String,
304
+ :snippet_ellipsis_text => :String,
305
+ :restrict_highlight_and_snippet_arrays => :Boolean,
306
+ :hits_per_page => :Integer,
307
+ :min_word_sizefor1_typo => :Integer,
308
+ :min_word_sizefor2_typos => :Integer,
309
+ :typo_tolerance => :TypoTolerance,
310
+ :allow_typos_on_numeric_tokens => :Boolean,
311
+ :disable_typo_tolerance_on_attributes => :'Array<String>',
312
+ :ignore_plurals => :IgnorePlurals,
313
+ :remove_stop_words => :RemoveStopWords,
314
+ :keep_diacritics_on_characters => :String,
315
+ :query_languages => :'Array<String>',
316
+ :decompound_query => :Boolean,
317
+ :enable_rules => :Boolean,
318
+ :enable_personalization => :Boolean,
319
+ :query_type => :QueryType,
320
+ :remove_words_if_no_results => :RemoveWordsIfNoResults,
321
+ :mode => :Mode,
322
+ :semantic_search => :SemanticSearch,
323
+ :advanced_syntax => :Boolean,
324
+ :optional_words => :'Array<String>',
325
+ :disable_exact_on_attributes => :'Array<String>',
326
+ :exact_on_single_word_query => :ExactOnSingleWordQuery,
327
+ :alternatives_as_exact => :'Array<AlternativesAsExact>',
328
+ :advanced_syntax_features => :'Array<AdvancedSyntaxFeatures>',
329
+ :distinct => :Distinct,
330
+ :replace_synonyms_in_highlight => :Boolean,
331
+ :min_proximity => :Integer,
332
+ :response_fields => :'Array<String>',
333
+ :max_facet_hits => :Integer,
334
+ :max_values_per_facet => :Integer,
335
+ :sort_facet_values_by => :String,
336
+ :attribute_criteria_computed_by_min_proximity => :Boolean,
337
+ :rendering_content => :RenderingContent,
338
+ :enable_re_ranking => :Boolean,
339
+ :re_ranking_apply_filter => :ReRankingApplyFilter
340
+ }
341
+ end
342
+
343
+ # List of attributes with nullable: true
344
+ def self.openapi_nullable
345
+ Set.new([
346
+ :re_ranking_apply_filter
347
+ ])
348
+ end
349
+
350
+ # List of class defined in allOf (OpenAPI v3)
351
+ def self.openapi_all_of
352
+ [
353
+ :BaseIndexSettings,
354
+ :IndexSettingsAsSearchParams
355
+ ]
356
+ end
357
+
358
+ # Initializes the object
359
+ # @param [Hash] attributes Model attributes in the form of hash
360
+ def initialize(attributes = {})
361
+ unless attributes.is_a?(Hash)
362
+ raise ArgumentError, "The input argument (attributes) must be a hash in `Algolia::IndexSettings` initialize method"
363
+ end
364
+
365
+ # check to see if the attribute exists and convert string to symbol for hash key
366
+ attributes = attributes.each_with_object({}) do |(k, v), h|
367
+ unless self.class.attribute_map.key?(k.to_sym)
368
+ raise ArgumentError,
369
+ "`#{k}` is not a valid attribute in `Algolia::IndexSettings`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
370
+ end
371
+
372
+ h[k.to_sym] = v
373
+ end
374
+
375
+ if attributes.key?(:replicas)
376
+ if (value = attributes[:replicas]).is_a?(Array)
377
+ self.replicas = value
378
+ end
379
+ end
380
+
381
+ if attributes.key?(:pagination_limited_to)
382
+ self.pagination_limited_to = attributes[:pagination_limited_to]
383
+ end
384
+
385
+ if attributes.key?(:unretrievable_attributes)
386
+ if (value = attributes[:unretrievable_attributes]).is_a?(Array)
387
+ self.unretrievable_attributes = value
388
+ end
389
+ end
390
+
391
+ if attributes.key?(:disable_typo_tolerance_on_words)
392
+ if (value = attributes[:disable_typo_tolerance_on_words]).is_a?(Array)
393
+ self.disable_typo_tolerance_on_words = value
394
+ end
395
+ end
396
+
397
+ if attributes.key?(:attributes_to_transliterate)
398
+ if (value = attributes[:attributes_to_transliterate]).is_a?(Array)
399
+ self.attributes_to_transliterate = value
400
+ end
401
+ end
402
+
403
+ if attributes.key?(:camel_case_attributes)
404
+ if (value = attributes[:camel_case_attributes]).is_a?(Array)
405
+ self.camel_case_attributes = value
406
+ end
407
+ end
408
+
409
+ if attributes.key?(:decompounded_attributes)
410
+ self.decompounded_attributes = attributes[:decompounded_attributes]
411
+ end
412
+
413
+ if attributes.key?(:index_languages)
414
+ if (value = attributes[:index_languages]).is_a?(Array)
415
+ self.index_languages = value
416
+ end
417
+ end
418
+
419
+ if attributes.key?(:disable_prefix_on_attributes)
420
+ if (value = attributes[:disable_prefix_on_attributes]).is_a?(Array)
421
+ self.disable_prefix_on_attributes = value
422
+ end
423
+ end
424
+
425
+ if attributes.key?(:allow_compression_of_integer_array)
426
+ self.allow_compression_of_integer_array = attributes[:allow_compression_of_integer_array]
427
+ end
428
+
429
+ if attributes.key?(:numeric_attributes_for_filtering)
430
+ if (value = attributes[:numeric_attributes_for_filtering]).is_a?(Array)
431
+ self.numeric_attributes_for_filtering = value
432
+ end
433
+ end
434
+
435
+ if attributes.key?(:separators_to_index)
436
+ self.separators_to_index = attributes[:separators_to_index]
437
+ end
438
+
439
+ if attributes.key?(:searchable_attributes)
440
+ if (value = attributes[:searchable_attributes]).is_a?(Array)
441
+ self.searchable_attributes = value
442
+ end
443
+ end
444
+
445
+ if attributes.key?(:user_data)
446
+ self.user_data = attributes[:user_data]
447
+ end
448
+
449
+ if attributes.key?(:custom_normalization)
450
+ if (value = attributes[:custom_normalization]).is_a?(Hash)
451
+ self.custom_normalization = value
452
+ end
453
+ end
454
+
455
+ if attributes.key?(:attribute_for_distinct)
456
+ self.attribute_for_distinct = attributes[:attribute_for_distinct]
457
+ end
458
+
459
+ if attributes.key?(:attributes_for_faceting)
460
+ if (value = attributes[:attributes_for_faceting]).is_a?(Array)
461
+ self.attributes_for_faceting = value
462
+ end
463
+ end
464
+
465
+ if attributes.key?(:attributes_to_retrieve)
466
+ if (value = attributes[:attributes_to_retrieve]).is_a?(Array)
467
+ self.attributes_to_retrieve = value
468
+ end
469
+ end
470
+
471
+ if attributes.key?(:ranking)
472
+ if (value = attributes[:ranking]).is_a?(Array)
473
+ self.ranking = value
474
+ end
475
+ end
476
+
477
+ if attributes.key?(:custom_ranking)
478
+ if (value = attributes[:custom_ranking]).is_a?(Array)
479
+ self.custom_ranking = value
480
+ end
481
+ end
482
+
483
+ if attributes.key?(:relevancy_strictness)
484
+ self.relevancy_strictness = attributes[:relevancy_strictness]
485
+ end
486
+
487
+ if attributes.key?(:attributes_to_highlight)
488
+ if (value = attributes[:attributes_to_highlight]).is_a?(Array)
489
+ self.attributes_to_highlight = value
490
+ end
491
+ end
492
+
493
+ if attributes.key?(:attributes_to_snippet)
494
+ if (value = attributes[:attributes_to_snippet]).is_a?(Array)
495
+ self.attributes_to_snippet = value
496
+ end
497
+ end
498
+
499
+ if attributes.key?(:highlight_pre_tag)
500
+ self.highlight_pre_tag = attributes[:highlight_pre_tag]
501
+ end
502
+
503
+ if attributes.key?(:highlight_post_tag)
504
+ self.highlight_post_tag = attributes[:highlight_post_tag]
505
+ end
506
+
507
+ if attributes.key?(:snippet_ellipsis_text)
508
+ self.snippet_ellipsis_text = attributes[:snippet_ellipsis_text]
509
+ end
510
+
511
+ if attributes.key?(:restrict_highlight_and_snippet_arrays)
512
+ self.restrict_highlight_and_snippet_arrays = attributes[:restrict_highlight_and_snippet_arrays]
513
+ end
514
+
515
+ if attributes.key?(:hits_per_page)
516
+ self.hits_per_page = attributes[:hits_per_page]
517
+ end
518
+
519
+ if attributes.key?(:min_word_sizefor1_typo)
520
+ self.min_word_sizefor1_typo = attributes[:min_word_sizefor1_typo]
521
+ end
522
+
523
+ if attributes.key?(:min_word_sizefor2_typos)
524
+ self.min_word_sizefor2_typos = attributes[:min_word_sizefor2_typos]
525
+ end
526
+
527
+ if attributes.key?(:typo_tolerance)
528
+ self.typo_tolerance = attributes[:typo_tolerance]
529
+ end
530
+
531
+ if attributes.key?(:allow_typos_on_numeric_tokens)
532
+ self.allow_typos_on_numeric_tokens = attributes[:allow_typos_on_numeric_tokens]
533
+ end
534
+
535
+ if attributes.key?(:disable_typo_tolerance_on_attributes)
536
+ if (value = attributes[:disable_typo_tolerance_on_attributes]).is_a?(Array)
537
+ self.disable_typo_tolerance_on_attributes = value
538
+ end
539
+ end
540
+
541
+ if attributes.key?(:ignore_plurals)
542
+ self.ignore_plurals = attributes[:ignore_plurals]
543
+ end
544
+
545
+ if attributes.key?(:remove_stop_words)
546
+ self.remove_stop_words = attributes[:remove_stop_words]
547
+ end
548
+
549
+ if attributes.key?(:keep_diacritics_on_characters)
550
+ self.keep_diacritics_on_characters = attributes[:keep_diacritics_on_characters]
551
+ end
552
+
553
+ if attributes.key?(:query_languages)
554
+ if (value = attributes[:query_languages]).is_a?(Array)
555
+ self.query_languages = value
556
+ end
557
+ end
558
+
559
+ if attributes.key?(:decompound_query)
560
+ self.decompound_query = attributes[:decompound_query]
561
+ end
562
+
563
+ if attributes.key?(:enable_rules)
564
+ self.enable_rules = attributes[:enable_rules]
565
+ end
566
+
567
+ if attributes.key?(:enable_personalization)
568
+ self.enable_personalization = attributes[:enable_personalization]
569
+ end
570
+
571
+ if attributes.key?(:query_type)
572
+ self.query_type = attributes[:query_type]
573
+ end
574
+
575
+ if attributes.key?(:remove_words_if_no_results)
576
+ self.remove_words_if_no_results = attributes[:remove_words_if_no_results]
577
+ end
578
+
579
+ if attributes.key?(:mode)
580
+ self.mode = attributes[:mode]
581
+ end
582
+
583
+ if attributes.key?(:semantic_search)
584
+ self.semantic_search = attributes[:semantic_search]
585
+ end
586
+
587
+ if attributes.key?(:advanced_syntax)
588
+ self.advanced_syntax = attributes[:advanced_syntax]
589
+ end
590
+
591
+ if attributes.key?(:optional_words)
592
+ if (value = attributes[:optional_words]).is_a?(Array)
593
+ self.optional_words = value
594
+ end
595
+ end
596
+
597
+ if attributes.key?(:disable_exact_on_attributes)
598
+ if (value = attributes[:disable_exact_on_attributes]).is_a?(Array)
599
+ self.disable_exact_on_attributes = value
600
+ end
601
+ end
602
+
603
+ if attributes.key?(:exact_on_single_word_query)
604
+ self.exact_on_single_word_query = attributes[:exact_on_single_word_query]
605
+ end
606
+
607
+ if attributes.key?(:alternatives_as_exact)
608
+ if (value = attributes[:alternatives_as_exact]).is_a?(Array)
609
+ self.alternatives_as_exact = value
610
+ end
611
+ end
612
+
613
+ if attributes.key?(:advanced_syntax_features)
614
+ if (value = attributes[:advanced_syntax_features]).is_a?(Array)
615
+ self.advanced_syntax_features = value
616
+ end
617
+ end
618
+
619
+ if attributes.key?(:distinct)
620
+ self.distinct = attributes[:distinct]
621
+ end
622
+
623
+ if attributes.key?(:replace_synonyms_in_highlight)
624
+ self.replace_synonyms_in_highlight = attributes[:replace_synonyms_in_highlight]
625
+ end
626
+
627
+ if attributes.key?(:min_proximity)
628
+ self.min_proximity = attributes[:min_proximity]
629
+ end
630
+
631
+ if attributes.key?(:response_fields)
632
+ if (value = attributes[:response_fields]).is_a?(Array)
633
+ self.response_fields = value
634
+ end
635
+ end
636
+
637
+ if attributes.key?(:max_facet_hits)
638
+ self.max_facet_hits = attributes[:max_facet_hits]
639
+ end
640
+
641
+ if attributes.key?(:max_values_per_facet)
642
+ self.max_values_per_facet = attributes[:max_values_per_facet]
643
+ end
644
+
645
+ if attributes.key?(:sort_facet_values_by)
646
+ self.sort_facet_values_by = attributes[:sort_facet_values_by]
647
+ end
648
+
649
+ if attributes.key?(:attribute_criteria_computed_by_min_proximity)
650
+ self.attribute_criteria_computed_by_min_proximity = attributes[:attribute_criteria_computed_by_min_proximity]
651
+ end
652
+
653
+ if attributes.key?(:rendering_content)
654
+ self.rendering_content = attributes[:rendering_content]
655
+ end
656
+
657
+ if attributes.key?(:enable_re_ranking)
658
+ self.enable_re_ranking = attributes[:enable_re_ranking]
659
+ end
660
+
661
+ if attributes.key?(:re_ranking_apply_filter)
662
+ self.re_ranking_apply_filter = attributes[:re_ranking_apply_filter]
663
+ end
664
+ end
665
+
666
+ # Custom attribute writer method with validation
667
+ # @param [Object] hits_per_page Value to be assigned
668
+ def hits_per_page=(hits_per_page)
669
+ if hits_per_page.nil?
670
+ raise ArgumentError, 'hits_per_page cannot be nil'
671
+ end
672
+
673
+ if hits_per_page > 1000
674
+ raise ArgumentError, 'invalid value for "hits_per_page", must be smaller than or equal to 1000.'
675
+ end
676
+
677
+ if hits_per_page < 1
678
+ raise ArgumentError, 'invalid value for "hits_per_page", must be greater than or equal to 1.'
679
+ end
680
+
681
+ @hits_per_page = hits_per_page
682
+ end
683
+
684
+ # Custom attribute writer method with validation
685
+ # @param [Object] min_proximity Value to be assigned
686
+ def min_proximity=(min_proximity)
687
+ if min_proximity.nil?
688
+ raise ArgumentError, 'min_proximity cannot be nil'
689
+ end
690
+
691
+ if min_proximity > 7
692
+ raise ArgumentError, 'invalid value for "min_proximity", must be smaller than or equal to 7.'
693
+ end
694
+
695
+ if min_proximity < 1
696
+ raise ArgumentError, 'invalid value for "min_proximity", must be greater than or equal to 1.'
697
+ end
698
+
699
+ @min_proximity = min_proximity
700
+ end
701
+
702
+ # Custom attribute writer method with validation
703
+ # @param [Object] max_facet_hits Value to be assigned
704
+ def max_facet_hits=(max_facet_hits)
705
+ if max_facet_hits.nil?
706
+ raise ArgumentError, 'max_facet_hits cannot be nil'
707
+ end
708
+
709
+ if max_facet_hits > 100
710
+ raise ArgumentError, 'invalid value for "max_facet_hits", must be smaller than or equal to 100.'
711
+ end
712
+
713
+ @max_facet_hits = max_facet_hits
714
+ end
715
+
716
+ # Checks equality by comparing each attribute.
717
+ # @param [Object] Object to be compared
718
+ def ==(other)
719
+ return true if equal?(other)
720
+
721
+ self.class == other.class &&
722
+ replicas == other.replicas &&
723
+ pagination_limited_to == other.pagination_limited_to &&
724
+ unretrievable_attributes == other.unretrievable_attributes &&
725
+ disable_typo_tolerance_on_words == other.disable_typo_tolerance_on_words &&
726
+ attributes_to_transliterate == other.attributes_to_transliterate &&
727
+ camel_case_attributes == other.camel_case_attributes &&
728
+ decompounded_attributes == other.decompounded_attributes &&
729
+ index_languages == other.index_languages &&
730
+ disable_prefix_on_attributes == other.disable_prefix_on_attributes &&
731
+ allow_compression_of_integer_array == other.allow_compression_of_integer_array &&
732
+ numeric_attributes_for_filtering == other.numeric_attributes_for_filtering &&
733
+ separators_to_index == other.separators_to_index &&
734
+ searchable_attributes == other.searchable_attributes &&
735
+ user_data == other.user_data &&
736
+ custom_normalization == other.custom_normalization &&
737
+ attribute_for_distinct == other.attribute_for_distinct &&
738
+ attributes_for_faceting == other.attributes_for_faceting &&
739
+ attributes_to_retrieve == other.attributes_to_retrieve &&
740
+ ranking == other.ranking &&
741
+ custom_ranking == other.custom_ranking &&
742
+ relevancy_strictness == other.relevancy_strictness &&
743
+ attributes_to_highlight == other.attributes_to_highlight &&
744
+ attributes_to_snippet == other.attributes_to_snippet &&
745
+ highlight_pre_tag == other.highlight_pre_tag &&
746
+ highlight_post_tag == other.highlight_post_tag &&
747
+ snippet_ellipsis_text == other.snippet_ellipsis_text &&
748
+ restrict_highlight_and_snippet_arrays == other.restrict_highlight_and_snippet_arrays &&
749
+ hits_per_page == other.hits_per_page &&
750
+ min_word_sizefor1_typo == other.min_word_sizefor1_typo &&
751
+ min_word_sizefor2_typos == other.min_word_sizefor2_typos &&
752
+ typo_tolerance == other.typo_tolerance &&
753
+ allow_typos_on_numeric_tokens == other.allow_typos_on_numeric_tokens &&
754
+ disable_typo_tolerance_on_attributes == other.disable_typo_tolerance_on_attributes &&
755
+ ignore_plurals == other.ignore_plurals &&
756
+ remove_stop_words == other.remove_stop_words &&
757
+ keep_diacritics_on_characters == other.keep_diacritics_on_characters &&
758
+ query_languages == other.query_languages &&
759
+ decompound_query == other.decompound_query &&
760
+ enable_rules == other.enable_rules &&
761
+ enable_personalization == other.enable_personalization &&
762
+ query_type == other.query_type &&
763
+ remove_words_if_no_results == other.remove_words_if_no_results &&
764
+ mode == other.mode &&
765
+ semantic_search == other.semantic_search &&
766
+ advanced_syntax == other.advanced_syntax &&
767
+ optional_words == other.optional_words &&
768
+ disable_exact_on_attributes == other.disable_exact_on_attributes &&
769
+ exact_on_single_word_query == other.exact_on_single_word_query &&
770
+ alternatives_as_exact == other.alternatives_as_exact &&
771
+ advanced_syntax_features == other.advanced_syntax_features &&
772
+ distinct == other.distinct &&
773
+ replace_synonyms_in_highlight == other.replace_synonyms_in_highlight &&
774
+ min_proximity == other.min_proximity &&
775
+ response_fields == other.response_fields &&
776
+ max_facet_hits == other.max_facet_hits &&
777
+ max_values_per_facet == other.max_values_per_facet &&
778
+ sort_facet_values_by == other.sort_facet_values_by &&
779
+ attribute_criteria_computed_by_min_proximity == other.attribute_criteria_computed_by_min_proximity &&
780
+ rendering_content == other.rendering_content &&
781
+ enable_re_ranking == other.enable_re_ranking &&
782
+ re_ranking_apply_filter == other.re_ranking_apply_filter
783
+ end
784
+
785
+ # @see the `==` method
786
+ # @param [Object] Object to be compared
787
+ def eql?(other)
788
+ self == other
789
+ end
790
+
791
+ # Calculates hash code according to all attributes.
792
+ # @return [Integer] Hash code
793
+ def hash
794
+ [replicas, pagination_limited_to, unretrievable_attributes, disable_typo_tolerance_on_words, attributes_to_transliterate, camel_case_attributes, decompounded_attributes,
795
+ index_languages, disable_prefix_on_attributes, allow_compression_of_integer_array, numeric_attributes_for_filtering, separators_to_index, searchable_attributes, user_data, custom_normalization, attribute_for_distinct, 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].hash
796
+ end
797
+
798
+ # Builds the object from hash
799
+ # @param [Hash] attributes Model attributes in the form of hash
800
+ # @return [Object] Returns the model itself
801
+ def self.build_from_hash(attributes)
802
+ return nil unless attributes.is_a?(Hash)
803
+
804
+ attributes = attributes.transform_keys(&:to_sym)
805
+ transformed_hash = {}
806
+ types_mapping.each_pair do |key, type|
807
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
808
+ transformed_hash[key.to_s] = nil
809
+ elsif type =~ /\AArray<(.*)>/i
810
+ # check to ensure the input is an array given that the attribute
811
+ # is documented as an array but the input is not
812
+ if attributes[attribute_map[key]].is_a?(Array)
813
+ transformed_hash[key.to_s] = attributes[attribute_map[key]].map { |v| _deserialize(::Regexp.last_match(1), v) }
814
+ end
815
+ elsif !attributes[attribute_map[key]].nil?
816
+ transformed_hash[key.to_s] = _deserialize(type, attributes[attribute_map[key]])
817
+ end
818
+ end
819
+ new(transformed_hash)
820
+ end
821
+
822
+ # Deserializes the data based on type
823
+ # @param string type Data type
824
+ # @param string value Value to be deserialized
825
+ # @return [Object] Deserialized data
826
+ def self._deserialize(type, value)
827
+ case type.to_sym
828
+ when :Time
829
+ Time.parse(value)
830
+ when :Date
831
+ Date.parse(value)
832
+ when :String
833
+ value.to_s
834
+ when :Integer
835
+ value.to_i
836
+ when :Float
837
+ value.to_f
838
+ when :Boolean
839
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
840
+ true
841
+ else
842
+ false
843
+ end
844
+ when :Object
845
+ # generic object (usually a Hash), return directly
846
+ value
847
+ when /\AArray<(?<inner_type>.+)>\z/
848
+ inner_type = Regexp.last_match[:inner_type]
849
+ value.map { |v| _deserialize(inner_type, v) }
850
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
851
+ k_type = Regexp.last_match[:k_type]
852
+ v_type = Regexp.last_match[:v_type]
853
+ {}.tap do |hash|
854
+ value.each do |k, v|
855
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
856
+ end
857
+ end
858
+ else # model
859
+ # models (e.g. Pet) or oneOf
860
+ klass = Algolia::Search.const_get(type)
861
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
862
+ end
863
+ end
864
+
865
+ # Returns the string representation of the object
866
+ # @return [String] String presentation of the object
867
+ def to_s
868
+ to_hash.to_s
869
+ end
870
+
871
+ # to_body is an alias to to_hash (backward compatibility)
872
+ # @return [Hash] Returns the object in the form of hash
873
+ def to_body
874
+ to_hash
875
+ end
876
+
877
+ # Returns the object in the form of hash
878
+ # @return [Hash] Returns the object in the form of hash
879
+ def to_hash
880
+ hash = {}
881
+ self.class.attribute_map.each_pair do |attr, param|
882
+ value = send(attr)
883
+ if value.nil?
884
+ is_nullable = self.class.openapi_nullable.include?(attr)
885
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
886
+ end
887
+
888
+ hash[param] = _to_hash(value)
889
+ end
890
+ hash
891
+ end
892
+
893
+ # Outputs non-array value in the form of hash
894
+ # For object, use to_hash. Otherwise, just return the value
895
+ # @param [Object] value Any valid value
896
+ # @return [Hash] Returns the value in the form of hash
897
+ def _to_hash(value)
898
+ if value.is_a?(Array)
899
+ value.compact.map { |v| _to_hash(v) }
900
+ elsif value.is_a?(Hash)
901
+ {}.tap do |hash|
902
+ value.each { |k, v| hash[k] = _to_hash(v) }
903
+ end
904
+ elsif value.respond_to? :to_hash
905
+ value.to_hash
906
+ else
907
+ value
908
+ end
909
+ end
910
+ end
911
+ end
912
+ end