algolia 3.40.0 → 3.41.0

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 (130) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE/Bug_report.yml +1 -0
  3. data/CHANGELOG.md +5 -0
  4. data/Gemfile.lock +4 -4
  5. data/lib/algolia/api/agent_studio_client.rb +2364 -0
  6. data/lib/algolia/models/agent-studio/advanced_syntax_features.rb +34 -0
  7. data/lib/algolia/models/agent-studio/agent_completion_algolia_params.rb +221 -0
  8. data/lib/algolia/models/agent-studio/agent_completion_request.rb +247 -0
  9. data/lib/algolia/models/agent-studio/agent_config_create.rb +288 -0
  10. data/lib/algolia/models/agent-studio/agent_config_update.rb +294 -0
  11. data/lib/algolia/models/agent-studio/agent_status.rb +34 -0
  12. data/lib/algolia/models/agent-studio/agent_test_configuration.rb +271 -0
  13. data/lib/algolia/models/agent-studio/agent_with_version_response.rb +370 -0
  14. data/lib/algolia/models/agent-studio/algolia_display_results_tool_config.rb +254 -0
  15. data/lib/algolia/models/agent-studio/algolia_recommend_tool_config_input.rb +242 -0
  16. data/lib/algolia/models/agent-studio/algolia_recommend_tool_index_config.rb +228 -0
  17. data/lib/algolia/models/agent-studio/algolia_search_tool_config.rb +232 -0
  18. data/lib/algolia/models/agent-studio/algolia_search_tool_index_config.rb +249 -0
  19. data/lib/algolia/models/agent-studio/allowed_domain_bulk_delete.rb +212 -0
  20. data/lib/algolia/models/agent-studio/allowed_domain_bulk_insert.rb +212 -0
  21. data/lib/algolia/models/agent-studio/allowed_domain_create.rb +210 -0
  22. data/lib/algolia/models/agent-studio/allowed_domain_list_response.rb +211 -0
  23. data/lib/algolia/models/agent-studio/allowed_domain_response.rb +264 -0
  24. data/lib/algolia/models/agent-studio/alternatives_as_exact.rb +36 -0
  25. data/lib/algolia/models/agent-studio/anthropic_provider_input.rb +220 -0
  26. data/lib/algolia/models/agent-studio/application_config_patch.rb +209 -0
  27. data/lib/algolia/models/agent-studio/application_config_response.rb +208 -0
  28. data/lib/algolia/models/agent-studio/around_precision_union.rb +108 -0
  29. data/lib/algolia/models/agent-studio/around_radius_union.rb +108 -0
  30. data/lib/algolia/models/agent-studio/assistant_message_v4.rb +252 -0
  31. data/lib/algolia/models/agent-studio/assistant_message_v5.rb +228 -0
  32. data/lib/algolia/models/agent-studio/assistant_part_v4.rb +110 -0
  33. data/lib/algolia/models/agent-studio/assistant_part_v5.rb +110 -0
  34. data/lib/algolia/models/agent-studio/azure_open_ai_provider_input.rb +243 -0
  35. data/lib/algolia/models/agent-studio/base_provider_input.rb +209 -0
  36. data/lib/algolia/models/agent-studio/client_side_tool_config.rb +241 -0
  37. data/lib/algolia/models/agent-studio/client_tools_args_schema.rb +228 -0
  38. data/lib/algolia/models/agent-studio/compatibility_mode.rb +34 -0
  39. data/lib/algolia/models/agent-studio/conversation_base_response.rb +355 -0
  40. data/lib/algolia/models/agent-studio/conversation_full_response.rb +369 -0
  41. data/lib/algolia/models/agent-studio/conversation_metadata.rb +209 -0
  42. data/lib/algolia/models/agent-studio/distinct_union.rb +108 -0
  43. data/lib/algolia/models/agent-studio/episode.rb +243 -0
  44. data/lib/algolia/models/agent-studio/error_base.rb +207 -0
  45. data/lib/algolia/models/agent-studio/exact_on_single_word_query.rb +35 -0
  46. data/lib/algolia/models/agent-studio/facet_filters_union.rb +108 -0
  47. data/lib/algolia/models/agent-studio/facets.rb +208 -0
  48. data/lib/algolia/models/agent-studio/facets_param.rb +220 -0
  49. data/lib/algolia/models/agent-studio/facets_union.rb +108 -0
  50. data/lib/algolia/models/agent-studio/feedback_creation_request.rb +251 -0
  51. data/lib/algolia/models/agent-studio/feedback_response.rb +297 -0
  52. data/lib/algolia/models/agent-studio/ignore_plurals_union.rb +108 -0
  53. data/lib/algolia/models/agent-studio/index_search_parameters.rb +267 -0
  54. data/lib/algolia/models/agent-studio/inside_bounding_box_union.rb +108 -0
  55. data/lib/algolia/models/agent-studio/inside_polygon_union.rb +108 -0
  56. data/lib/algolia/models/agent-studio/location_item_union.rb +108 -0
  57. data/lib/algolia/models/agent-studio/mcp_server_tool_config.rb +276 -0
  58. data/lib/algolia/models/agent-studio/mcp_tool_config.rb +218 -0
  59. data/lib/algolia/models/agent-studio/memory_record.rb +368 -0
  60. data/lib/algolia/models/agent-studio/memory_type.rb +34 -0
  61. data/lib/algolia/models/agent-studio/message_part.rb +132 -0
  62. data/lib/algolia/models/agent-studio/message_response.rb +309 -0
  63. data/lib/algolia/models/agent-studio/message_role.rb +34 -0
  64. data/lib/algolia/models/agent-studio/message_v4.rb +117 -0
  65. data/lib/algolia/models/agent-studio/message_v5.rb +117 -0
  66. data/lib/algolia/models/agent-studio/messages_union.rb +108 -0
  67. data/lib/algolia/models/agent-studio/number_param.rb +230 -0
  68. data/lib/algolia/models/agent-studio/number_param_constraint.rb +219 -0
  69. data/lib/algolia/models/agent-studio/numeric_filters_union.rb +108 -0
  70. data/lib/algolia/models/agent-studio/open_ai_compatible_provider_input.rb +232 -0
  71. data/lib/algolia/models/agent-studio/open_ai_provider_input.rb +220 -0
  72. data/lib/algolia/models/agent-studio/optional_filters_union.rb +108 -0
  73. data/lib/algolia/models/agent-studio/optional_words_union.rb +108 -0
  74. data/lib/algolia/models/agent-studio/paginated_agents_response.rb +221 -0
  75. data/lib/algolia/models/agent-studio/paginated_conversations_response.rb +221 -0
  76. data/lib/algolia/models/agent-studio/paginated_provider_authentications_response.rb +221 -0
  77. data/lib/algolia/models/agent-studio/paginated_secret_keys_response.rb +221 -0
  78. data/lib/algolia/models/agent-studio/pagination_metadata.rb +241 -0
  79. data/lib/algolia/models/agent-studio/provider_authentication_create.rb +230 -0
  80. data/lib/algolia/models/agent-studio/provider_authentication_patch.rb +218 -0
  81. data/lib/algolia/models/agent-studio/provider_authentication_response.rb +274 -0
  82. data/lib/algolia/models/agent-studio/provider_input.rb +111 -0
  83. data/lib/algolia/models/agent-studio/provider_input_nullable.rb +111 -0
  84. data/lib/algolia/models/agent-studio/provider_name.rb +38 -0
  85. data/lib/algolia/models/agent-studio/query_type.rb +35 -0
  86. data/lib/algolia/models/agent-studio/re_ranking_apply_filter_union.rb +108 -0
  87. data/lib/algolia/models/agent-studio/reasoning_part.rb +219 -0
  88. data/lib/algolia/models/agent-studio/reasoning_part_v4.rb +217 -0
  89. data/lib/algolia/models/agent-studio/reasoning_part_v5.rb +217 -0
  90. data/lib/algolia/models/agent-studio/remove_stop_words_union.rb +108 -0
  91. data/lib/algolia/models/agent-studio/remove_words_if_no_results.rb +36 -0
  92. data/lib/algolia/models/agent-studio/search_parameters.rb +950 -0
  93. data/lib/algolia/models/agent-studio/search_parameters_overrides.rb +286 -0
  94. data/lib/algolia/models/agent-studio/secret_key_create.rb +222 -0
  95. data/lib/algolia/models/agent-studio/secret_key_patch.rb +223 -0
  96. data/lib/algolia/models/agent-studio/secret_key_response.rb +287 -0
  97. data/lib/algolia/models/agent-studio/start_part.rb +208 -0
  98. data/lib/algolia/models/agent-studio/start_step_part.rb +208 -0
  99. data/lib/algolia/models/agent-studio/step_start_part_v4.rb +206 -0
  100. data/lib/algolia/models/agent-studio/step_start_part_v5.rb +206 -0
  101. data/lib/algolia/models/agent-studio/string_array_param.rb +242 -0
  102. data/lib/algolia/models/agent-studio/string_array_param_constraint.rb +211 -0
  103. data/lib/algolia/models/agent-studio/supported_language.rb +169 -0
  104. data/lib/algolia/models/agent-studio/tag_filters_union.rb +108 -0
  105. data/lib/algolia/models/agent-studio/text_param.rb +220 -0
  106. data/lib/algolia/models/agent-studio/text_part.rb +216 -0
  107. data/lib/algolia/models/agent-studio/text_part_v4.rb +217 -0
  108. data/lib/algolia/models/agent-studio/text_part_v5.rb +217 -0
  109. data/lib/algolia/models/agent-studio/tool_approval_request_part.rb +285 -0
  110. data/lib/algolia/models/agent-studio/tool_call_part.rb +265 -0
  111. data/lib/algolia/models/agent-studio/tool_config.rb +108 -0
  112. data/lib/algolia/models/agent-studio/tool_config_input.rb +129 -0
  113. data/lib/algolia/models/agent-studio/tool_invocation_part_v4.rb +217 -0
  114. data/lib/algolia/models/agent-studio/tool_invocation_v4.rb +309 -0
  115. data/lib/algolia/models/agent-studio/tool_part_v5.rb +309 -0
  116. data/lib/algolia/models/agent-studio/tool_result_output.rb +221 -0
  117. data/lib/algolia/models/agent-studio/tool_result_output_type.rb +37 -0
  118. data/lib/algolia/models/agent-studio/tool_result_part.rb +254 -0
  119. data/lib/algolia/models/agent-studio/tool_state.rb +36 -0
  120. data/lib/algolia/models/agent-studio/typo_tolerance_enum.rb +36 -0
  121. data/lib/algolia/models/agent-studio/typo_tolerance_union.rb +108 -0
  122. data/lib/algolia/models/agent-studio/unknown_tool_config.rb +220 -0
  123. data/lib/algolia/models/agent-studio/user_data_response.rb +223 -0
  124. data/lib/algolia/models/agent-studio/user_message_metadata_v5.rb +209 -0
  125. data/lib/algolia/models/agent-studio/user_message_v4.rb +250 -0
  126. data/lib/algolia/models/agent-studio/user_message_v5.rb +237 -0
  127. data/lib/algolia/models/agent-studio/validation_error.rb +252 -0
  128. data/lib/algolia/models/agent-studio/vote_enum.rb +34 -0
  129. data/lib/algolia/version.rb +1 -1
  130. metadata +125 -1
