algolia 3.0.0.beta.11 → 3.0.0.beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/Gemfile.lock +2 -2
  4. data/lib/algolia/api/ingestion_client.rb +127 -3
  5. data/lib/algolia/api/query_suggestions_client.rb +4 -10
  6. data/lib/algolia/api/search_client.rb +2 -2
  7. data/lib/algolia/api/usage_client.rb +4 -4
  8. data/lib/algolia/models/abtesting/{filter_effects_empty_search.rb → empty_search_filter.rb} +3 -3
  9. data/lib/algolia/models/abtesting/filter_effects.rb +2 -2
  10. data/lib/algolia/models/abtesting/{filter_effects_outliers.rb → outliers_filter.rb} +3 -3
  11. data/lib/algolia/models/analytics/{click_positions_inner.rb → click_position.rb} +3 -3
  12. data/lib/algolia/models/analytics/get_click_positions_response.rb +1 -1
  13. data/lib/algolia/models/analytics/top_search_with_analytics.rb +1 -1
  14. data/lib/algolia/models/analytics/top_search_with_revenue_analytics.rb +1 -1
  15. data/lib/algolia/models/ingestion/destination.rb +15 -4
  16. data/lib/algolia/models/ingestion/destination_create.rb +15 -4
  17. data/lib/algolia/models/ingestion/destination_input.rb +1 -2
  18. data/lib/algolia/models/ingestion/destination_update.rb +15 -4
  19. data/lib/algolia/models/ingestion/docker_streams_input.rb +1 -0
  20. data/lib/algolia/models/ingestion/entity_type.rb +32 -0
  21. data/lib/algolia/models/ingestion/{destination_index_prefix.rb → model.rb} +55 -15
  22. data/lib/algolia/models/{recommend/trending_items.rb → ingestion/run_source_payload.rb} +39 -34
  23. data/lib/algolia/models/{search/base_get_api_key_response.rb → ingestion/run_source_response.rb} +19 -15
  24. data/lib/algolia/models/ingestion/{transformation_try_response_error.rb → transformation_error.rb} +3 -3
  25. data/lib/algolia/models/ingestion/{source_shopify_base.rb → transformation_models.rb} +14 -12
  26. data/lib/algolia/models/ingestion/transformation_try_response.rb +1 -1
  27. data/lib/algolia/models/monitoring/{incidents_inner.rb → incident_entry.rb} +3 -3
  28. data/lib/algolia/models/monitoring/{indexing_time_response_metrics.rb → indexing_metric.rb} +3 -3
  29. data/lib/algolia/models/monitoring/indexing_time_response.rb +1 -1
  30. data/lib/algolia/models/monitoring/infrastructure_response.rb +1 -1
  31. data/lib/algolia/models/monitoring/{latency_response_metrics.rb → latency_metric.rb} +3 -3
  32. data/lib/algolia/models/monitoring/latency_response.rb +1 -1
  33. data/lib/algolia/models/monitoring/{infrastructure_response_metrics.rb → metrics.rb} +3 -6
  34. data/lib/algolia/models/monitoring/{time_inner.rb → time_entry.rb} +3 -3
  35. data/lib/algolia/models/{search/search_for_hits_options.rb → query-suggestions/config_status.rb} +43 -36
  36. data/lib/algolia/models/{recommend/related_products.rb → query-suggestions/log_file.rb} +36 -32
  37. data/lib/algolia/models/recommend/around_precision.rb +1 -1
  38. data/lib/algolia/models/recommend/fallback_params.rb +1 -1
  39. data/lib/algolia/models/recommend/{around_precision_from_value_inner.rb → range.rb} +3 -6
  40. data/lib/algolia/models/recommend/recommend_rule.rb +1 -1
  41. data/lib/algolia/models/recommend/{redirect_rule_index_metadata_data.rb → redirect_rule_index_data.rb} +3 -3
  42. data/lib/algolia/models/recommend/redirect_rule_index_metadata.rb +1 -1
  43. data/lib/algolia/models/recommend/{recommend_rule_metadata.rb → rule_metadata.rb} +3 -3
  44. data/lib/algolia/models/recommend/search_params.rb +1 -1
  45. data/lib/algolia/models/recommend/search_params_object.rb +1 -1
  46. data/lib/algolia/models/search/around_precision.rb +1 -1
  47. data/lib/algolia/models/search/browse_params_object.rb +1 -1
  48. data/lib/algolia/models/search/built_in_operation.rb +1 -2
  49. data/lib/algolia/models/search/built_in_operation_value.rb +105 -0
  50. data/lib/algolia/models/search/consequence_params.rb +1 -1
  51. data/lib/algolia/models/search/dictionary_entry.rb +13 -6
  52. data/lib/algolia/models/search/dictionary_entry_type.rb +32 -0
  53. data/lib/algolia/models/search/index_settings.rb +2 -2
  54. data/lib/algolia/models/search/multiple_batch_request.rb +0 -2
  55. data/lib/algolia/models/search/{around_precision_from_value_inner.rb → range.rb} +3 -6
  56. data/lib/algolia/models/search/{redirect_rule_index_metadata_data.rb → redirect_rule_index_data.rb} +3 -3
  57. data/lib/algolia/models/search/redirect_rule_index_metadata.rb +1 -1
  58. data/lib/algolia/models/search/search_for_facets.rb +1 -1
  59. data/lib/algolia/models/search/search_for_hits.rb +1 -1
  60. data/lib/algolia/models/search/search_params_object.rb +1 -1
  61. data/lib/algolia/models/search/search_params_string.rb +1 -0
  62. data/lib/algolia/models/search/settings_response.rb +2 -2
  63. data/lib/algolia/models/usage/{get_usage400_response_error_errors_inner.rb → error_item.rb} +3 -3
  64. data/lib/algolia/models/usage/{get_usage400_response_error.rb → forbidden_error.rb} +4 -4
  65. data/lib/algolia/models/usage/{get_usage200_response.rb → index_usage.rb} +4 -4
  66. data/lib/algolia/models/usage/invalid_request_error.rb +231 -0
  67. data/lib/algolia/models/usage/{get_usage200_response_statistics_inner.rb → statistic_entry.rb} +3 -3
  68. data/lib/algolia/version.rb +1 -1
  69. metadata +30 -65
  70. data/lib/algolia/models/abtesting/custom_search_params.rb +0 -214
  71. data/lib/algolia/models/abtesting/error_base.rb +0 -212
  72. data/lib/algolia/models/analytics/error_base.rb +0 -212
  73. data/lib/algolia/models/ingestion/error_base.rb +0 -212
  74. data/lib/algolia/models/insights/error_base.rb +0 -212
  75. data/lib/algolia/models/monitoring/error_base.rb +0 -212
  76. data/lib/algolia/models/monitoring/get_servers403_response.rb +0 -211
  77. data/lib/algolia/models/personalization/error_base.rb +0 -212
  78. data/lib/algolia/models/query-suggestions/app_id.rb +0 -209
  79. data/lib/algolia/models/query-suggestions/error_base.rb +0 -212
  80. data/lib/algolia/models/recommend/base_recommend_request.rb +0 -281
  81. data/lib/algolia/models/recommend/base_search_params.rb +0 -635
  82. data/lib/algolia/models/recommend/base_search_params_without_query.rb +0 -616
  83. data/lib/algolia/models/recommend/base_search_response.rb +0 -499
  84. data/lib/algolia/models/recommend/error_base.rb +0 -212
  85. data/lib/algolia/models/recommend/frequently_bought_together.rb +0 -247
  86. data/lib/algolia/models/recommend/index_settings_as_search_params.rb +0 -788
  87. data/lib/algolia/models/recommend/looking_similar.rb +0 -256
  88. data/lib/algolia/models/recommend/recommendations_hits.rb +0 -215
  89. data/lib/algolia/models/recommend/recommended_for_you.rb +0 -244
  90. data/lib/algolia/models/recommend/search_pagination.rb +0 -282
  91. data/lib/algolia/models/recommend/search_params_query.rb +0 -212
  92. data/lib/algolia/models/recommend/trending_facets.rb +0 -258
  93. data/lib/algolia/models/search/base_index_settings.rb +0 -426
  94. data/lib/algolia/models/search/base_search_params.rb +0 -635
  95. data/lib/algolia/models/search/base_search_params_without_query.rb +0 -616
  96. data/lib/algolia/models/search/base_search_response.rb +0 -499
  97. data/lib/algolia/models/search/browse_pagination.rb +0 -274
  98. data/lib/algolia/models/search/cursor.rb +0 -209
  99. data/lib/algolia/models/search/error_base.rb +0 -212
  100. data/lib/algolia/models/search/index_settings_as_search_params.rb +0 -788
  101. data/lib/algolia/models/search/params.rb +0 -236
  102. data/lib/algolia/models/search/search_for_facets_options.rb +0 -293
  103. data/lib/algolia/models/search/search_hits.rb +0 -240
  104. data/lib/algolia/models/search/search_pagination.rb +0 -282
  105. data/lib/algolia/models/search/search_params_query.rb +0 -212
  106. data/lib/algolia/models/search/with_primary.rb +0 -212
  107. data/lib/algolia/models/usage/error_base.rb +0 -212
  108. data/lib/algolia/models/usage/get_usage400_response.rb +0 -213
