algolia 3.0.0.beta.11 → 3.0.0.beta.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/Gemfile.lock +2 -2
  4. data/lib/algolia/api/query_suggestions_client.rb +4 -10
  5. data/lib/algolia/api/search_client.rb +2 -2
  6. data/lib/algolia/api/usage_client.rb +4 -4
  7. data/lib/algolia/models/abtesting/{filter_effects_empty_search.rb → empty_search_filter.rb} +3 -3
  8. data/lib/algolia/models/abtesting/filter_effects.rb +2 -2
  9. data/lib/algolia/models/abtesting/{filter_effects_outliers.rb → outliers_filter.rb} +3 -3
  10. data/lib/algolia/models/analytics/{click_positions_inner.rb → click_position.rb} +3 -3
  11. data/lib/algolia/models/analytics/get_click_positions_response.rb +1 -1
  12. data/lib/algolia/models/analytics/top_search_with_analytics.rb +1 -1
  13. data/lib/algolia/models/analytics/top_search_with_revenue_analytics.rb +1 -1
  14. data/lib/algolia/models/ingestion/docker_streams_input.rb +1 -0
  15. data/lib/algolia/models/ingestion/{transformation_try_response_error.rb → transformation_error.rb} +3 -3
  16. data/lib/algolia/models/ingestion/transformation_try_response.rb +1 -1
  17. data/lib/algolia/models/monitoring/{incidents_inner.rb → incident_entry.rb} +3 -3
  18. data/lib/algolia/models/monitoring/{indexing_time_response_metrics.rb → indexing_metric.rb} +3 -3
  19. data/lib/algolia/models/monitoring/indexing_time_response.rb +1 -1
  20. data/lib/algolia/models/monitoring/infrastructure_response.rb +1 -1
  21. data/lib/algolia/models/monitoring/{latency_response_metrics.rb → latency_metric.rb} +3 -3
  22. data/lib/algolia/models/monitoring/latency_response.rb +1 -1
  23. data/lib/algolia/models/monitoring/{infrastructure_response_metrics.rb → metrics.rb} +3 -6
  24. data/lib/algolia/models/monitoring/{time_inner.rb → time_entry.rb} +3 -3
  25. data/lib/algolia/models/{search/search_for_hits_options.rb → query-suggestions/config_status.rb} +43 -36
  26. data/lib/algolia/models/{recommend/related_products.rb → query-suggestions/log_file.rb} +36 -32
  27. data/lib/algolia/models/recommend/around_precision.rb +1 -1
  28. data/lib/algolia/models/recommend/fallback_params.rb +1 -1
  29. data/lib/algolia/models/recommend/{around_precision_from_value_inner.rb → range.rb} +3 -6
  30. data/lib/algolia/models/recommend/recommend_rule.rb +1 -1
  31. data/lib/algolia/models/recommend/{redirect_rule_index_metadata_data.rb → redirect_rule_index_data.rb} +3 -3
  32. data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +1 -1
  33. data/lib/algolia/models/recommend/{recommend_rule_metadata.rb → rule_metadata.rb} +3 -3
  34. data/lib/algolia/models/recommend/search_params.rb +1 -1
  35. data/lib/algolia/models/recommend/search_params_object.rb +1 -1
  36. data/lib/algolia/models/search/around_precision.rb +1 -1
  37. data/lib/algolia/models/search/browse_params_object.rb +1 -1
  38. data/lib/algolia/models/search/built_in_operation.rb +1 -2
  39. data/lib/algolia/models/search/built_in_operation_value.rb +105 -0
  40. data/lib/algolia/models/search/consequence_params.rb +1 -1
  41. data/lib/algolia/models/search/dictionary_entry.rb +0 -2
  42. data/lib/algolia/models/search/index_settings.rb +2 -2
  43. data/lib/algolia/models/search/{around_precision_from_value_inner.rb → range.rb} +3 -6
  44. data/lib/algolia/models/search/{redirect_rule_index_metadata_data.rb → redirect_rule_index_data.rb} +3 -3
  45. data/lib/algolia/models/search/redirect_rule_index_metadata.rb +1 -1
  46. data/lib/algolia/models/search/search_for_facets.rb +1 -1
  47. data/lib/algolia/models/search/search_for_hits.rb +1 -1
  48. data/lib/algolia/models/search/search_params_object.rb +1 -1
  49. data/lib/algolia/models/search/search_params_string.rb +1 -0
  50. data/lib/algolia/models/search/settings_response.rb +2 -2
  51. data/lib/algolia/models/usage/{get_usage400_response_error_errors_inner.rb → error_item.rb} +3 -3
  52. data/lib/algolia/models/usage/{get_usage400_response_error.rb → forbidden_error.rb} +4 -4
  53. data/lib/algolia/models/usage/{get_usage200_response.rb → index_usage.rb} +4 -4
  54. data/lib/algolia/models/usage/invalid_request_error.rb +231 -0
  55. data/lib/algolia/models/usage/{get_usage200_response_statistics_inner.rb → statistic_entry.rb} +3 -3
  56. data/lib/algolia/version.rb +1 -1
  57. metadata +24 -64
  58. data/lib/algolia/models/abtesting/custom_search_params.rb +0 -214
  59. data/lib/algolia/models/abtesting/error_base.rb +0 -212
  60. data/lib/algolia/models/analytics/error_base.rb +0 -212
  61. data/lib/algolia/models/ingestion/error_base.rb +0 -212
  62. data/lib/algolia/models/ingestion/source_shopify_base.rb +0 -214
  63. data/lib/algolia/models/insights/error_base.rb +0 -212
  64. data/lib/algolia/models/monitoring/error_base.rb +0 -212
  65. data/lib/algolia/models/monitoring/get_servers403_response.rb +0 -211
  66. data/lib/algolia/models/personalization/error_base.rb +0 -212
  67. data/lib/algolia/models/query-suggestions/app_id.rb +0 -209
  68. data/lib/algolia/models/query-suggestions/error_base.rb +0 -212
  69. data/lib/algolia/models/recommend/base_recommend_request.rb +0 -281
  70. data/lib/algolia/models/recommend/base_search_params.rb +0 -635
  71. data/lib/algolia/models/recommend/base_search_params_without_query.rb +0 -616
  72. data/lib/algolia/models/recommend/base_search_response.rb +0 -499
  73. data/lib/algolia/models/recommend/error_base.rb +0 -212
  74. data/lib/algolia/models/recommend/frequently_bought_together.rb +0 -247
  75. data/lib/algolia/models/recommend/index_settings_as_search_params.rb +0 -788
  76. data/lib/algolia/models/recommend/looking_similar.rb +0 -256
  77. data/lib/algolia/models/recommend/recommendations_hits.rb +0 -215
  78. data/lib/algolia/models/recommend/recommended_for_you.rb +0 -244
  79. data/lib/algolia/models/recommend/search_pagination.rb +0 -282
  80. data/lib/algolia/models/recommend/search_params_query.rb +0 -212
  81. data/lib/algolia/models/recommend/trending_facets.rb +0 -258
  82. data/lib/algolia/models/recommend/trending_items.rb +0 -264
  83. data/lib/algolia/models/search/base_get_api_key_response.rb +0 -224
  84. data/lib/algolia/models/search/base_index_settings.rb +0 -426
  85. data/lib/algolia/models/search/base_search_params.rb +0 -635
  86. data/lib/algolia/models/search/base_search_params_without_query.rb +0 -616
  87. data/lib/algolia/models/search/base_search_response.rb +0 -499
  88. data/lib/algolia/models/search/browse_pagination.rb +0 -274
  89. data/lib/algolia/models/search/cursor.rb +0 -209
  90. data/lib/algolia/models/search/error_base.rb +0 -212
  91. data/lib/algolia/models/search/index_settings_as_search_params.rb +0 -788
  92. data/lib/algolia/models/search/params.rb +0 -236
  93. data/lib/algolia/models/search/search_for_facets_options.rb +0 -293
  94. data/lib/algolia/models/search/search_hits.rb +0 -240
  95. data/lib/algolia/models/search/search_pagination.rb +0 -282
  96. data/lib/algolia/models/search/search_params_query.rb +0 -212
  97. data/lib/algolia/models/search/with_primary.rb +0 -212
  98. data/lib/algolia/models/usage/error_base.rb +0 -212
  99. data/lib/algolia/models/usage/get_usage400_response.rb +0 -213