@@ -0,0 +1,237 @@
1
+ # frozen_string_literal: true
2
+
3
+ # 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.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module AgentStudio
10
+ class UserMessageV5
11
+ attr_accessor :id
12
+
13
+ attr_accessor :role
14
+
15
+ attr_accessor :parts
16
+
17
+ attr_accessor :metadata
18
+
19
+ # Attribute mapping from ruby-style variable name to JSON key.
20
+ def self.attribute_map
21
+ {
22
+ :id => :id,
23
+ :role => :role,
24
+ :parts => :parts,
25
+ :metadata => :metadata
26
+ }
27
+ end
28
+
29
+ # Attribute type mapping.
30
+ def self.types_mapping
31
+ {
32
+ :id => :"String",
33
+ :role => :"String",
34
+ :parts => :"Array<TextPartV5>",
35
+ :metadata => :"UserMessageMetadataV5"
36
+ }
37
+ end
38
+
39
+ # List of attributes with nullable: true
40
+ def self.openapi_nullable
41
+ Set.new(
42
+ []
43
+ )
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ raise(
51
+ ArgumentError,
52
+ "The input argument (attributes) must be a hash in `Algolia::UserMessageV5` initialize method"
53
+ )
54
+ end
55
+
56
+ # check to see if the attribute exists and convert string to symbol for hash key
57
+ attributes = attributes.each_with_object({}) { |(k, v), h|
58
+ if (!self.class.attribute_map.key?(k.to_sym))
59
+ raise(
60
+ ArgumentError,
61
+ "`#{k}` is not a valid attribute in `Algolia::UserMessageV5`. Please check the name to make sure it's valid. List of attributes: " +
62
+ self.class.attribute_map.keys.inspect
63
+ )
64
+ end
65
+
66
+ h[k.to_sym] = v
67
+ }
68
+
69
+ if attributes.key?(:id)
70
+ self.id = attributes[:id]
71
+ end
72
+
73
+ if attributes.key?(:role)
74
+ self.role = attributes[:role]
75
+ else
76
+ self.role = nil
77
+ end
78
+
79
+ if attributes.key?(:parts)
80
+ if (value = attributes[:parts]).is_a?(Array)
81
+ self.parts = value
82
+ end
83
+ end
84
+
85
+ if attributes.key?(:metadata)
86
+ self.metadata = attributes[:metadata]
87
+ end
88
+ end
89
+
90
+ # Checks equality by comparing each attribute.
91
+ # @param [Object] Object to be compared
92
+ def ==(other)
93
+ return true if self.equal?(other)
94
+ self.class == other.class &&
95
+ id == other.id &&
96
+ role == other.role &&
97
+ parts == other.parts &&
98
+ metadata == other.metadata
99
+ end
100
+
101
+ # @see the `==` method
102
+ # @param [Object] Object to be compared
103
+ def eql?(other)
104
+ self == other
105
+ end
106
+
107
+ # Calculates hash code according to all attributes.
108
+ # @return [Integer] Hash code
109
+ def hash
110
+ [id, role, parts, metadata].hash
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def self.build_from_hash(attributes)
117
+ return nil unless attributes.is_a?(Hash)
118
+ attributes = attributes.transform_keys(&:to_sym)
119
+ transformed_hash = {}
120
+ types_mapping.each_pair do |key, type|
121
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
122
+ transformed_hash[key.to_sym] = nil
123
+ elsif type =~ /\AArray<(.*)>/i
124
+ # check to ensure the input is an array given that the attribute
125
+ # is documented as an array but the input is not
126
+ if attributes[attribute_map[key]].is_a?(Array)
127
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
128
+ _deserialize(::Regexp.last_match(1), v)
129
+ }
130
+ end
131
+ elsif !attributes[attribute_map[key]].nil?
132
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
133
+ end
134
+ end
135
+
136
+ new(transformed_hash)
137
+ end
138
+
139
+ # Deserializes the data based on type
140
+ # @param string type Data type
141
+ # @param string value Value to be deserialized
142
+ # @return [Object] Deserialized data
143
+ def self._deserialize(type, value)
144
+ case type.to_sym
145
+ when :Time
146
+ Time.parse(value)
147
+ when :Date
148
+ Date.parse(value)
149
+ when :String
150
+ value.to_s
151
+ when :Integer
152
+ value.to_i
153
+ when :Float
154
+ value.to_f
155
+ when :Boolean
156
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
157
+ true
158
+ else
159
+ false
160
+ end
161
+
162
+ when :Object
163
+ # generic object (usually a Hash), return directly
164
+ value
165
+ when /\AArray<(?<inner_type>.+)>\z/
166
+ inner_type = Regexp.last_match[:inner_type]
167
+ value.map { |v| _deserialize(inner_type, v) }
168
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
169
+ k_type = Regexp.last_match[:k_type]
170
+ v_type = Regexp.last_match[:v_type]
171
+ {}.tap do |hash|
172
+ value.each do |k, v|
173
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
174
+ end
175
+ end
176
+ # model
177
+ else
178
+ # models (e.g. Pet) or oneOf
179
+ klass = Algolia::AgentStudio.const_get(type)
180
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
181
+ .build_from_hash(value)
182
+ end
183
+ end
184
+
185
+ # Returns the string representation of the object
186
+ # @return [String] String presentation of the object
187
+ def to_s
188
+ to_hash.to_s
189
+ end
190
+
191
+ # to_body is an alias to to_hash (backward compatibility)
192
+ # @return [Hash] Returns the object in the form of hash
193
+ def to_body
194
+ to_hash
195
+ end
196
+
197
+ def to_json(*_args)
198
+ to_hash.to_json
199
+ end
200
+
201
+ # Returns the object in the form of hash
202
+ # @return [Hash] Returns the object in the form of hash
203
+ def to_hash
204
+ hash = {}
205
+ self.class.attribute_map.each_pair do |attr, param|
206
+ value = send(attr)
207
+ if value.nil?
208
+ is_nullable = self.class.openapi_nullable.include?(attr)
209
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
210
+ end
211
+
212
+ hash[param] = _to_hash(value)
213
+ end
214
+
215
+ hash
216
+ end
217
+
218
+ # Outputs non-array value in the form of hash
219
+ # For object, use to_hash. Otherwise, just return the value
220
+ # @param [Object] value Any valid value
221
+ # @return [Hash] Returns the value in the form of hash
222
+ def _to_hash(value)
223
+ if value.is_a?(Array)
224
+ value.compact.map { |v| _to_hash(v) }
225
+ elsif value.is_a?(Hash)
226
+ {}.tap do |hash|
227
+ value.each { |k, v| hash[k] = _to_hash(v) }
228
+ end
229
+ elsif value.respond_to?(:to_hash)
230
+ value.to_hash
231
+ else
232
+ value
233
+ end
234
+ end
235
+ end
236
+ end
237
+ end
@@ -0,0 +1,252 @@
1
+ # frozen_string_literal: true
2
+
3
+ # 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.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module AgentStudio
10
+ class ValidationError
11
+ attr_accessor :loc
12
+
13
+ attr_accessor :msg
14
+
15
+ attr_accessor :type
16
+
17
+ attr_accessor :input
18
+
19
+ attr_accessor :ctx
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :loc => :loc,
25
+ :msg => :msg,
26
+ :type => :type,
27
+ :input => :input,
28
+ :ctx => :ctx
29
+ }
30
+ end
31
+
32
+ # Attribute type mapping.
33
+ def self.types_mapping
34
+ {
35
+ :loc => :"Array<LocationItemUnion>",
36
+ :msg => :"String",
37
+ :type => :"String",
38
+ :input => :"Object",
39
+ :ctx => :"Object"
40
+ }
41
+ end
42
+
43
+ # List of attributes with nullable: true
44
+ def self.openapi_nullable
45
+ Set.new(
46
+ [
47
+ :input
48
+ ]
49
+ )
50
+ end
51
+
52
+ # Initializes the object
53
+ # @param [Hash] attributes Model attributes in the form of hash
54
+ def initialize(attributes = {})
55
+ if (!attributes.is_a?(Hash))
56
+ raise(
57
+ ArgumentError,
58
+ "The input argument (attributes) must be a hash in `Algolia::ValidationError` initialize method"
59
+ )
60
+ end
61
+
62
+ # check to see if the attribute exists and convert string to symbol for hash key
63
+ attributes = attributes.each_with_object({}) { |(k, v), h|
64
+ if (!self.class.attribute_map.key?(k.to_sym))
65
+ raise(
66
+ ArgumentError,
67
+ "`#{k}` is not a valid attribute in `Algolia::ValidationError`. Please check the name to make sure it's valid. List of attributes: " +
68
+ self.class.attribute_map.keys.inspect
69
+ )
70
+ end
71
+
72
+ h[k.to_sym] = v
73
+ }
74
+
75
+ if attributes.key?(:loc)
76
+ if (value = attributes[:loc]).is_a?(Array)
77
+ self.loc = value
78
+ end
79
+ else
80
+ self.loc = nil
81
+ end
82
+
83
+ if attributes.key?(:msg)
84
+ self.msg = attributes[:msg]
85
+ else
86
+ self.msg = nil
87
+ end
88
+
89
+ if attributes.key?(:type)
90
+ self.type = attributes[:type]
91
+ else
92
+ self.type = nil
93
+ end
94
+
95
+ if attributes.key?(:input)
96
+ self.input = attributes[:input]
97
+ end
98
+
99
+ if attributes.key?(:ctx)
100
+ self.ctx = attributes[:ctx]
101
+ end
102
+ end
103
+
104
+ # Checks equality by comparing each attribute.
105
+ # @param [Object] Object to be compared
106
+ def ==(other)
107
+ return true if self.equal?(other)
108
+ self.class == other.class &&
109
+ loc == other.loc &&
110
+ msg == other.msg &&
111
+ type == other.type &&
112
+ input == other.input &&
113
+ ctx == other.ctx
114
+ end
115
+
116
+ # @see the `==` method
117
+ # @param [Object] Object to be compared
118
+ def eql?(other)
119
+ self == other
120
+ end
121
+
122
+ # Calculates hash code according to all attributes.
123
+ # @return [Integer] Hash code
124
+ def hash
125
+ [loc, msg, type, input, ctx].hash
126
+ end
127
+
128
+ # Builds the object from hash
129
+ # @param [Hash] attributes Model attributes in the form of hash
130
+ # @return [Object] Returns the model itself
131
+ def self.build_from_hash(attributes)
132
+ return nil unless attributes.is_a?(Hash)
133
+ attributes = attributes.transform_keys(&:to_sym)
134
+ transformed_hash = {}
135
+ types_mapping.each_pair do |key, type|
136
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
137
+ transformed_hash[key.to_sym] = nil
138
+ elsif type =~ /\AArray<(.*)>/i
139
+ # check to ensure the input is an array given that the attribute
140
+ # is documented as an array but the input is not
141
+ if attributes[attribute_map[key]].is_a?(Array)
142
+ transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
143
+ _deserialize(::Regexp.last_match(1), v)
144
+ }
145
+ end
146
+ elsif !attributes[attribute_map[key]].nil?
147
+ transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
148
+ end
149
+ end
150
+
151
+ new(transformed_hash)
152
+ end
153
+
154
+ # Deserializes the data based on type
155
+ # @param string type Data type
156
+ # @param string value Value to be deserialized
157
+ # @return [Object] Deserialized data
158
+ def self._deserialize(type, value)
159
+ case type.to_sym
160
+ when :Time
161
+ Time.parse(value)
162
+ when :Date
163
+ Date.parse(value)
164
+ when :String
165
+ value.to_s
166
+ when :Integer
167
+ value.to_i
168
+ when :Float
169
+ value.to_f
170
+ when :Boolean
171
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
172
+ true
173
+ else
174
+ false
175
+ end
176
+
177
+ when :Object
178
+ # generic object (usually a Hash), return directly
179
+ value
180
+ when /\AArray<(?<inner_type>.+)>\z/
181
+ inner_type = Regexp.last_match[:inner_type]
182
+ value.map { |v| _deserialize(inner_type, v) }
183
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
184
+ k_type = Regexp.last_match[:k_type]
185
+ v_type = Regexp.last_match[:v_type]
186
+ {}.tap do |hash|
187
+ value.each do |k, v|
188
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
189
+ end
190
+ end
191
+ # model
192
+ else
193
+ # models (e.g. Pet) or oneOf
194
+ klass = Algolia::AgentStudio.const_get(type)
195
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
196
+ .build_from_hash(value)
197
+ end
198
+ end
199
+
200
+ # Returns the string representation of the object
201
+ # @return [String] String presentation of the object
202
+ def to_s
203
+ to_hash.to_s
204
+ end
205
+
206
+ # to_body is an alias to to_hash (backward compatibility)
207
+ # @return [Hash] Returns the object in the form of hash
208
+ def to_body
209
+ to_hash
210
+ end
211
+
212
+ def to_json(*_args)
213
+ to_hash.to_json
214
+ end
215
+
216
+ # Returns the object in the form of hash
217
+ # @return [Hash] Returns the object in the form of hash
218
+ def to_hash
219
+ hash = {}
220
+ self.class.attribute_map.each_pair do |attr, param|
221
+ value = send(attr)
222
+ if value.nil?
223
+ is_nullable = self.class.openapi_nullable.include?(attr)
224
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
225
+ end
226
+
227
+ hash[param] = _to_hash(value)
228
+ end
229
+
230
+ hash
231
+ end
232
+
233
+ # Outputs non-array value in the form of hash
234
+ # For object, use to_hash. Otherwise, just return the value
235
+ # @param [Object] value Any valid value
236
+ # @return [Hash] Returns the value in the form of hash
237
+ def _to_hash(value)
238
+ if value.is_a?(Array)
239
+ value.compact.map { |v| _to_hash(v) }
240
+ elsif value.is_a?(Hash)
241
+ {}.tap do |hash|
242
+ value.each { |k, v| hash[k] = _to_hash(v) }
243
+ end
244
+ elsif value.respond_to?(:to_hash)
245
+ value.to_hash
246
+ else
247
+ value
248
+ end
249
+ end
250
+ end
251
+ end
252
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ # 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.
4
+
5
+ require "date"
6
+ require "time"
7
+
8
+ module Algolia
9
+ module AgentStudio
10
+ class VoteEnum
11
+ downvote = 0.freeze
12
+ upvote = 1.freeze
13
+
14
+ def self.all_vars
15
+ @all_vars ||= [downvote, upvote].freeze
16
+ end
17
+
18
+ # Builds the enum from string
19
+ # @param [String] The enum value in the form of the string
20
+ # @return [String] The enum value
21
+ def self.build_from_hash(value)
22
+ new.build_from_hash(value)
23
+ end
24
+
25
+ # Builds the enum from string
26
+ # @param [String] The enum value in the form of the string
27
+ # @return [String] The enum value
28
+ def build_from_hash(value)
29
+ return value if VoteEnum.all_vars.include?(value)
30
+ raise "Invalid ENUM value #{value} for class #VoteEnum"
31
+ end
32
+ end
33
+ end
34
+ end
@@ -3,5 +3,5 @@
3
3
  # 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.
