algolia 3.8.0 → 3.8.1
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.
- checksums.yaml +4 -4
 - data/CHANGELOG.md +5 -0
 - data/Gemfile.lock +1 -1
 - data/lib/algolia/api/search_client.rb +2 -2
 - data/lib/algolia/models/recommend/fallback_params.rb +19 -22
 - data/lib/algolia/models/recommend/inside_bounding_box.rb +108 -0
 - data/lib/algolia/models/recommend/optional_words.rb +108 -0
 - data/lib/algolia/models/recommend/recommend_search_params.rb +19 -22
 - data/lib/algolia/models/recommend/recommendations_request.rb +0 -1
 - data/lib/algolia/models/search/browse_params_object.rb +8 -22
 - data/lib/algolia/models/search/consequence_params.rb +8 -22
 - data/lib/algolia/models/search/delete_by_params.rb +5 -6
 - data/lib/algolia/models/search/index_settings.rb +16 -17
 - data/lib/algolia/models/search/inside_bounding_box.rb +108 -0
 - data/lib/algolia/models/search/optional_words.rb +108 -0
 - data/lib/algolia/models/search/search_for_facets.rb +19 -22
 - data/lib/algolia/models/search/search_for_hits.rb +8 -22
 - data/lib/algolia/models/search/search_params_object.rb +8 -22
 - data/lib/algolia/models/search/settings_response.rb +16 -17
 - data/lib/algolia/version.rb +1 -1
 - metadata +6 -4
 - data/lib/algolia/models/recommend/recommended_for_you_model.rb +0 -31
 - data/lib/algolia/models/recommend/recommended_for_you_query.rb +0 -273
 
| 
         @@ -57,7 +57,6 @@ module Algolia 
     | 
|
| 
       57 
57 
     | 
    
         
             
                  # Minimum radius (in meters) for a search around a location when `aroundRadius` isn't set.
         
     | 
| 
       58 
58 
     | 
    
         
             
                  attr_accessor :minimum_around_radius
         
     | 
| 
       59 
59 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
                  # Coordinates for a rectangular area in which to search.  Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
         
     | 
| 
       61 
60 
     | 
    
         
             
                  attr_accessor :inside_bounding_box
         
     | 
| 
       62 
61 
     | 
    
         | 
| 
       63 
62 
     | 
    
         
             
                  # Coordinates of a polygon in which to search.  Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored if you also specify `insideBoundingBox`.
         
     | 
| 
         @@ -173,7 +172,6 @@ module Algolia 
     | 
|
| 
       173 
172 
     | 
    
         
             
                  # Whether to support phrase matching and excluding words from search queries.  Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
         
     | 
| 
       174 
173 
     | 
    
         
             
                  attr_accessor :advanced_syntax
         
     | 
| 
       175 
174 
     | 
    
         | 
| 
       176 
     | 
    
         
            -
                  # Words that should be considered optional when found in the query.  By default, records must match all words in the search query to be included in the search results. Adding optional words can help to increase the number of search results by running an additional search query that doesn't include the optional words. For example, if the search query is \"action video\" and \"video\" is an optional word, the search engine runs two queries. One for \"action video\" and one for \"action\". Records that match all words are ranked higher.  For a search query with 4 or more words **and** all its words are optional, the number of matched words required for a record to be included in the search results increases for every 1,000 records:  - If `optionalWords` has less than 10 words, the required number of matched words increases by 1:   results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words divided by 5 (rounded down).   For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words.  For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words).
         
     | 
| 
       177 
175 
     | 
    
         
             
                  attr_accessor :optional_words
         
     | 
| 
       178 
176 
     | 
    
         | 
| 
       179 
177 
     | 
    
         
             
                  # Searchable 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). Attribute names are case-sensitive.  This can be useful for attributes with long values, where the likelihood of an exact match is high, such as product descriptions. Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. This reduces the impact of individual attributes with a lot of content on ranking.
         
     | 
| 
         @@ -198,9 +196,6 @@ module Algolia 
     | 
|
| 
       198 
196 
     | 
    
         
             
                  # Properties to include in the API response of `search` and `browse` requests.  By default, all response properties are included. To reduce the response size, you can select, which attributes should be included.  You can't exclude these properties: `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter.  Don't exclude properties that you might need in your search UI.
         
     | 
| 
       199 
197 
     | 
    
         
             
                  attr_accessor :response_fields
         
     | 
| 
       200 
198 
     | 
    
         | 
| 
       201 
     | 
    
         
            -
                  # Maximum number of facet values to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
         
     | 
| 
       202 
     | 
    
         
            -
                  attr_accessor :max_facet_hits
         
     | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
       204 
199 
     | 
    
         
             
                  # Maximum number of facet values to return for each facet.
         
     | 
| 
       205 
200 
     | 
    
         
             
                  attr_accessor :max_values_per_facet
         
     | 
| 
       206 
201 
     | 
    
         | 
| 
         @@ -292,7 +287,6 @@ module Algolia 
     | 
|
| 
       292 
287 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :replaceSynonymsInHighlight,
         
     | 
| 
       293 
288 
     | 
    
         
             
                      :min_proximity => :minProximity,
         
     | 
| 
       294 
289 
     | 
    
         
             
                      :response_fields => :responseFields,
         
     | 
| 
       295 
     | 
    
         
            -
                      :max_facet_hits => :maxFacetHits,
         
     | 
| 
       296 
290 
     | 
    
         
             
                      :max_values_per_facet => :maxValuesPerFacet,
         
     | 
| 
       297 
291 
     | 
    
         
             
                      :sort_facet_values_by => :sortFacetValuesBy,
         
     | 
| 
       298 
292 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :attributeCriteriaComputedByMinProximity,
         
     | 
| 
         @@ -330,7 +324,7 @@ module Algolia 
     | 
|
| 
       330 
324 
     | 
    
         
             
                      :around_radius => :"AroundRadius",
         
     | 
| 
       331 
325 
     | 
    
         
             
                      :around_precision => :"AroundPrecision",
         
     | 
| 
       332 
326 
     | 
    
         
             
                      :minimum_around_radius => :"Integer",
         
     | 
| 
       333 
     | 
    
         
            -
                      :inside_bounding_box => :" 
     | 
| 
      
 327 
     | 
    
         
            +
                      :inside_bounding_box => :"InsideBoundingBox",
         
     | 
| 
       334 
328 
     | 
    
         
             
                      :inside_polygon => :"Array<Array<Float>>",
         
     | 
| 
       335 
329 
     | 
    
         
             
                      :natural_languages => :"Array<SupportedLanguage>",
         
     | 
| 
       336 
330 
     | 
    
         
             
                      :rule_contexts => :"Array<String>",
         
     | 
| 
         @@ -371,7 +365,7 @@ module Algolia 
     | 
|
| 
       371 
365 
     | 
    
         
             
                      :mode => :"Mode",
         
     | 
| 
       372 
366 
     | 
    
         
             
                      :semantic_search => :"SemanticSearch",
         
     | 
| 
       373 
367 
     | 
    
         
             
                      :advanced_syntax => :"Boolean",
         
     | 
| 
       374 
     | 
    
         
            -
                      :optional_words => :" 
     | 
| 
      
 368 
     | 
    
         
            +
                      :optional_words => :"OptionalWords",
         
     | 
| 
       375 
369 
     | 
    
         
             
                      :disable_exact_on_attributes => :"Array<String>",
         
     | 
| 
       376 
370 
     | 
    
         
             
                      :exact_on_single_word_query => :"ExactOnSingleWordQuery",
         
     | 
| 
       377 