@@ -1,274 +0,0 @@
1
- # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
2
-
3
- require "date"
4
- require "time"
5
-
6
- module Algolia
7
- module Search
8
- class BrowsePagination
9
- # Page of search results to retrieve.
10
- attr_accessor :page
11
-
12
- # Number of results (hits).
13
- attr_accessor :nb_hits
14
-
15
- # Number of pages of results.
16
- attr_accessor :nb_pages
17
-
18
- # Number of hits per page.
19
- attr_accessor :hits_per_page
20
-
21
- # Attribute mapping from ruby-style variable name to JSON key.
22
- def self.attribute_map
23
- {
24
- :page => :page,
25
- :nb_hits => :nbHits,
26
- :nb_pages => :nbPages,
27
- :hits_per_page => :hitsPerPage
28
- }
29
- end
30
-
31
- # Returns all the JSON keys this model knows about
32
- def self.acceptable_attributes
33
- attribute_map.values
34
- end
35
-
36
- # Attribute type mapping.
37
- def self.types_mapping
38
- {
39
- :page => :"Integer",
40
- :nb_hits => :"Integer",
41
- :nb_pages => :"Integer",
42
- :hits_per_page => :"Integer"
43
- }
44
- end
45
-
46
- # List of attributes with nullable: true
47
- def self.openapi_nullable
48
- Set.new(
49
- []
50
- )
51
- end
52
-
53
- # Initializes the object
54
- # @param [Hash] attributes Model attributes in the form of hash
55
- def initialize(attributes = {})
56
- if (!attributes.is_a?(Hash))
57
- raise(
58
- ArgumentError,
59
- "The input argument (attributes) must be a hash in `Algolia::BrowsePagination` initialize method"
60
- )
61
- end
62
-
63
- # check to see if the attribute exists and convert string to symbol for hash key
64
- attributes = attributes.each_with_object({}) { |(k, v), h|
65
- if (!self.class.attribute_map.key?(k.to_sym))
66
- raise(
67
- ArgumentError,
68
- "`#{k}` is not a valid attribute in `Algolia::BrowsePagination`. Please check the name to make sure it's valid. List of attributes: " +
69
- self.class.attribute_map.keys.inspect
70
- )
71
- end
72
-
73
- h[k.to_sym] = v
74
- }
75
-
76
- if attributes.key?(:page)
77
- self.page = attributes[:page]
78
- end
79
-
80
- if attributes.key?(:nb_hits)
81
- self.nb_hits = attributes[:nb_hits]
82
- end
83
-
84
- if attributes.key?(:nb_pages)
85
- self.nb_pages = attributes[:nb_pages]
86
- end
87
-
88
- if attributes.key?(:hits_per_page)
89
- self.hits_per_page = attributes[:hits_per_page]
90
- end
91
- end
92
-
93
- # Custom attribute writer method with validation
94
- # @param [Object] page Value to be assigned
95
- def page=(page)
96
- if page.nil?
97
- raise ArgumentError, "page cannot be nil"
98
- end
99
-
100
- if page < 0
101
- raise ArgumentError, "invalid value for \"page\", must be greater than or equal to 0."
102
- end
103
-
104
- @page = page
105
- end
106
-
107
- # Custom attribute writer method with validation
108
- # @param [Object] hits_per_page Value to be assigned
109
- def hits_per_page=(hits_per_page)
110
- if hits_per_page.nil?
111
- raise ArgumentError, "hits_per_page cannot be nil"
112
- end
113
-
114
- if hits_per_page > 1000
115
- raise ArgumentError, "invalid value for \"hits_per_page\", must be smaller than or equal to 1000."
116
- end
117
-
118
- if hits_per_page < 1
119
- raise ArgumentError, "invalid value for \"hits_per_page\", must be greater than or equal to 1."
120
- end
121
-
122
- @hits_per_page = hits_per_page
123
- end
124
-
125
- # Checks equality by comparing each attribute.
126
- # @param [Object] Object to be compared
127
- def ==(other)
128
- return true if self.equal?(other)
129
- self.class == other.class &&
130
- page == other.page &&
131
- nb_hits == other.nb_hits &&
132
- nb_pages == other.nb_pages &&
133
- hits_per_page == other.hits_per_page
134
- end
135
-
136
- # @see the `==` method
137
- # @param [Object] Object to be compared
138
- def eql?(other)
139
- self == other
140
- end
141
-
142
- # Calculates hash code according to all attributes.
143
- # @return [Integer] Hash code
144
- def hash
145
- [page, nb_hits, nb_pages, hits_per_page].hash
146
- end
147
-
148
- # Builds the object from hash
149
- # @param [Hash] attributes Model attributes in the form of hash
150
- # @return [Object] Returns the model itself
151
- def self.build_from_hash(attributes)
152
- return nil unless attributes.is_a?(Hash)
153
- attributes = attributes.transform_keys(&:to_sym)
154
- transformed_hash = {}
155
- types_mapping.each_pair do |key, type|
156
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
157
- transformed_hash[key.to_sym] = nil
158
- elsif type =~ /\AArray<(.*)>/i
159
- # check to ensure the input is an array given that the attribute
160
- # is documented as an array but the input is not
161
- if attributes[attribute_map[key]].is_a?(Array)
162
- transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
163
- _deserialize(::Regexp.last_match(1), v)
164
- }
165
- end
166
- elsif !attributes[attribute_map[key]].nil?
167
- transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
168
- end
169
- end
170
-
171
- new(transformed_hash)
172
- end
173
-
174
- # Deserializes the data based on type
175
- # @param string type Data type
176
- # @param string value Value to be deserialized
177
- # @return [Object] Deserialized data
178
- def self._deserialize(type, value)
179
- case type.to_sym
180
- when :Time
181
- Time.parse(value)
182
- when :Date
183
- Date.parse(value)
184
- when :String
185
- value.to_s
186
- when :Integer
187
- value.to_i
188
- when :Float
189
- value.to_f
190
- when :Boolean
191
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
192
- true
193
- else
194
- false
195
- end
196
-
197
- when :Object
198
- # generic object (usually a Hash), return directly
199
- value
200
- when /\AArray<(?<inner_type>.+)>\z/
201
- inner_type = Regexp.last_match[:inner_type]
202
- value.map { |v| _deserialize(inner_type, v) }
203
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
204
- k_type = Regexp.last_match[:k_type]
205
- v_type = Regexp.last_match[:v_type]
206
- {}.tap do |hash|
207
- value.each do |k, v|
208
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
209
- end
210
- end
211
- # model
212
- else
213
- # models (e.g. Pet) or oneOf
214
- klass = Algolia::Search.const_get(type)
215
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
216
- .build_from_hash(value)
217
- end
218
- end
219
-
220
- # Returns the string representation of the object
221
- # @return [String] String presentation of the object
222
- def to_s
223
- to_hash.to_s
224
- end
225
-
226
- # to_body is an alias to to_hash (backward compatibility)
227
- # @return [Hash] Returns the object in the form of hash
228
- def to_body
229
- to_hash
230
- end
231
-
232
- def to_json(*_args)
233
- to_hash.to_json
234
- end
235
-
236
- # Returns the object in the form of hash
237
- # @return [Hash] Returns the object in the form of hash
238
- def to_hash
239
- hash = {}
240
- self.class.attribute_map.each_pair do |attr, param|
241
- value = send(attr)
242
- if value.nil?
243
- is_nullable = self.class.openapi_nullable.include?(attr)
244
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
245
- end
246
-
247
- hash[param] = _to_hash(value)
248
- end
249
-
250
- hash
251
- end
252
-
253
- # Outputs non-array value in the form of hash
254
- # For object, use to_hash. Otherwise, just return the value
255
- # @param [Object] value Any valid value
256
- # @return [Hash] Returns the value in the form of hash
257
- def _to_hash(value)
258
- if value.is_a?(Array)
259
- value.compact.map { |v| _to_hash(v) }
260
- elsif value.is_a?(Hash)
261
- {}.tap do |hash|
262
- value.each { |k, v| hash[k] = _to_hash(v) }
263
- end
264
- elsif value.respond_to?(:to_hash)
265
- value.to_hash
266
- else
267
- value
268
- end
269
- end
270
-
271
- end
272
-
273
- end
274
- end
@@ -1,209 +0,0 @@
1
- # Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
2
-
3
- require "date"
4
- require "time"
5
-
6
- module Algolia
7
- module Search
8
- class Cursor
9
- # Cursor to get the next page of the response. The parameter must match the value returned in the response of a previous request. The last page of the response does not return a `cursor` attribute.
10
- attr_accessor :cursor
11
-
12
- # Attribute mapping from ruby-style variable name to JSON key.
13
- def self.attribute_map
14
- {
15
- :cursor => :cursor
16
- }
17
- end
18
-
19
- # Returns all the JSON keys this model knows about
20
- def self.acceptable_attributes
21
- attribute_map.values
22
- end
23
-
24
- # Attribute type mapping.
25
- def self.types_mapping
26
- {
27
- :cursor => :"String"
28
- }
29
- end
30
-
31
- # List of attributes with nullable: true
32
- def self.openapi_nullable
33
- Set.new(
34
- []
35
- )
36
- end
37
-
38
- # Initializes the object
39
- # @param [Hash] attributes Model attributes in the form of hash
40
- def initialize(attributes = {})
41
- if (!attributes.is_a?(Hash))
42
- raise ArgumentError, "The input argument (attributes) must be a hash in `Algolia::Cursor` initialize method"
43
- end
44
-
45
- # check to see if the attribute exists and convert string to symbol for hash key
46
- attributes = attributes.each_with_object({}) { |(k, v), h|
47
- if (!self.class.attribute_map.key?(k.to_sym))
48
- raise(
49
- ArgumentError,
50
- "`#{k}` is not a valid attribute in `Algolia::Cursor`. Please check the name to make sure it's valid. List of attributes: " +
51
- self.class.attribute_map.keys.inspect
52
- )
53
- end
54
-
55
- h[k.to_sym] = v
56
- }
57
-
58
- if attributes.key?(:cursor)
59
- self.cursor = attributes[:cursor]
60
- end
61
- end
62
-
63
- # Checks equality by comparing each attribute.
64
- # @param [Object] Object to be compared
65
- def ==(other)
66
- return true if self.equal?(other)
67
- self.class == other.class &&
68
- cursor == other.cursor
69
- end
70
-
71
- # @see the `==` method
72
- # @param [Object] Object to be compared
73
- def eql?(other)
74
- self == other
75
- end
76
-
77
- # Calculates hash code according to all attributes.
78
- # @return [Integer] Hash code
79
- def hash
80
- [cursor].hash
81
- end
82
-
83
- # Builds the object from hash
84
- # @param [Hash] attributes Model attributes in the form of hash
85
- # @return [Object] Returns the model itself
86
- def self.build_from_hash(attributes)
87
- return nil unless attributes.is_a?(Hash)
88
- attributes = attributes.transform_keys(&:to_sym)
89
- transformed_hash = {}
90
- types_mapping.each_pair do |key, type|
91
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
92
- transformed_hash[key.to_sym] = nil
93
- elsif type =~ /\AArray<(.*)>/i
94
- # check to ensure the input is an array given that the attribute
95
- # is documented as an array but the input is not
96
- if attributes[attribute_map[key]].is_a?(Array)
97
- transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
98
- _deserialize(::Regexp.last_match(1), v)
99
- }
100
- end
101
- elsif !attributes[attribute_map[key]].nil?
102
- transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
103
- end
104
- end
105
-
106
- new(transformed_hash)
107
- end
108
-
109
- # Deserializes the data based on type
110
- # @param string type Data type
111
- # @param string value Value to be deserialized
112
- # @return [Object] Deserialized data
113
- def self._deserialize(type, value)
114
- case type.to_sym
115
- when :Time
116
- Time.parse(value)
117
- when :Date
118
- Date.parse(value)
119
- when :String
120
- value.to_s
121
- when :Integer
122
- value.to_i
123
- when :Float
124
- value.to_f
125
- when :Boolean
126
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
127
- true
128
- else
129
- false
130
- end
131
-
132
- when :Object
133
- # generic object (usually a Hash), return directly
134
- value
135
- when /\AArray<(?<inner_type>.+)>\z/
136
- inner_type = Regexp.last_match[:inner_type]
137
- value.map { |v| _deserialize(inner_type, v) }
138
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
139
- k_type = Regexp.last_match[:k_type]
140
- v_type = Regexp.last_match[:v_type]
141
- {}.tap do |hash|
142
- value.each do |k, v|
143
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
144
- end
145
- end
146
- # model
147
- else
148
- # models (e.g. Pet) or oneOf
149
- klass = Algolia::Search.const_get(type)
150
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
151
- .build_from_hash(value)
152
- end
153
- end
154
-
155
- # Returns the string representation of the object
156
- # @return [String] String presentation of the object
157
- def to_s
158
- to_hash.to_s
159
- end
160
-
161
- # to_body is an alias to to_hash (backward compatibility)
162
- # @return [Hash] Returns the object in the form of hash
163
- def to_body
164
- to_hash
165
- end
166
-
167
- def to_json(*_args)
168
- to_hash.to_json
169
- end
170
-
171
- # Returns the object in the form of hash
172
- # @return [Hash] Returns the object in the form of hash
173
- def to_hash
174
- hash = {}
175
- self.class.attribute_map.each_pair do |attr, param|
176
- value = send(attr)
177
- if value.nil?
178
- is_nullable = self.class.openapi_nullable.include?(attr)
179
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
180
- end
181
-
182
- hash[param] = _to_hash(value)
183
- end
184
-
185
- hash
186
- end
187
-
188
- # Outputs non-array value in the form of hash
189
- # For object, use to_hash. Otherwise, just return the value
190
- # @param [Object] value Any valid value
191
- # @return [Hash] Returns the value in the form of hash
192
- def _to_hash(value)
193
- if value.is_a?(Array)
194
- value.compact.map { |v| _to_hash(v) }
195
- elsif value.is_a?(Hash)
196
- {}.tap do |hash|
197
- value.each { |k, v| hash[k] = _to_hash(v) }
198
- end
199
- elsif value.respond_to?(:to_hash)
200
- value.to_hash
201
- else
202
- value
203
- end
204
- end
205
-
206
- end
207
-
208
- end
209
- end
@@ -1,212 +0,0 @@
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
- # Error.
9
- class ErrorBase
10
- attr_accessor :message
11
-
12
- attr_accessor :additional_properties
13
-
14
- # Attribute mapping from ruby-style variable name to JSON key.
15
- def self.attribute_map
16
- {
17
- :message => :message
18
- }
19
- end
20
-
21
- # Returns all the JSON keys this model knows about
22
- def self.acceptable_attributes
23
- attribute_map.values
24
- end
25
-
26
- # Attribute type mapping.
27
- def self.types_mapping
28
- {
29
- :message => :"String"
30
- }
31
- end
32
-
33
- # List of attributes with nullable: true
34
- def self.openapi_nullable
35
- Set.new(
36
- []
37
- )
38
- end
39
-
40
- # Initializes the object
41
- # @param [Hash] attributes Model attributes in the form of hash
42
- def initialize(attributes = {})
43
- if (!attributes.is_a?(Hash))
44
- raise(
45
- ArgumentError,
46
- "The input argument (attributes) must be a hash in `Algolia::ErrorBase` initialize method"
47
- )
48
- end
49
-
50
- if attributes.key?(:message)
51
- self.message = attributes[:message]
52
- end
53
-
54
- # add extra attribute to additional_properties
55
- self.additional_properties ||= {}
56
- self.additional_properties.merge!(attributes.reject { |k, _| self.class.attribute_map.key?(k.to_sym) })
57
- end
58
-
59
- # Checks equality by comparing each attribute.
60
- # @param [Object] Object to be compared
61
- def ==(other)
62
- return true if self.equal?(other)
63
- self.class == other.class &&
64
- message == other.message
65
- end
66
-
67
- # @see the `==` method
68
- # @param [Object] Object to be compared
69
- def eql?(other)
70
- self == other
71
- end
72
-
73
- # Calculates hash code according to all attributes.
74
- # @return [Integer] Hash code
75
- def hash
76
- [message].hash
77
- end
78
-
79
- # Builds the object from hash
80
- # @param [Hash] attributes Model attributes in the form of hash
81
- # @return [Object] Returns the model itself
82
- def self.build_from_hash(attributes)
83
- return nil unless attributes.is_a?(Hash)
84
- attributes = attributes.transform_keys(&:to_sym)
85
- transformed_hash = {}
86
- types_mapping.each_pair do |key, type|
87
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
88
- transformed_hash[key.to_sym] = nil
89
- elsif type =~ /\AArray<(.*)>/i
90
- # check to ensure the input is an array given that the attribute
91
- # is documented as an array but the input is not
92
- if attributes[attribute_map[key]].is_a?(Array)
93
- transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
94
- _deserialize(::Regexp.last_match(1), v)
95
- }
96
- end
97
- elsif !attributes[attribute_map[key]].nil?
98
- transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
99
- end
100
- end
101
-
102
- # add extra attribute to transformed_hash
103
- transformed_hash.merge!(attributes.reject { |k, _| attribute_map.key?(k.to_sym) })
104
- new(transformed_hash)
105
- end
106
-
107
- # Deserializes the data based on type
108
- # @param string type Data type
109
- # @param string value Value to be deserialized
110
- # @return [Object] Deserialized data
111
- def self._deserialize(type, value)
112
- case type.to_sym
113
- when :Time
114
- Time.parse(value)
115
- when :Date
116
- Date.parse(value)
117
- when :String
118
- value.to_s
119
- when :Integer
120
- value.to_i
121
- when :Float
122
- value.to_f
123
- when :Boolean
124
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
125
- true
126
- else
127
- false
128
- end
129
-
130
- when :Object
131
- # generic object (usually a Hash), return directly
132
- value
133
- when /\AArray<(?<inner_type>.+)>\z/
134
- inner_type = Regexp.last_match[:inner_type]
135
- value.map { |v| _deserialize(inner_type, v) }
136
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
137
- k_type = Regexp.last_match[:k_type]
138
- v_type = Regexp.last_match[:v_type]
139
- {}.tap do |hash|
140
- value.each do |k, v|
141
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
142
- end
143
- end
144
- # model
145
- else
146
- # models (e.g. Pet) or oneOf
147
- klass = Algolia::Search.const_get(type)
148
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
149
- .build_from_hash(value)
150
- end
151
- end
152
-
153
- # Returns the string representation of the object
154
- # @return [String] String presentation of the object
155
- def to_s
156
- to_hash.to_s
157
- end
158
-
159
- # to_body is an alias to to_hash (backward compatibility)
160
- # @return [Hash] Returns the object in the form of hash
161
- def to_body
162
- to_hash
163
- end
164
-
165
- def to_json(*_args)
166
- to_hash.to_json
167
- end
168
-
169
- # Returns the object in the form of hash
170
- # @return [Hash] Returns the object in the form of hash
171
- def to_hash
172
- hash = {}
173
- self.class.attribute_map.each_pair do |attr, param|
174
- value = send(attr)
175
- if value.nil?
176
- is_nullable = self.class.openapi_nullable.include?(attr)
177
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
178
- end
179
-
180
- hash[param] = _to_hash(value)
181
- end
182
-
183
- # also add attributes from additional_properties to hash
184
- self.additional_properties&.each_pair do |k, v|
185
- hash[k.to_sym] = _to_hash(v)
186
- end
187
-
188
- hash
189
- end
190
-
191
- # Outputs non-array value in the form of hash
192
- # For object, use to_hash. Otherwise, just return the value
193
- # @param [Object] value Any valid value
194
- # @return [Hash] Returns the value in the form of hash
195
- def _to_hash(value)
196
- if value.is_a?(Array)
197
- value.compact.map { |v| _to_hash(v) }
198
- elsif value.is_a?(Hash)
199
- {}.tap do |hash|
200
- value.each { |k, v| hash[k] = _to_hash(v) }
201
- end
202
- elsif value.respond_to?(:to_hash)
203
- value.to_hash
204
- else
205
- value
206
- end
207
- end
208
-
209
- end
210
-
211
- end
212
- end