4
4
 
5
5
  module Algolia
6
- VERSION = "3.40.0"
6
+ VERSION = "3.41.0"
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: algolia
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.40.0
4
+ version: 3.41.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - https://alg.li/support
@@ -132,6 +132,7 @@ files:
132
132
  - lib/algolia.rb
133
133
  - lib/algolia/api/abtesting_client.rb
134
134
  - lib/algolia/api/abtesting_v3_client.rb
135
+ - lib/algolia/api/agent_studio_client.rb
135
136
  - lib/algolia/api/analytics_client.rb
136
137
  - lib/algolia/api/composition_client.rb
137
138
  - lib/algolia/api/ingestion_client.rb
@@ -201,6 +202,129 @@ files:
201
202
  - lib/algolia/models/abtesting/outliers_filter.rb
202
203
  - lib/algolia/models/abtesting/status.rb
203
204
  - lib/algolia/models/abtesting/variant.rb
205
+ - lib/algolia/models/agent-studio/advanced_syntax_features.rb
206
+ - lib/algolia/models/agent-studio/agent_completion_algolia_params.rb
207
+ - lib/algolia/models/agent-studio/agent_completion_request.rb
208
+ - lib/algolia/models/agent-studio/agent_config_create.rb
209
+ - lib/algolia/models/agent-studio/agent_config_update.rb
210
+ - lib/algolia/models/agent-studio/agent_status.rb
211
+ - lib/algolia/models/agent-studio/agent_test_configuration.rb
212
+ - lib/algolia/models/agent-studio/agent_with_version_response.rb
213
+ - lib/algolia/models/agent-studio/algolia_display_results_tool_config.rb
214
+ - lib/algolia/models/agent-studio/algolia_recommend_tool_config_input.rb
215
+ - lib/algolia/models/agent-studio/algolia_recommend_tool_index_config.rb
216
+ - lib/algolia/models/agent-studio/algolia_search_tool_config.rb
217
+ - lib/algolia/models/agent-studio/algolia_search_tool_index_config.rb
218
+ - lib/algolia/models/agent-studio/allowed_domain_bulk_delete.rb
219
+ - lib/algolia/models/agent-studio/allowed_domain_bulk_insert.rb
220
+ - lib/algolia/models/agent-studio/allowed_domain_create.rb
221
+ - lib/algolia/models/agent-studio/allowed_domain_list_response.rb
222
+ - lib/algolia/models/agent-studio/allowed_domain_response.rb
223
+ - lib/algolia/models/agent-studio/alternatives_as_exact.rb
224
+ - lib/algolia/models/agent-studio/anthropic_provider_input.rb
225
+ - lib/algolia/models/agent-studio/application_config_patch.rb
226
+ - lib/algolia/models/agent-studio/application_config_response.rb
227
+ - lib/algolia/models/agent-studio/around_precision_union.rb
228
+ - lib/algolia/models/agent-studio/around_radius_union.rb
229
+ - lib/algolia/models/agent-studio/assistant_message_v4.rb
230
+ - lib/algolia/models/agent-studio/assistant_message_v5.rb
231
+ - lib/algolia/models/agent-studio/assistant_part_v4.rb
232
+ - lib/algolia/models/agent-studio/assistant_part_v5.rb
233
+ - lib/algolia/models/agent-studio/azure_open_ai_provider_input.rb
234
+ - lib/algolia/models/agent-studio/base_provider_input.rb
235
+ - lib/algolia/models/agent-studio/client_side_tool_config.rb
236
+ - lib/algolia/models/agent-studio/client_tools_args_schema.rb
237
+ - lib/algolia/models/agent-studio/compatibility_mode.rb
238
+ - lib/algolia/models/agent-studio/conversation_base_response.rb
239
+ - lib/algolia/models/agent-studio/conversation_full_response.rb
240
+ - lib/algolia/models/agent-studio/conversation_metadata.rb
241
+ - lib/algolia/models/agent-studio/distinct_union.rb
242
+ - lib/algolia/models/agent-studio/episode.rb
243
+ - lib/algolia/models/agent-studio/error_base.rb
244
+ - lib/algolia/models/agent-studio/exact_on_single_word_query.rb
245
+ - lib/algolia/models/agent-studio/facet_filters_union.rb
246
+ - lib/algolia/models/agent-studio/facets.rb
247
+ - lib/algolia/models/agent-studio/facets_param.rb
248
+ - lib/algolia/models/agent-studio/facets_union.rb
249
+ - lib/algolia/models/agent-studio/feedback_creation_request.rb
250
+ - lib/algolia/models/agent-studio/feedback_response.rb
251
+ - lib/algolia/models/agent-studio/ignore_plurals_union.rb
252
+ - lib/algolia/models/agent-studio/index_search_parameters.rb
253
+ - lib/algolia/models/agent-studio/inside_bounding_box_union.rb
254
+ - lib/algolia/models/agent-studio/inside_polygon_union.rb
255
+ - lib/algolia/models/agent-studio/location_item_union.rb
256
+ - lib/algolia/models/agent-studio/mcp_server_tool_config.rb
257
+ - lib/algolia/models/agent-studio/mcp_tool_config.rb
258
+ - lib/algolia/models/agent-studio/memory_record.rb
259
+ - lib/algolia/models/agent-studio/memory_type.rb
260
+ - lib/algolia/models/agent-studio/message_part.rb
261
+ - lib/algolia/models/agent-studio/message_response.rb
262
+ - lib/algolia/models/agent-studio/message_role.rb
263
+ - lib/algolia/models/agent-studio/message_v4.rb
264
+ - lib/algolia/models/agent-studio/message_v5.rb
265
+ - lib/algolia/models/agent-studio/messages_union.rb
266
+ - lib/algolia/models/agent-studio/number_param.rb
267
+ - lib/algolia/models/agent-studio/number_param_constraint.rb
268
+ - lib/algolia/models/agent-studio/numeric_filters_union.rb
269
+ - lib/algolia/models/agent-studio/open_ai_compatible_provider_input.rb
270
+ - lib/algolia/models/agent-studio/open_ai_provider_input.rb
271
+ - lib/algolia/models/agent-studio/optional_filters_union.rb
272
+ - lib/algolia/models/agent-studio/optional_words_union.rb
273
+ - lib/algolia/models/agent-studio/paginated_agents_response.rb
274
+ - lib/algolia/models/agent-studio/paginated_conversations_response.rb
275
+ - lib/algolia/models/agent-studio/paginated_provider_authentications_response.rb
276
+ - lib/algolia/models/agent-studio/paginated_secret_keys_response.rb
277
+ - lib/algolia/models/agent-studio/pagination_metadata.rb
278
+ - lib/algolia/models/agent-studio/provider_authentication_create.rb
279
+ - lib/algolia/models/agent-studio/provider_authentication_patch.rb
280
+ - lib/algolia/models/agent-studio/provider_authentication_response.rb
281
+ - lib/algolia/models/agent-studio/provider_input.rb
282
+ - lib/algolia/models/agent-studio/provider_input_nullable.rb
283
+ - lib/algolia/models/agent-studio/provider_name.rb
284
+ - lib/algolia/models/agent-studio/query_type.rb
285
+ - lib/algolia/models/agent-studio/re_ranking_apply_filter_union.rb
286
+ - lib/algolia/models/agent-studio/reasoning_part.rb
287
+ - lib/algolia/models/agent-studio/reasoning_part_v4.rb
288
+ - lib/algolia/models/agent-studio/reasoning_part_v5.rb
289
+ - lib/algolia/models/agent-studio/remove_stop_words_union.rb
290
+ - lib/algolia/models/agent-studio/remove_words_if_no_results.rb
291
+ - lib/algolia/models/agent-studio/search_parameters.rb
292
+ - lib/algolia/models/agent-studio/search_parameters_overrides.rb
293
+ - lib/algolia/models/agent-studio/secret_key_create.rb
294
+ - lib/algolia/models/agent-studio/secret_key_patch.rb
295
+ - lib/algolia/models/agent-studio/secret_key_response.rb
296
+ - lib/algolia/models/agent-studio/start_part.rb
297
+ - lib/algolia/models/agent-studio/start_step_part.rb
298
+ - lib/algolia/models/agent-studio/step_start_part_v4.rb
299
+ - lib/algolia/models/agent-studio/step_start_part_v5.rb
300
+ - lib/algolia/models/agent-studio/string_array_param.rb
301
+ - lib/algolia/models/agent-studio/string_array_param_constraint.rb
302
+ - lib/algolia/models/agent-studio/supported_language.rb
303
+ - lib/algolia/models/agent-studio/tag_filters_union.rb
304
+ - lib/algolia/models/agent-studio/text_param.rb
305
+ - lib/algolia/models/agent-studio/text_part.rb
306
+ - lib/algolia/models/agent-studio/text_part_v4.rb
307
+ - lib/algolia/models/agent-studio/text_part_v5.rb
308
+ - lib/algolia/models/agent-studio/tool_approval_request_part.rb
309
+ - lib/algolia/models/agent-studio/tool_call_part.rb
310
+ - lib/algolia/models/agent-studio/tool_config.rb
311
+ - lib/algolia/models/agent-studio/tool_config_input.rb
312
+ - lib/algolia/models/agent-studio/tool_invocation_part_v4.rb
313
+ - lib/algolia/models/agent-studio/tool_invocation_v4.rb
314
+ - lib/algolia/models/agent-studio/tool_part_v5.rb
315
+ - lib/algolia/models/agent-studio/tool_result_output.rb
316
+ - lib/algolia/models/agent-studio/tool_result_output_type.rb
317
+ - lib/algolia/models/agent-studio/tool_result_part.rb
318
+ - lib/algolia/models/agent-studio/tool_state.rb
319
+ - lib/algolia/models/agent-studio/typo_tolerance_enum.rb
320
+ - lib/algolia/models/agent-studio/typo_tolerance_union.rb
321
+ - lib/algolia/models/agent-studio/unknown_tool_config.rb
322
+ - lib/algolia/models/agent-studio/user_data_response.rb
323
+ - lib/algolia/models/agent-studio/user_message_metadata_v5.rb
324
+ - lib/algolia/models/agent-studio/user_message_v4.rb
325
+ - lib/algolia/models/agent-studio/user_message_v5.rb
326
+ - lib/algolia/models/agent-studio/validation_error.rb
327
+ - lib/algolia/models/agent-studio/vote_enum.rb
204
328
  - lib/algolia/models/analytics/click_position.rb
205
329
  - lib/algolia/models/analytics/currency_code.rb
206
330
  - lib/algolia/models/analytics/daily_add_to_cart_rates.rb