371 
     | 
    
         
             
                      :alternatives_as_exact => :"Array<AlternativesAsExact>",
         
     | 
| 
         @@ -380,7 +374,6 @@ module Algolia 
     | 
|
| 
       380 
374 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :"Boolean",
         
     | 
| 
       381 
375 
     | 
    
         
             
                      :min_proximity => :"Integer",
         
     | 
| 
       382 
376 
     | 
    
         
             
                      :response_fields => :"Array<String>",
         
     | 
| 
       383 
     | 
    
         
            -
                      :max_facet_hits => :"Integer",
         
     | 
| 
       384 
377 
     | 
    
         
             
                      :max_values_per_facet => :"Integer",
         
     | 
| 
       385 
378 
     | 
    
         
             
                      :sort_facet_values_by => :"String",
         
     | 
| 
       386 
379 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :"Boolean",
         
     | 
| 
         @@ -394,7 +387,10 @@ module Algolia 
     | 
|
| 
       394 
387 
     | 
    
         
             
                  # List of attributes with nullable: true
         
     | 
| 
       395 
388 
     | 
    
         
             
                  def self.openapi_nullable
         
     | 
| 
       396 
389 
     | 
    
         
             
                    Set.new(
         
     | 
| 
       397 
     | 
    
         
            -
                      [ 
     | 
| 
      
 390 
     | 
    
         
            +
                      [
         
     | 
| 
      
 391 
     | 
    
         
            +
                        :inside_bounding_box,
         
     | 
| 
      
 392 
     | 
    
         
            +
                        :optional_words
         
     | 
| 
      
 393 
     | 
    
         
            +
                      ]
         
     | 
| 
       398 
394 
     | 
    
         
             
                    )
         
     | 
| 
       399 
395 
     | 
    
         
             
                  end
         
     | 
| 
       400 
396 
     | 
    
         | 
| 
         @@ -510,9 +506,7 @@ module Algolia 
     | 
|
| 
       510 
506 
     | 
    
         
             
                    end
         
     | 
| 
       511 
507 
     | 
    
         | 
| 
       512 
508 
     | 
    
         
             
                    if attributes.key?(:inside_bounding_box)
         
     | 
| 
       513 
     | 
    
         
            -
                       
     | 
| 
       514 
     | 
    
         
            -
                        self.inside_bounding_box = value
         
     | 
| 
       515 
     | 
    
         
            -
                      end
         
     | 
| 
      
 509 
     | 
    
         
            +
                      self.inside_bounding_box = attributes[:inside_bounding_box]
         
     | 
| 
       516 
510 
     | 
    
         
             
                    end
         
     | 
| 
       517 
511 
     | 
    
         | 
| 
       518 
512 
     | 
    
         
             
                    if attributes.key?(:inside_polygon)
         
     | 
| 
         @@ -698,9 +692,7 @@ module Algolia 
     | 
|
| 
       698 
692 
     | 
    
         
             
                    end
         
     | 
| 
       699 
693 
     | 
    
         | 
| 
       700 
694 
     | 
    
         
             
                    if attributes.key?(:optional_words)
         
     | 
| 
       701 
     | 
    
         
            -
                       
     | 
| 
       702 
     | 
    
         
            -
                        self.optional_words = value
         
     | 
| 
       703 
     | 
    
         
            -
                      end
         
     | 
| 
      
 695 
     | 
    
         
            +
                      self.optional_words = attributes[:optional_words]
         
     | 
| 
       704 
696 
     | 
    
         
             
                    end
         
     | 
| 
       705 
697 
     | 
    
         | 
| 
       706 
698 
     | 
    
         
             
                    if attributes.key?(:disable_exact_on_attributes)
         
     | 
| 
         @@ -743,10 +735,6 @@ module Algolia 
     | 
|
| 
       743 
735 
     | 
    
         
             
                      end
         
     | 
| 
       744 
736 
     | 
    
         
             
                    end
         
     | 
| 
       745 
737 
     | 
    
         | 
| 
       746 
     | 
    
         
            -
                    if attributes.key?(:max_facet_hits)
         
     | 
| 
       747 
     | 
    
         
            -
                      self.max_facet_hits = attributes[:max_facet_hits]
         
     | 
| 
       748 
     | 
    
         
            -
                    end
         
     | 
| 
       749 
     | 
    
         
            -
             
     | 
| 
       750 
738 
     | 
    
         
             
                    if attributes.key?(:max_values_per_facet)
         
     | 
| 
       751 
739 
     | 
    
         
             
                      self.max_values_per_facet = attributes[:max_values_per_facet]
         
     | 
| 
       752 
740 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -850,7 +838,6 @@ module Algolia 
     | 
|
| 
       850 
838 
     | 
    
         
             
                      replace_synonyms_in_highlight == other.replace_synonyms_in_highlight &&
         
     | 
| 
       851 
839 
     | 
    
         
             
                      min_proximity == other.min_proximity &&
         
     | 
| 
       852 
840 
     | 
    
         
             
                      response_fields == other.response_fields &&
         
     | 
| 
       853 
     | 
    
         
            -
                      max_facet_hits == other.max_facet_hits &&
         
     | 
| 
       854 
841 
     | 
    
         
             
                      max_values_per_facet == other.max_values_per_facet &&
         
     | 
| 
       855 
842 
     | 
    
         
             
                      sort_facet_values_by == other.sort_facet_values_by &&
         
     | 
| 
       856 
843 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity == other.attribute_criteria_computed_by_min_proximity &&
         
     | 
| 
         @@ -939,7 +926,6 @@ module Algolia 
     | 
|
| 
       939 
926 
     | 
    
         
             
                      replace_synonyms_in_highlight,
         
     | 
| 
       940 
927 
     | 
    
         
             
                      min_proximity,
         
     | 
| 
       941 
928 
     | 
    
         
             
                      response_fields,
         
     | 
| 
       942 
     | 
    
         
            -
                      max_facet_hits,
         
     | 
| 
       943 
929 
     | 
    
         
             
                      max_values_per_facet,
         
     | 
| 
       944 
930 
     | 
    
         
             
                      sort_facet_values_by,
         
     | 
| 
       945 
931 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity,
         
     | 
| 
         @@ -54,7 +54,6 @@ module Algolia 
     | 
|
| 
       54 
54 
     | 
    
         
             
                  # Minimum radius (in meters) for a search around a location when `aroundRadius` isn't set.
         
     | 
| 
       55 
55 
     | 
    
         
             
                  attr_accessor :minimum_around_radius
         
     | 
| 
       56 
56 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
                  # Coordinates for a rectangular area in which to search.  Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
         
     | 
| 
       58 
57 
     | 
    
         
             
                  attr_accessor :inside_bounding_box
         
     | 
| 
       59 
58 
     | 
    
         | 
| 
       60 
59 
     | 
    
         
             
                  # Coordinates of a polygon in which to search.  Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored if you also specify `insideBoundingBox`.
         
     | 
| 
         @@ -170,7 +169,6 @@ module Algolia 
     | 
|
| 
       170 
169 
     | 
    
         
             
                  # Whether to support phrase matching and excluding words from search queries.  Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
         
     | 
| 
       171 
170 
     | 
    
         
             
                  attr_accessor :advanced_syntax
         
     | 
| 
       172 
171 
     | 
    
         | 
| 
       173 
     | 
    
         
            -
                  # Words that should be considered optional when found in the query.  By default, records must match all words in the search query to be included in the search results. Adding optional words can help to increase the number of search results by running an additional search query that doesn't include the optional words. For example, if the search query is \"action video\" and \"video\" is an optional word, the search engine runs two queries. One for \"action video\" and one for \"action\". Records that match all words are ranked higher.  For a search query with 4 or more words **and** all its words are optional, the number of matched words required for a record to be included in the search results increases for every 1,000 records:  - If `optionalWords` has less than 10 words, the required number of matched words increases by 1:   results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words divided by 5 (rounded down).   For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words.  For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words).
         
     | 
| 
       174 
172 
     | 
    
         
             
                  attr_accessor :optional_words
         
     | 
| 
       175 
173 
     | 
    
         | 
| 
       176 
174 
     | 
    
         
             
                  # Searchable 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). Attribute names are case-sensitive.  This can be useful for attributes with long values, where the likelihood of an exact match is high, such as product descriptions. Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. This reduces the impact of individual attributes with a lot of content on ranking.
         
     | 
| 
         @@ -195,9 +193,6 @@ module Algolia 
     | 
|
| 
       195 
193 
     | 
    
         
             
                  # Properties to include in the API response of `search` and `browse` requests.  By default, all response properties are included. To reduce the response size, you can select, which attributes should be included.  You can't exclude these properties: `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter.  Don't exclude properties that you might need in your search UI.
         
     | 
| 
       196 
194 
     | 
    
         
             
                  attr_accessor :response_fields
         
     | 
| 
       197 
195 
     | 
    
         | 
| 
       198 
     | 
    
         
            -
                  # Maximum number of facet values to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
         
     | 
| 
       199 
     | 
    
         
            -
                  attr_accessor :max_facet_hits
         
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
196 
     | 
    
         
             
                  # Maximum number of facet values to return for each facet.
         
     | 
| 
       202 
197 
     | 
    
         
             
                  attr_accessor :max_values_per_facet
         
     | 
| 
       203 
198 
     | 
    
         | 
| 
         @@ -291,7 +286,6 @@ module Algolia 
     | 
|
| 
       291 
286 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :replaceSynonymsInHighlight,
         
     | 
| 
       292 
287 
     | 
    
         
             
                      :min_proximity => :minProximity,
         
     | 
| 
       293 
288 
     | 
    
         
             
                      :response_fields => :responseFields,
         
     | 
| 
       294 
     | 
    
         
            -
                      :max_facet_hits => :maxFacetHits,
         
     | 
| 
       295 
289 
     | 
    
         
             
                      :max_values_per_facet => :maxValuesPerFacet,
         
     | 
| 
       296 
290 
     | 
    
         
             
                      :sort_facet_values_by => :sortFacetValuesBy,
         
     | 
| 
       297 
291 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :attributeCriteriaComputedByMinProximity,
         
     | 
| 
         @@ -330,7 +324,7 @@ module Algolia 
     | 
|
| 
       330 
324 
     | 
    
         
             
                      :around_radius => :"AroundRadius",
         
     | 
| 
       331 
325 
     | 
    
         
             
                      :around_precision => :"AroundPrecision",
         
     | 
| 
       332 
326 
     | 
    
         
             
                      :minimum_around_radius => :"Integer",
         
     | 
| 
       333 
     | 
    
         
            -
                      :inside_bounding_box => :" 
     | 
| 
      
 327 
     | 
    
         
            +
                      :inside_bounding_box => :"InsideBoundingBox",
         
     | 
| 
       334 
328 
     | 
    
         
             
                      :inside_polygon => :"Array<Array<Float>>",
         
     | 
| 
       335 
329 
     | 
    
         
             
                      :natural_languages => :"Array<SupportedLanguage>",
         
     | 
| 
       336 
330 
     | 
    
         
             
                      :rule_contexts => :"Array<String>",
         
     | 
| 
         @@ -371,7 +365,7 @@ module Algolia 
     | 
|
| 
       371 
365 
     | 
    
         
             
                      :mode => :"Mode",
         
     | 
| 
       372 
366 
     | 
    
         
             
                      :semantic_search => :"SemanticSearch",
         
     | 
| 
       373 
367 
     | 
    
         
             
                      :advanced_syntax => :"Boolean",
         
     | 
| 
       374 
     | 
    
         
            -
                      :optional_words => :" 
     | 
| 
      
 368 
     | 
    
         
            +
                      :optional_words => :"OptionalWords",
         
     | 
| 
       375 
369 
     | 
    
         
             
                      :disable_exact_on_attributes => :"Array<String>",
         
     | 
| 
       376 
370 
     | 
    
         
             
                      :exact_on_single_word_query => :"ExactOnSingleWordQuery",
         
     | 
| 
       377 
371 
     | 
    
         
             
                      :alternatives_as_exact => :"Array<AlternativesAsExact>",
         
     | 
| 
         @@ -380,7 +374,6 @@ module Algolia 
     | 
|
| 
       380 
374 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :"Boolean",
         
     | 
| 
       381 
375 
     | 
    
         
             
                      :min_proximity => :"Integer",
         
     | 
| 
       382 
376 
     | 
    
         
             
                      :response_fields => :"Array<String>",
         
     | 
| 
       383 
     | 
    
         
            -
                      :max_facet_hits => :"Integer",
         
     | 
| 
       384 
377 
     | 
    
         
             
                      :max_values_per_facet => :"Integer",
         
     | 
| 
       385 
378 
     | 
    
         
             
                      :sort_facet_values_by => :"String",
         
     | 
| 
       386 
379 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :"Boolean",
         
     | 
| 
         @@ -396,7 +389,10 @@ module Algolia 
     | 
|
| 
       396 
389 
     | 
    
         
             
                  # List of attributes with nullable: true
         
     | 
| 
       397 
390 
     | 
    
         
             
                  def self.openapi_nullable
         
     | 
| 
       398 
391 
     | 
    
         
             
                    Set.new(
         
     | 
| 
       399 
     | 
    
         
            -
                      [ 
     | 
| 
      
 392 
     | 
    
         
            +
                      [
         
     | 
| 
      
 393 
     | 
    
         
            +
                        :inside_bounding_box,
         
     | 
| 
      
 394 
     | 
    
         
            +
                        :optional_words
         
     | 
| 
      
 395 
     | 
    
         
            +
                      ]
         
     | 
| 
       400 
396 
     | 
    
         
             
                    )
         
     | 
| 
       401 
397 
     | 
    
         
             
                  end
         
     | 
| 
       402 
398 
     | 
    
         | 
| 
         @@ -509,9 +505,7 @@ module Algolia 
     | 
|
| 
       509 
505 
     | 
    
         
             
                    end
         
     | 
| 
       510 
506 
     | 
    
         | 
| 
       511 
507 
     | 
    
         
             
                    if attributes.key?(:inside_bounding_box)
         
     | 
| 
       512 
     | 
    
         
            -
                       
     | 
| 
       513 
     | 
    
         
            -
                        self.inside_bounding_box = value
         
     | 
| 
       514 
     | 
    
         
            -
                      end
         
     | 
| 
      
 508 
     | 
    
         
            +
                      self.inside_bounding_box = attributes[:inside_bounding_box]
         
     | 
| 
       515 
509 
     | 
    
         
             
                    end
         
     | 
| 
       516 
510 
     | 
    
         | 
| 
       517 
511 
     | 
    
         
             
                    if attributes.key?(:inside_polygon)
         
     | 
| 
         @@ -697,9 +691,7 @@ module Algolia 
     | 
|
| 
       697 
691 
     | 
    
         
             
                    end
         
     | 
| 
       698 
692 
     | 
    
         | 
| 
       699 
693 
     | 
    
         
             
                    if attributes.key?(:optional_words)
         
     | 
| 
       700 
     | 
    
         
            -
                       
     | 
| 
       701 
     | 
    
         
            -
                        self.optional_words = value
         
     | 
| 
       702 
     | 
    
         
            -
                      end
         
     | 
| 
      
 694 
     | 
    
         
            +
                      self.optional_words = attributes[:optional_words]
         
     | 
| 
       703 
695 
     | 
    
         
             
                    end
         
     | 
| 
       704 
696 
     | 
    
         | 
| 
       705 
697 
     | 
    
         
             
                    if attributes.key?(:disable_exact_on_attributes)
         
     | 
| 
         @@ -742,10 +734,6 @@ module Algolia 
     | 
|
| 
       742 
734 
     | 
    
         
             
                      end
         
     | 
| 
       743 
735 
     | 
    
         
             
                    end
         
     | 
| 
       744 
736 
     | 
    
         | 
| 
       745 
     | 
    
         
            -
                    if attributes.key?(:max_facet_hits)
         
     | 
| 
       746 
     | 
    
         
            -
                      self.max_facet_hits = attributes[:max_facet_hits]
         
     | 
| 
       747 
     | 
    
         
            -
                    end
         
     | 
| 
       748 
     | 
    
         
            -
             
     | 
| 
       749 
737 
     | 
    
         
             
                    if attributes.key?(:max_values_per_facet)
         
     | 
| 
       750 
738 
     | 
    
         
             
                      self.max_values_per_facet = attributes[:max_values_per_facet]
         
     | 
| 
       751 
739 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -856,7 +844,6 @@ module Algolia 
     | 
|
| 
       856 
844 
     | 
    
         
             
                      replace_synonyms_in_highlight == other.replace_synonyms_in_highlight &&
         
     | 
| 
       857 
845 
     | 
    
         
             
                      min_proximity == other.min_proximity &&
         
     | 
| 
       858 
846 
     | 
    
         
             
                      response_fields == other.response_fields &&
         
     | 
| 
       859 
     | 
    
         
            -
                      max_facet_hits == other.max_facet_hits &&
         
     | 
| 
       860 
847 
     | 
    
         
             
                      max_values_per_facet == other.max_values_per_facet &&
         
     | 
| 
       861 
848 
     | 
    
         
             
                      sort_facet_values_by == other.sort_facet_values_by &&
         
     | 
| 
       862 
849 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity == other.attribute_criteria_computed_by_min_proximity &&
         
     | 
| 
         @@ -946,7 +933,6 @@ module Algolia 
     | 
|
| 
       946 
933 
     | 
    
         
             
                      replace_synonyms_in_highlight,
         
     | 
| 
       947 
934 
     | 
    
         
             
                      min_proximity,
         
     | 
| 
       948 
935 
     | 
    
         
             
                      response_fields,
         
     | 
| 
       949 
     | 
    
         
            -
                      max_facet_hits,
         
     | 
| 
       950 
936 
     | 
    
         
             
                      max_values_per_facet,
         
     | 
| 
       951 
937 
     | 
    
         
             
                      sort_facet_values_by,
         
     | 
| 
       952 
938 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity,
         
     | 
| 
         @@ -20,7 +20,6 @@ module Algolia 
     | 
|
| 
       20 
20 
     | 
    
         | 
| 
       21 
21 
     | 
    
         
             
                  attr_accessor :around_radius
         
     | 
| 
       22 
22 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
                  # Coordinates for a rectangular area in which to search.  Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
         
     | 
| 
       24 
23 
     | 
    
         
             
                  attr_accessor :inside_bounding_box
         
     | 
| 
       25 
24 
     | 
    
         | 
| 
       26 
25 
     | 
    
         
             
                  # Coordinates of a polygon in which to search.  Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored if you also specify `insideBoundingBox`.
         
     | 
| 
         @@ -54,7 +53,7 @@ module Algolia 
     | 
|
| 
       54 
53 
     | 
    
         
             
                      :tag_filters => :"TagFilters",
         
     | 
| 
       55 
54 
     | 
    
         
             
                      :around_lat_lng => :"String",
         
     | 
| 
       56 
55 
     | 
    
         
             
                      :around_radius => :"AroundRadius",
         
     | 
| 
       57 
     | 
    
         
            -
                      :inside_bounding_box => :" 
     | 
| 
      
 56 
     | 
    
         
            +
                      :inside_bounding_box => :"InsideBoundingBox",
         
     | 
| 
       58 
57 
     | 
    
         
             
                      :inside_polygon => :"Array<Array<Float>>"
         
     | 
| 
       59 
58 
     | 
    
         
             
                    }
         
     | 
| 
       60 
59 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -62,7 +61,9 @@ module Algolia 
     | 
|
| 
       62 
61 
     | 
    
         
             
                  # List of attributes with nullable: true
         
     | 
| 
       63 
62 
     | 
    
         
             
                  def self.openapi_nullable
         
     | 
| 
       64 
63 
     | 
    
         
             
                    Set.new(
         
     | 
| 
       65 
     | 
    
         
            -
                      [ 
     | 
| 
      
 64 
     | 
    
         
            +
                      [
         
     | 
| 
      
 65 
     | 
    
         
            +
                        :inside_bounding_box
         
     | 
| 
      
 66 
     | 
    
         
            +
                      ]
         
     | 
| 
       66 
67 
     | 
    
         
             
                    )
         
     | 
| 
       67 
68 
     | 
    
         
             
                  end
         
     | 
| 
       68 
69 
     | 
    
         | 
| 
         @@ -114,9 +115,7 @@ module Algolia 
     | 
|
| 
       114 
115 
     | 
    
         
             
                    end
         
     | 
| 
       115 
116 
     | 
    
         | 
| 
       116 
117 
     | 
    
         
             
                    if attributes.key?(:inside_bounding_box)
         
     | 
| 
       117 
     | 
    
         
            -
                       
     | 
| 
       118 
     | 
    
         
            -
                        self.inside_bounding_box = value
         
     | 
| 
       119 
     | 
    
         
            -
                      end
         
     | 
| 
      
 118 
     | 
    
         
            +
                      self.inside_bounding_box = attributes[:inside_bounding_box]
         
     | 
| 
       120 
119 
     | 
    
         
             
                    end
         
     | 
| 
       121 
120 
     | 
    
         | 
| 
       122 
121 
     | 
    
         
             
                    if attributes.key?(:inside_polygon)
         
     | 
| 
         @@ -58,6 +58,9 @@ module Algolia 
     | 
|
| 
       58 
58 
     | 
    
         
             
                  # Attribute that should be used to establish groups of results. Attribute names are case-sensitive.  All records with the same value for this attribute are considered a group. You can combine `attributeForDistinct` with the `distinct` search parameter to control how many items per group are included in the search results.  If you want to use the same attribute also for faceting, use the `afterDistinct` modifier of the `attributesForFaceting` setting. This applies faceting _after_ deduplication, which will result in accurate facet counts.
         
     | 
| 
       59 
59 
     | 
    
         
             
                  attr_accessor :attribute_for_distinct
         
     | 
| 
       60 
60 
     | 
    
         | 
| 
      
 61 
     | 
    
         
            +
                  # Maximum number of facet values to return when [searching for facet values](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#search-for-facet-values).
         
     | 
| 
      
 62 
     | 
    
         
            +
                  attr_accessor :max_facet_hits
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
       61 
64 
     | 
    
         
             
                  # Attributes to include in the API response.  To reduce the size of your response, you can retrieve only some of the attributes. Attribute names are case-sensitive.  - `*` retrieves all attributes, except attributes included in the `customRanking` and `unretrievableAttributes` settings. - To retrieve all attributes except a specific one, prefix the attribute with a dash and combine it with the `*`: `[\"*\", \"-ATTRIBUTE\"]`. - The `objectID` attribute is always included.
         
     | 
| 
       62 
65 
     | 
    
         
             
                  attr_accessor :attributes_to_retrieve
         
     | 
| 
       63 
66 
     | 
    
         | 
| 
         @@ -135,7 +138,6 @@ module Algolia 
     | 
|
| 
       135 
138 
     | 
    
         
             
                  # Whether to support phrase matching and excluding words from search queries.  Use the `advancedSyntaxFeatures` parameter to control which feature is supported.
         
     | 
| 
       136 
139 
     | 
    
         
             
                  attr_accessor :advanced_syntax
         
     | 
| 
       137 
140 
     | 
    
         | 
| 
       138 
     | 
    
         
            -
                  # Words that should be considered optional when found in the query.  By default, records must match all words in the search query to be included in the search results. Adding optional words can help to increase the number of search results by running an additional search query that doesn't include the optional words. For example, if the search query is \"action video\" and \"video\" is an optional word, the search engine runs two queries. One for \"action video\" and one for \"action\". Records that match all words are ranked higher.  For a search query with 4 or more words **and** all its words are optional, the number of matched words required for a record to be included in the search results increases for every 1,000 records:  - If `optionalWords` has less than 10 words, the required number of matched words increases by 1:   results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 2 matched words. - If `optionalWords` has 10 or more words, the number of required matched words increases by the number of optional words divided by 5 (rounded down).   For example, with 18 optional words: results 1 to 1,000 require 1 matched word, results 1,001 to 2000 need 4 matched words.  For more information, see [Optional words](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/empty-or-insufficient-results/#creating-a-list-of-optional-words).
         
     | 
| 
       139 
141 
     | 
    
         
             
                  attr_accessor :optional_words
         
     | 
| 
       140 
142 
     | 
    
         | 
| 
       141 
143 
     | 
    
         
             
                  # Searchable 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). Attribute names are case-sensitive.  This can be useful for attributes with long values, where the likelihood of an exact match is high, such as product descriptions. Turning off the Exact ranking criterion for these attributes favors exact matching on other attributes. This reduces the impact of individual attributes with a lot of content on ranking.
         
     | 
| 
         @@ -160,9 +162,6 @@ module Algolia 
     | 
|
| 
       160 
162 
     | 
    
         
             
                  # Properties to include in the API response of `search` and `browse` requests.  By default, all response properties are included. To reduce the response size, you can select, which attributes should be included.  You can't exclude these properties: `message`, `warning`, `cursor`, `serverUsed`, `indexUsed`, `abTestVariantID`, `parsedQuery`, or any property triggered by the `getRankingInfo` parameter.  Don't exclude properties that you might need in your search UI.
         
     | 
| 
       161 
163 
     | 
    
         
             
                  attr_accessor :response_fields
         
     | 
| 
       162 
164 
     | 
    
         | 
| 
       163 
     | 
    
         
            -
                  # Maximum number of facet values 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 
165 
     | 
    
         
             
                  # Maximum number of facet values to return for each facet.
         
     | 
| 
       167 
166 
     | 
    
         
             
                  attr_accessor :max_values_per_facet
         
     | 
| 
       168 
167 
     | 
    
         | 
| 
         @@ -199,6 +198,7 @@ module Algolia 
     | 
|
| 
       199 
198 
     | 
    
         
             
                      :user_data => :userData,
         
     | 
| 
       200 
199 
     | 
    
         
             
                      :custom_normalization => :customNormalization,
         
     | 
| 
       201 
200 
     | 
    
         
             
                      :attribute_for_distinct => :attributeForDistinct,
         
     | 
| 
      
 201 
     | 
    
         
            +
                      :max_facet_hits => :maxFacetHits,
         
     | 
| 
       202 
202 
     | 
    
         
             
                      :attributes_to_retrieve => :attributesToRetrieve,
         
     | 
| 
       203 
203 
     | 
    
         
             
                      :ranking => :ranking,
         
     | 
| 
       204 
204 
     | 
    
         
             
                      :custom_ranking => :customRanking,
         
     | 
| 
         @@ -236,7 +236,6 @@ module Algolia 
     | 
|
| 
       236 
236 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :replaceSynonymsInHighlight,
         
     | 
| 
       237 
237 
     | 
    
         
             
                      :min_proximity => :minProximity,
         
     | 
| 
       238 
238 
     | 
    
         
             
                      :response_fields => :responseFields,
         
     | 
| 
       239 
     | 
    
         
            -
                      :max_facet_hits => :maxFacetHits,
         
     | 
| 
       240 
239 
     | 
    
         
             
                      :max_values_per_facet => :maxValuesPerFacet,
         
     | 
| 
       241 
240 
     | 
    
         
             
                      :sort_facet_values_by => :sortFacetValuesBy,
         
     | 
| 
       242 
241 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :attributeCriteriaComputedByMinProximity,
         
     | 
| 
         @@ -271,6 +270,7 @@ module Algolia 
     | 
|
| 
       271 
270 
     | 
    
         
             
                      :user_data => :"Object",
         
     | 
| 
       272 
271 
     | 
    
         
             
                      :custom_normalization => :"Hash<String, Hash<String, String>>",
         
     | 
| 
       273 
272 
     | 
    
         
             
                      :attribute_for_distinct => :"String",
         
     | 
| 
      
 273 
     | 
    
         
            +
                      :max_facet_hits => :"Integer",
         
     | 
| 
       274 
274 
     | 
    
         
             
                      :attributes_to_retrieve => :"Array<String>",
         
     | 
| 
       275 
275 
     | 
    
         
             
                      :ranking => :"Array<String>",
         
     | 
| 
       276 
276 
     | 
    
         
             
                      :custom_ranking => :"Array<String>",
         
     | 
| 
         @@ -299,7 +299,7 @@ module Algolia 
     | 
|
| 
       299 
299 
     | 
    
         
             
                      :mode => :"Mode",
         
     | 
| 
       300 
300 
     | 
    
         
             
                      :semantic_search => :"SemanticSearch",
         
     | 
| 
       301 
301 
     | 
    
         
             
                      :advanced_syntax => :"Boolean",
         
     | 
| 
       302 
     | 
    
         
            -
                      :optional_words => :" 
     | 
| 
      
 302 
     | 
    
         
            +
                      :optional_words => :"OptionalWords",
         
     | 
| 
       303 
303 
     | 
    
         
             
                      :disable_exact_on_attributes => :"Array<String>",
         
     | 
| 
       304 
304 
     | 
    
         
             
                      :exact_on_single_word_query => :"ExactOnSingleWordQuery",
         
     | 
| 
       305 
305 
     | 
    
         
             
                      :alternatives_as_exact => :"Array<AlternativesAsExact>",
         
     | 
| 
         @@ -308,7 +308,6 @@ module Algolia 
     | 
|
| 
       308 
308 
     | 
    
         
             
                      :replace_synonyms_in_highlight => :"Boolean",
         
     | 
| 
       309 
309 
     | 
    
         
             
                      :min_proximity => :"Integer",
         
     | 
| 
       310 
310 
     | 
    
         
             
                      :response_fields => :"Array<String>",
         
     | 
| 
       311 
     | 
    
         
            -
                      :max_facet_hits => :"Integer",
         
     | 
| 
       312 
311 
     | 
    
         
             
                      :max_values_per_facet => :"Integer",
         
     | 
| 
       313 
312 
     | 
    
         
             
                      :sort_facet_values_by => :"String",
         
     | 
| 
       314 
313 
     | 
    
         
             
                      :attribute_criteria_computed_by_min_proximity => :"Boolean",
         
     | 
| 
         @@ -321,7 +320,9 @@ module Algolia 
     | 
|
| 
       321 
320 
     | 
    
         
             
                  # List of attributes with nullable: true
         
     | 
| 
       322 
321 
     | 
    
         
             
                  def self.openapi_nullable
         
     | 
| 
       323 
322 
     | 
    
         
             
                    Set.new(
         
     | 
| 
       324 
     | 
    
         
            -
                      [ 
     | 
| 
      
 323 
     | 
    
         
            +
                      [
         
     | 
| 
      
 324 
     | 
    
         
            +
                        :optional_words
         
     | 
| 
      
 325 
     | 
    
         
            +
                      ]
         
     | 
| 
       325 
326 
     | 
    
         
             
                    )
         
     | 
| 
       326 
327 
     | 
    
         
             
                  end
         
     | 
| 
       327 
328 
     | 
    
         | 
| 
         @@ -446,6 +447,10 @@ module Algolia 
     | 
|
| 
       446 
447 
     | 
    
         
             
                      self.attribute_for_distinct = attributes[:attribute_for_distinct]
         
     | 
| 
       447 
448 
     | 
    
         
             
                    end
         
     | 
| 
       448 
449 
     | 
    
         | 
| 
      
 450 
     | 
    
         
            +
                    if attributes.key?(:max_facet_hits)
         
     | 
| 
      
 451 
     | 
    
         
            +
                      self.max_facet_hits = attributes[:max_facet_hits]
         
     | 
| 
      
 452 
     | 
    
         
            +
                    end
         
     | 
| 
      
 453 
     | 
    
         
            +
             
     | 
| 
       449 
454 
     | 
    
         
             
                    if attributes.key?(:attributes_to_retrieve)
         
     | 
| 
       450 
455 
     | 
    
         
             
                      if (value = attributes[:attributes_to_retrieve]).is_a?(Array)
         
     | 
| 
       451 
456 
     | 
    
         
             
                        self.attributes_to_retrieve = value
         
     | 
| 
         @@ -573,9 +578,7 @@ module Algolia 
     | 
|
| 
       573 
578 
     | 
    
         
             
                    end
         
     | 
| 
       574 
579 
     | 
    
         | 
| 
       575 
580 
     | 
    
         
             
                    if attributes.key?(:optional_words)
         
     | 
| 
       576 
     | 
    
         
            -
                       
     | 
| 
       577 
     | 
    
         
            -
                        self.optional_words = value
         
     | 
| 
       578 
     | 
    
         
            -
                      end
         
     | 
| 
      
 581 
     | 
    
         
            +
                      self.optional_words = attributes[:optional_words]
         
     | 
| 
       579 
582 
     | 
    
         
             
                    end
         
     | 
| 
       580 
583 
     | 
    
         | 
| 
       581 
584 
     | 
    
         
             
                    if attributes.key?(:disable_exact_on_attributes)
         
     | 
| 
         @@ -618,10 +621,6 @@ module Algolia 
     | 
|
| 
       618 
621 
     | 
    
         
             
                      end
         
     | 
| 
       619 
622 
     | 
    
         
             
                    end
         
     | 
| 
       620 
623 
     | 
    
         | 
| 
       621 
     | 
    
         
            -
                    if attributes.key?(:max_facet_hits)
         
     | 
| 
       622 
     | 
    
         
            -
                      self.max_facet_hits = attributes[:max_facet_hits]
         
     | 
| 
       623 
     | 
    
         
            -
                    end
         
     | 
| 
       624 
     | 
    
         
            -
             
     | 
| 
       625 
624 
     | 
    
         
             
                    if attributes.key?(:max_values_per_facet)
         
     | 
| 
       626 
625 
     | 
    
         
             
                      self.max_values_per_facet = attributes[:max_values_per_facet]
         
     | 
| 
       627 
626 
     | 
    
         
             
                    end
         
     | 
| 
         @@ -669,6 +668,7 @@ module Algolia 
     | 
|
| 
       669 
668 
     | 
    
         
             
                      user_data == other.user_data &&
         
     | 
| 
       670 
669 
     | 
    
         
             
                      custom_normalization == other.custom_normalization &&
         
     | 
| 
       671 
670 
     | 
    
         
             
                      attribute_for_distinct == other.attribute_for_distinct &&
         
     | 
| 
      
 671 
     | 
    
         
            +
                      max_facet_hits == other.max_facet_hits &&
         
     | 
| 
       672 
672 
     | 
    
         
             
                      attributes_to_retrieve == other.attributes_to_retrieve &&
         
     | 
| 
       673 
673 
     | 
    
         
             
                      ranking == other.ranking &&
         
     | 
| 
       674 
674 
     | 
    
         
             
                      custom_ranking == other.custom_ranking &&
         
     | 
| 
         @@ -706,7 +706,6 @@ module Algolia 
     | 
|
| 
       706 
706 
     | 
    
         
             
                      replace_synonyms_in_highlight == other.replace_synonyms_in_highlight &&
         
     | 
| 
       707 
707 
     | 
    
         
             
                      min_proximity == other.min_proximity &&
         
     | 
| 
       708 
708 
     | 
    
         
             
                      response_fields == other.response_fields &&
         
     | 
| 
       709 
     | 
    
         
            -
                      max_facet_hits == other.max_facet_hits &&
         
     | 
| 
       710 
709 
     | 
    
         
             
                      max_values_per_facet == other.max_values_per_facet &&
         
     | 
| 
       711 
710 
     | 
    
         
             
                      sort_facet_values_by == other.sort_facet_values_by &&
         
     | 
| 
       712 
711 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity == other.attribute_criteria_computed_by_min_proximity &&
         
     | 
| 
         @@ -742,6 +741,7 @@ module Algolia 
     | 
|
| 
       742 
741 
     | 
    
         
             
                      user_data,
         
     | 
| 
       743 
742 
     | 
    
         
             
                      custom_normalization,
         
     | 
| 
       744 
743 
     | 
    
         
             
                      attribute_for_distinct,
         
     | 
| 
      
 744 
     | 
    
         
            +
                      max_facet_hits,
         
     | 
| 
       745 
745 
     | 
    
         
             
                      attributes_to_retrieve,
         
     | 
| 
       746 
746 
     | 
    
         
             
                      ranking,
         
     | 
| 
       747 
747 
     | 
    
         
             
                      custom_ranking,
         
     | 
| 
         @@ -779,7 +779,6 @@ module Algolia 
     | 
|
| 
       779 
779 
     | 
    
         
             
                      replace_synonyms_in_highlight,
         
     | 
| 
       780 
780 
     | 
    
         
             
                      min_proximity,
         
     | 
| 
       781 
781 
     | 
    
         
             
                      response_fields,
         
     | 
| 
       782 
     | 
    
         
            -
                      max_facet_hits,
         
     | 
| 
       783 
782 
     | 
    
         
             
                      max_values_per_facet,
         
     | 
| 
       784 
783 
     | 
    
         
             
                      sort_facet_values_by,
         
     | 
| 
       785 
784 
     | 
    
         
             
                      attribute_criteria_computed_by_min_proximity,
         
     | 
| 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
                module InsideBoundingBox
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # List of class defined in oneOf (OpenAPI v3)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    def openapi_one_of
         
     | 
| 
      
 12 
     | 
    
         
            +
                      [
         
     | 
| 
      
 13 
     | 
    
         
            +
                        :"Array<Array<Float>>",
         
     | 
| 
      
 14 
     | 
    
         
            +
                        :"String"
         
     | 
| 
      
 15 
     | 
    
         
            +
                      ]
         
     | 
| 
      
 16 
     | 
    
         
            +
                    end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    # Builds the object
         
     | 
| 
      
 19 
     | 
    
         
            +
                    # @param [Mixed] Data to be matched against the list of oneOf items
         
     | 
| 
      
 20 
     | 
    
         
            +
                    # @return [Object] Returns the model or the data itself
         
     | 
| 
      
 21 
     | 
    
         
            +
                    def build(data)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      # Go through the list of oneOf items and attempt to identify the appropriate one.
         
     | 
| 
      
 23 
     | 
    
         
            +
                      # Note:
         
     | 
| 
      
 24 
     | 
    
         
            +
                      # - We do not attempt to check whether exactly one item matches.
         
     | 
| 
      
 25 
     | 
    
         
            +
                      # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
         
     | 
| 
      
 26 
     | 
    
         
            +
                      #   due to the way the deserialization is made in the base_object template (it just casts without verifying).
         
     | 
| 
      
 27 
     | 
    
         
            +
                      # - TODO: scalar values are de facto behaving as if they were nullable.
         
     | 
| 
      
 28 
     | 
    
         
            +
                      # - TODO: logging when debugging is set.
         
     | 
| 
      
 29 
     | 
    
         
            +
                      openapi_one_of.each do |klass|
         
     | 
| 
      
 30 
     | 
    
         
            +
                        begin
         
     | 
| 
      
 31 
     | 
    
         
            +
                          # "nullable: true"
         
     | 
| 
      
 32 
     | 
    
         
            +
                          next if klass == :AnyType
         
     | 
| 
      
 33 
     | 
    
         
            +
                          typed_data = find_and_cast_into_type(klass, data)
         
     | 
| 
      
 34 
     | 
    
         
            +
                          return typed_data if typed_data
         
     | 
| 
      
 35 
     | 
    
         
            +
                          # rescue all errors so we keep iterating even if the current item lookup raises
         
     | 
| 
      
 36 
     | 
    
         
            +
                        rescue
         
     | 
| 
      
 37 
     | 
    
         
            +
                        end
         
     | 
| 
      
 38 
     | 
    
         
            +
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                      openapi_one_of.include?(:AnyType) ? data : nil
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                    private
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    SchemaMismatchError = Class.new(StandardError)
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
         
     | 
| 
      
 48 
     | 
    
         
            +
                    def find_and_cast_into_type(klass, data)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      return if data.nil?
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                      case klass.to_s
         
     | 
| 
      
 52 
     | 
    
         
            +
                      when "Boolean"
         
     | 
| 
      
 53 
     | 
    
         
            +
                        return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
         
     | 
| 
      
 54 
     | 
    
         
            +
                      when "Float"
         
     | 
| 
      
 55 
     | 
    
         
            +
                        return data if data.instance_of?(Float)
         
     | 
| 
      
 56 
     | 
    
         
            +
                      when "Integer"
         
     | 
| 
      
 57 
     | 
    
         
            +
                        return data if data.instance_of?(Integer)
         
     | 
| 
      
 58 
     | 
    
         
            +
                      when "Time"
         
     | 
| 
      
 59 
     | 
    
         
            +
                        return Time.parse(data)
         
     | 
| 
      
 60 
     | 
    
         
            +
                      when "Date"
         
     | 
| 
      
 61 
     | 
    
         
            +
                        return Date.parse(data)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      when "String"
         
     | 
| 
      
 63 
     | 
    
         
            +
                        return data if data.instance_of?(String)
         
     | 
| 
      
 64 
     | 
    
         
            +
                        # "type: object"
         
     | 
| 
      
 65 
     | 
    
         
            +
                      when "Object"
         
     | 
| 
      
 66 
     | 
    
         
            +
                        return data if data.instance_of?(Hash)
         
     | 
| 
      
 67 
     | 
    
         
            +
                        # "type: array"
         
     | 
| 
      
 68 
     | 
    
         
            +
                      when /\AArray<(?<sub_type>.+)>\z/
         
     | 
| 
      
 69 
     | 
    
         
            +
                        if data.instance_of?(Array)
         
     | 
| 
      
 70 
     | 
    
         
            +
                          sub_type = Regexp.last_match[:sub_type]
         
     | 
| 
      
 71 
     | 
    
         
            +
                          return data.map { |item| find_and_cast_into_type(sub_type, item) }
         
     | 
| 
      
 72 
     | 
    
         
            +
                        end
         
     | 
| 
      
 73 
     | 
    
         
            +
                        # "type: object" with "additionalProperties: { ... }"
         
     | 
| 
      
 74 
     | 
    
         
            +
                      when /\AHash<String, (?<sub_type>.+)>\z/
         
     | 
| 
      
 75 
     | 
    
         
            +
                        if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
         
     | 
| 
      
 76 
     | 
    
         
            +
                          sub_type = Regexp.last_match[:sub_type]
         
     | 
| 
      
 77 
     | 
    
         
            +
                          return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
         
     | 
| 
      
 78 
     | 
    
         
            +
                        end
         
     | 
| 
      
 79 
     | 
    
         
            +
                        # model
         
     | 
| 
      
 80 
     | 
    
         
            +
                      else
         
     | 
| 
      
 81 
     | 
    
         
            +
                        const = Algolia::Search.const_get(klass)
         
     | 
| 
      
 82 
     | 
    
         
            +
                        if const
         
     | 
| 
      
 83 
     | 
    
         
            +
                          if const.respond_to?(:openapi_one_of)
         
     | 
| 
      
 84 
     | 
    
         
            +
                            # nested oneOf model
         
     | 
| 
      
 85 
     | 
    
         
            +
                            model = const.build(data)
         
     | 
| 
      
 86 
     | 
    
         
            +
                          elsif const.respond_to?(:acceptable_attributes)
         
     | 
| 
      
 87 
     | 
    
         
            +
                            # raise if data contains keys that are not known to the model
         
     | 
| 
      
 88 
     | 
    
         
            +
                            raise unless (data.keys - const.acceptable_attributes).empty?
         
     | 
| 
      
 89 
     | 
    
         
            +
                            model = const.build_from_hash(data)
         
     | 
| 
      
 90 
     | 
    
         
            +
                          else
         
     | 
| 
      
 91 
     | 
    
         
            +
                            # maybe it's an enum
         
     | 
| 
      
 92 
     | 
    
         
            +
                            model = const.build_from_hash(data)
         
     | 
| 
      
 93 
     | 
    
         
            +
                          end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                          return model if model
         
     | 
| 
      
 96 
     | 
    
         
            +
                        end
         
     | 
| 
      
 97 
     | 
    
         
            +
                      end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                      # if no match by now, raise
         
     | 
| 
      
 100 
     | 
    
         
            +
                      raise
         
     | 
| 
      
 101 
     | 
    
         
            +
                    rescue
         
     | 
| 
      
 102 
     | 
    
         
            +
                      raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
         
     | 
| 
      
 103 
     | 
    
         
            +
                    end
         
     | 
| 
      
 104 
     | 
    
         
            +
                  end
         
     | 
| 
      
 105 
     | 
    
         
            +
                end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
              end
         
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 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 
     | 
    
         
            +
                module OptionalWords
         
     | 
| 
      
 9 
     | 
    
         
            +
                  class << self
         
     | 
| 
      
 10 
     | 
    
         
            +
                  # List of class defined in oneOf (OpenAPI v3)
         
     | 
| 
      
 11 
     | 
    
         
            +
                    def openapi_one_of
         
     | 
| 
      
 12 
     | 
    
         
            +
                      [
         
     | 
| 
      
 13 
     | 
    
         
            +
                        :"Array<String>",
         
     | 
| 
      
 14 
     | 
    
         
            +
                        :"String"
         
     | 
| 
      
 15 
     | 
    
         
            +
                      ]
         
     | 
| 
      
 16 
     | 
    
         
            +
                    end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                    # Builds the object
         
     | 
| 
      
 19 
     | 
    
         
            +
                    # @param [Mixed] Data to be matched against the list of oneOf items
         
     | 
| 
      
 20 
     | 
    
         
            +
                    # @return [Object] Returns the model or the data itself
         
     | 
| 
      
 21 
     | 
    
         
            +
                    def build(data)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      # Go through the list of oneOf items and attempt to identify the appropriate one.
         
     | 
| 
      
 23 
     | 
    
         
            +
                      # Note:
         
     | 
| 
      
 24 
     | 
    
         
            +
                      # - We do not attempt to check whether exactly one item matches.
         
     | 
| 
      
 25 
     | 
    
         
            +
                      # - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
         
     | 
| 
      
 26 
     | 
    
         
            +
                      #   due to the way the deserialization is made in the base_object template (it just casts without verifying).
         
     | 
| 
      
 27 
     | 
    
         
            +
                      # - TODO: scalar values are de facto behaving as if they were nullable.
         
     | 
| 
      
 28 
     | 
    
         
            +
                      # - TODO: logging when debugging is set.
         
     | 
| 
      
 29 
     | 
    
         
            +
                      openapi_one_of.each do |klass|
         
     | 
| 
      
 30 
     | 
    
         
            +
                        begin
         
     | 
| 
      
 31 
     | 
    
         
            +
                          # "nullable: true"
         
     | 
| 
      
 32 
     | 
    
         
            +
                          next if klass == :AnyType
         
     | 
| 
      
 33 
     | 
    
         
            +
                          typed_data = find_and_cast_into_type(klass, data)
         
     | 
| 
      
 34 
     | 
    
         
            +
                          return typed_data if typed_data
         
     | 
| 
      
 35 
     | 
    
         
            +
                          # rescue all errors so we keep iterating even if the current item lookup raises
         
     | 
| 
      
 36 
     | 
    
         
            +
                        rescue
         
     | 
| 
      
 37 
     | 
    
         
            +
                        end
         
     | 
| 
      
 38 
     | 
    
         
            +
                      end
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                      openapi_one_of.include?(:AnyType) ? data : nil
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                    private
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
      
 45 
     | 
    
         
            +
                    SchemaMismatchError = Class.new(StandardError)
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
                    # Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
         
     | 
| 
      
 48 
     | 
    
         
            +
                    def find_and_cast_into_type(klass, data)
         
     | 
| 
      
 49 
     | 
    
         
            +
                      return if data.nil?
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
                      case klass.to_s
         
     | 
| 
      
 52 
     | 
    
         
            +
                      when "Boolean"
         
     | 
| 
      
 53 
     | 
    
         
            +
                        return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
         
     | 
| 
      
 54 
     | 
    
         
            +
                      when "Float"
         
     | 
| 
      
 55 
     | 
    
         
            +
                        return data if data.instance_of?(Float)
         
     | 
| 
      
 56 
     | 
    
         
            +
                      when "Integer"
         
     | 
| 
      
 57 
     | 
    
         
            +
                        return data if data.instance_of?(Integer)
         
     | 
| 
      
 58 
     | 
    
         
            +
                      when "Time"
         
     | 
| 
      
 59 
     | 
    
         
            +
                        return Time.parse(data)
         
     | 
| 
      
 60 
     | 
    
         
            +
                      when "Date"
         
     | 
| 
      
 61 
     | 
    
         
            +
                        return Date.parse(data)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      when "String"
         
     | 
| 
      
 63 
     | 
    
         
            +
                        return data if data.instance_of?(String)
         
     | 
| 
      
 64 
     | 
    
         
            +
                        # "type: object"
         
     | 
| 
      
 65 
     | 
    
         
            +
                      when "Object"
         
     | 
| 
      
 66 
     | 
    
         
            +
                        return data if data.instance_of?(Hash)
         
     | 
| 
      
 67 
     | 
    
         
            +
                        # "type: array"
         
     | 
| 
      
 68 
     | 
    
         
            +
                      when /\AArray<(?<sub_type>.+)>\z/
         
     | 
| 
      
 69 
     | 
    
         
            +
                        if data.instance_of?(Array)
         
     | 
| 
      
 70 
     | 
    
         
            +
                          sub_type = Regexp.last_match[:sub_type]
         
     | 
| 
      
 71 
     | 
    
         
            +
                          return data.map { |item| find_and_cast_into_type(sub_type, item) }
         
     | 
| 
      
 72 
     | 
    
         
            +
                        end
         
     | 
| 
      
 73 
     | 
    
         
            +
                        # "type: object" with "additionalProperties: { ... }"
         
     | 
| 
      
 74 
     | 
    
         
            +
                      when /\AHash<String, (?<sub_type>.+)>\z/
         
     | 
| 
      
 75 
     | 
    
         
            +
                        if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
         
     | 
| 
      
 76 
     | 
    
         
            +
                          sub_type = Regexp.last_match[:sub_type]
         
     | 
| 
      
 77 
     | 
    
         
            +
                          return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
         
     | 
| 
      
 78 
     | 
    
         
            +
                        end
         
     | 
| 
      
 79 
     | 
    
         
            +
                        # model
         
     | 
| 
      
 80 
     | 
    
         
            +
                      else
         
     | 
| 
      
 81 
     | 
    
         
            +
                        const = Algolia::Search.const_get(klass)
         
     | 
| 
      
 82 
     | 
    
         
            +
                        if const
         
     | 
| 
      
 83 
     | 
    
         
            +
                          if const.respond_to?(:openapi_one_of)
         
     | 
| 
      
 84 
     | 
    
         
            +
                            # nested oneOf model
         
     | 
| 
      
 85 
     | 
    
         
            +
                            model = const.build(data)
         
     | 
| 
      
 86 
     | 
    
         
            +
                          elsif const.respond_to?(:acceptable_attributes)
         
     | 
| 
      
 87 
     | 
    
         
            +
                            # raise if data contains keys that are not known to the model
         
     | 
| 
      
 88 
     | 
    
         
            +
                            raise unless (data.keys - const.acceptable_attributes).empty?
         
     | 
| 
      
 89 
     | 
    
         
            +
                            model = const.build_from_hash(data)
         
     | 
| 
      
 90 
     | 
    
         
            +
                          else
         
     | 
| 
      
 91 
     | 
    
         
            +
                            # maybe it's an enum
         
     | 
| 
      
 92 
     | 
    
         
            +
                            model = const.build_from_hash(data)
         
     | 
| 
      
 93 
     | 
    
         
            +
                          end
         
     | 
| 
      
 94 
     | 
    
         
            +
             
     | 
| 
      
 95 
     | 
    
         
            +
                          return model if model
         
     | 
| 
      
 96 
     | 
    
         
            +
                        end
         
     | 
| 
      
 97 
     | 
    
         
            +
                      end
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
                      # if no match by now, raise
         
     | 
| 
      
 100 
     | 
    
         
            +
                      raise
         
     | 
| 
      
 101 
     | 
    
         
            +
                    rescue
         
     | 
| 
      
 102 
     | 
    
         
            +
                      raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
         
     | 
| 
      
 103 
     | 
    
         
            +
                    end
         
     | 
| 
      
 104 
     | 
    
         
            +
                  end
         
     | 
| 
      
 105 
     | 
    
         
            +
                end
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
              end
         
     | 
| 
      
 108 
     | 
    
         
            +
            end
         
     |