@@ -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 Insights
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::Insights.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
@@ -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 Monitoring
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::Monitoring.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
@@ -1,211 +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 Monitoring
8
- class GetServers403Response
9
- attr_accessor :reason
10
-
11
- # Attribute mapping from ruby-style variable name to JSON key.
12
- def self.attribute_map
13
- {
14
- :reason => :reason
15
- }
16
- end
17
-
18
- # Returns all the JSON keys this model knows about
19
- def self.acceptable_attributes
20
- attribute_map.values
21
- end
22
-
23
- # Attribute type mapping.
24
- def self.types_mapping
25
- {
26
- :reason => :"String"
27
- }
28
- end
29
-
30
- # List of attributes with nullable: true
31
- def self.openapi_nullable
32
- Set.new(
33
- []
34
- )
35
- end
36
-
37
- # Initializes the object
38
- # @param [Hash] attributes Model attributes in the form of hash
39
- def initialize(attributes = {})
40
- if (!attributes.is_a?(Hash))
41
- raise(
42
- ArgumentError,
43
- "The input argument (attributes) must be a hash in `Algolia::GetServers403Response` initialize method"
44
- )
45
- end
46
-
47
- # check to see if the attribute exists and convert string to symbol for hash key
48
- attributes = attributes.each_with_object({}) { |(k, v), h|
49
- if (!self.class.attribute_map.key?(k.to_sym))
50
- raise(
51
- ArgumentError,
52
- "`#{k}` is not a valid attribute in `Algolia::GetServers403Response`. Please check the name to make sure it's valid. List of attributes: " +
53
- self.class.attribute_map.keys.inspect
54
- )
55
- end
56
-
57
- h[k.to_sym] = v
58
- }
59
-
60
- if attributes.key?(:reason)
61
- self.reason = attributes[:reason]
62
- end
63
- end
64
-
65
- # Checks equality by comparing each attribute.
66
- # @param [Object] Object to be compared
67
- def ==(other)
68
- return true if self.equal?(other)
69
- self.class == other.class &&
70
- reason == other.reason
71
- end
72
-
73
- # @see the `==` method
74
- # @param [Object] Object to be compared
75
- def eql?(other)
76
- self == other
77
- end
78
-
79
- # Calculates hash code according to all attributes.
80
- # @return [Integer] Hash code
81
- def hash
82
- [reason].hash
83
- end
84
-
85
- # Builds the object from hash
86
- # @param [Hash] attributes Model attributes in the form of hash
87
- # @return [Object] Returns the model itself
88
- def self.build_from_hash(attributes)
89
- return nil unless attributes.is_a?(Hash)
90
- attributes = attributes.transform_keys(&:to_sym)
91
- transformed_hash = {}
92
- types_mapping.each_pair do |key, type|
93
- if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
94
- transformed_hash[key.to_sym] = nil
95
- elsif type =~ /\AArray<(.*)>/i
96
- # check to ensure the input is an array given that the attribute
97
- # is documented as an array but the input is not
98
- if attributes[attribute_map[key]].is_a?(Array)
99
- transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
100
- _deserialize(::Regexp.last_match(1), v)
101
- }
102
- end
103
- elsif !attributes[attribute_map[key]].nil?
104
- transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
105
- end
106
- end
107
-
108
- new(transformed_hash)
109
- end
110
-
111
- # Deserializes the data based on type
112
- # @param string type Data type
113
- # @param string value Value to be deserialized
114
- # @return [Object] Deserialized data
115
- def self._deserialize(type, value)
116
- case type.to_sym
117
- when :Time
118
- Time.parse(value)
119
- when :Date
120
- Date.parse(value)
121
- when :String
122
- value.to_s
123
- when :Integer
124
- value.to_i
125
- when :Float
126
- value.to_f
127
- when :Boolean
128
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
129
- true
130
- else
131
- false
132
- end
133
-
134
- when :Object
135
- # generic object (usually a Hash), return directly
136
- value
137
- when /\AArray<(?<inner_type>.+)>\z/
138
- inner_type = Regexp.last_match[:inner_type]
139
- value.map { |v| _deserialize(inner_type, v) }
140
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
141
- k_type = Regexp.last_match[:k_type]
142
- v_type = Regexp.last_match[:v_type]
143
- {}.tap do |hash|
144
- value.each do |k, v|
145
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
146
- end
147
- end
148
- # model
149
- else
150
- # models (e.g. Pet) or oneOf
151
- klass = Algolia::Monitoring.const_get(type)
152
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
153
- .build_from_hash(value)
154
- end
155
- end
156
-
157
- # Returns the string representation of the object
158
- # @return [String] String presentation of the object
159
- def to_s
160
- to_hash.to_s
161
- end
162
-
163
- # to_body is an alias to to_hash (backward compatibility)
164
- # @return [Hash] Returns the object in the form of hash
165
- def to_body
166
- to_hash
167
- end
168
-
169
- def to_json(*_args)
170
- to_hash.to_json
171
- end
172
-
173
- # Returns the object in the form of hash
174
- # @return [Hash] Returns the object in the form of hash
175
- def to_hash
176
- hash = {}
177
- self.class.attribute_map.each_pair do |attr, param|
178
- value = send(attr)
179
- if value.nil?
180
- is_nullable = self.class.openapi_nullable.include?(attr)
181
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
182
- end
183
-
184
- hash[param] = _to_hash(value)
185
- end
186
-
187
- hash
188
- end
189
-
190
- # Outputs non-array value in the form of hash
191
- # For object, use to_hash. Otherwise, just return the value
192
- # @param [Object] value Any valid value
193
- # @return [Hash] Returns the value in the form of hash
194
- def _to_hash(value)
195
- if value.is_a?(Array)
196
- value.compact.map { |v| _to_hash(v) }
197
- elsif value.is_a?(Hash)
198
- {}.tap do |hash|
199
- value.each { |k, v| hash[k] = _to_hash(v) }
200
- end
201
- elsif value.respond_to?(:to_hash)
202
- value.to_hash
203
- else
204
- value
205
- end
206
- end
207
-
208
- end
209
-
210
- end
211
- end