fetch_hive 0.2.6 → 0.2.8

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 (106) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/lib/fetch_hive/client.rb +139 -13
  4. data/lib/fetch_hive/generated/api/agent_chat_messages_api.rb +97 -0
  5. data/lib/fetch_hive/generated/api/agent_chats_api.rb +413 -0
  6. data/lib/fetch_hive/generated/api/agents_api.rb +359 -4
  7. data/lib/fetch_hive/generated/api/assets_api.rb +153 -0
  8. data/lib/fetch_hive/generated/api/hive_agents_api.rb +90 -0
  9. data/lib/fetch_hive/generated/api/knowledge_base_items_api.rb +482 -0
  10. data/lib/fetch_hive/generated/api/knowledge_bases_api.rb +457 -0
  11. data/lib/fetch_hive/generated/api/models_api.rb +79 -0
  12. data/lib/fetch_hive/generated/api/prompts_api.rb +3 -3
  13. data/lib/fetch_hive/generated/api/requests_api.rb +85 -0
  14. data/lib/fetch_hive/generated/api/search_services_api.rb +147 -0
  15. data/lib/fetch_hive/generated/api/workflows_api.rb +2 -2
  16. data/lib/fetch_hive/generated/api_client.rb +2 -2
  17. data/lib/fetch_hive/generated/api_error.rb +2 -2
  18. data/lib/fetch_hive/generated/api_model_base.rb +2 -2
  19. data/lib/fetch_hive/generated/configuration.rb +2 -2
  20. data/lib/fetch_hive/generated/models/agent_attachment.rb +104 -0
  21. data/lib/fetch_hive/generated/models/agent_attachment_one_of.rb +191 -0
  22. data/lib/fetch_hive/generated/models/agent_message.rb +11 -11
  23. data/lib/fetch_hive/generated/models/asset_object.rb +350 -0
  24. data/lib/fetch_hive/generated/models/asset_object_transcription.rb +212 -0
  25. data/lib/fetch_hive/generated/models/async_config.rb +2 -2
  26. data/lib/fetch_hive/generated/models/delete_public_workspaces_agents200_response.rb +164 -0
  27. data/lib/fetch_hive/generated/models/delete_public_workspaces_agents_chats200_response.rb +164 -0
  28. data/lib/fetch_hive/generated/models/delete_public_workspaces_agents_chats404_response.rb +164 -0
  29. data/lib/fetch_hive/generated/models/delete_public_workspaces_knowledge_bases200_response.rb +164 -0
  30. data/lib/fetch_hive/generated/models/delete_public_workspaces_knowledge_bases_items200_response.rb +164 -0
  31. data/lib/fetch_hive/generated/models/error_response.rb +23 -17
  32. data/lib/fetch_hive/generated/models/generated_artifact.rb +236 -0
  33. data/lib/fetch_hive/generated/models/get_public_models200_response_inner.rb +474 -0
  34. data/lib/fetch_hive/generated/models/get_public_requests200_response.rb +319 -0
  35. data/lib/fetch_hive/generated/models/get_public_requests404_response.rb +164 -0
  36. data/lib/fetch_hive/generated/models/get_public_search_services_countries200_response.rb +166 -0
  37. data/lib/fetch_hive/generated/models/get_public_search_services_countries200_response_services_inner.rb +294 -0
  38. data/lib/fetch_hive/generated/models/get_public_search_services_countries200_response_services_inner_countries_inner.rb +216 -0
  39. data/lib/fetch_hive/generated/models/get_public_search_services_countries2404_response.rb +175 -0
  40. data/lib/fetch_hive/generated/models/get_public_workspaces_agents200_response.rb +164 -0
  41. data/lib/fetch_hive/generated/models/get_public_workspaces_agents2200_response.rb +166 -0
  42. data/lib/fetch_hive/generated/models/get_public_workspaces_agents_chats200_response.rb +164 -0
  43. data/lib/fetch_hive/generated/models/get_public_workspaces_agents_chats_messages200_response.rb +166 -0
  44. data/lib/fetch_hive/generated/models/get_public_workspaces_agents_chats_messages200_response_messages_inner.rb +276 -0
  45. data/lib/fetch_hive/generated/models/get_public_workspaces_agents_chats_messages422_response.rb +164 -0
  46. data/lib/fetch_hive/generated/models/get_public_workspaces_assets200_response.rb +166 -0
  47. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases200_response.rb +166 -0
  48. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases2200_response.rb +164 -0
  49. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases2422_response.rb +164 -0
  50. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases_items200_response.rb +166 -0
  51. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases_items200_response_knowledge_base_items_inner.rb +294 -0
  52. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases_items2200_response.rb +164 -0
  53. data/lib/fetch_hive/generated/models/get_public_workspaces_knowledge_bases_items2422_response.rb +164 -0
  54. data/lib/fetch_hive/generated/models/hive_agent_async_config.rb +192 -0
  55. data/lib/fetch_hive/generated/models/hive_agent_sources.rb +187 -0
  56. data/lib/fetch_hive/generated/models/invoke_agent_request.rb +92 -11
  57. data/lib/fetch_hive/generated/models/invoke_agent_response.rb +18 -6
  58. data/lib/fetch_hive/generated/models/invoke_hive_agent_request.rb +239 -0
  59. data/lib/fetch_hive/generated/models/invoke_hive_agent_response.rb +213 -0
  60. data/lib/fetch_hive/generated/models/invoke_prompt_request.rb +2 -2
  61. data/lib/fetch_hive/generated/models/invoke_prompt_response.rb +2 -2
  62. data/lib/fetch_hive/generated/models/invoke_workflow_async_response.rb +2 -2
  63. data/lib/fetch_hive/generated/models/invoke_workflow_request.rb +2 -2
  64. data/lib/fetch_hive/generated/models/invoke_workflow_response.rb +2 -2
  65. data/lib/fetch_hive/generated/models/knowledge_base_object.rb +470 -0
  66. data/lib/fetch_hive/generated/models/metadata_value.rb +2 -2
  67. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents200_response.rb +190 -0
  68. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_chats200_response.rb +190 -0
  69. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_chats_clear_messages200_response.rb +190 -0
  70. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_chats_request.rb +164 -0
  71. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_chats_request_chat.rb +147 -0
  72. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_request.rb +164 -0
  73. data/lib/fetch_hive/generated/models/patch_public_workspaces_agents_request_agent.rb +304 -0
  74. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases200_response.rb +190 -0
  75. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases_items200_response.rb +190 -0
  76. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases_items_request.rb +164 -0
  77. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases_items_request_knowledge_base_item.rb +265 -0
  78. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases_request.rb +147 -0
  79. data/lib/fetch_hive/generated/models/patch_public_workspaces_knowledge_bases_request_knowledge_base.rb +217 -0
  80. data/lib/fetch_hive/generated/models/post_public_workspaces_agents200_response.rb +190 -0
  81. data/lib/fetch_hive/generated/models/post_public_workspaces_agents422_response.rb +164 -0
  82. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_chats200_response.rb +190 -0
  83. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_chats200_response_chat.rb +305 -0
  84. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_chats422_response.rb +175 -0
  85. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_chats_request.rb +164 -0
  86. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_chats_request_chat.rb +164 -0
  87. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_request.rb +164 -0
  88. data/lib/fetch_hive/generated/models/post_public_workspaces_agents_request_agent.rb +252 -0
  89. data/lib/fetch_hive/generated/models/post_public_workspaces_assets200_response.rb +190 -0
  90. data/lib/fetch_hive/generated/models/post_public_workspaces_assets422_response.rb +216 -0
  91. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases200_response.rb +190 -0
  92. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_items200_response.rb +190 -0
  93. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_items422_response.rb +158 -0
  94. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_items_regenerate200_response.rb +190 -0
  95. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_items_request.rb +164 -0
  96. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_items_request_knowledge_base_item.rb +322 -0
  97. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_request.rb +164 -0
  98. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_request_knowledge_base.rb +234 -0
  99. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_search200_response.rb +190 -0
  100. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_search422_response.rb +164 -0
  101. data/lib/fetch_hive/generated/models/post_public_workspaces_knowledge_bases_search_request.rb +302 -0
  102. data/lib/fetch_hive/generated/models/sse_chunk.rb +13 -4
  103. data/lib/fetch_hive/generated/models/token_usage.rb +2 -2
  104. data/lib/fetch_hive/generated/models/tool_invocation.rb +2 -2
  105. data/lib/fetch_hive/generated/version.rb +2 -2
  106. metadata +83 -3
@@ -0,0 +1,474 @@
1
+ =begin
2
+ #Fetch Hive Public API
3
+
4
+ #The Fetch Hive public API lets you invoke prompts, workflows, agents, and Hive Agents programmatically using an API token. ## Authentication All requests require a Bearer token in the `Authorization` header: ``` Authorization: Bearer <your-api-token> ``` ## Streaming Pass `\"streaming\": true` in the request body to receive a `text/event-stream` response. Each event is a JSON object sent as `data: <json>\\n\\n`. The stream ends with `data: [DONE]\\n\\n`.
5
+
6
+ The version of the OpenAPI document: 0.2.8
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.22.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module FetchHive::Generated
17
+ class GetPublicModels200ResponseInner < ApiModelBase
18
+ attr_accessor :id
19
+
20
+ attr_accessor :name
21
+
22
+ attr_accessor :slug
23
+
24
+ attr_accessor :provider
25
+
26
+ attr_accessor :provider_name
27
+
28
+ attr_accessor :context_limit
29
+
30
+ attr_accessor :model_type
31
+
32
+ attr_accessor :is_image_generation
33
+
34
+ attr_accessor :is_vision
35
+
36
+ attr_accessor :is_reasoning
37
+
38
+ attr_accessor :is_tool_calling
39
+
40
+ attr_accessor :is_json_schema
41
+
42
+ class EnumAttributeValidator
43
+ attr_reader :datatype
44
+ attr_reader :allowable_values
45
+
46
+ def initialize(datatype, allowable_values)
47
+ @allowable_values = allowable_values.map do |value|
48
+ case datatype.to_s
49
+ when /Integer/i
50
+ value.to_i
51
+ when /Float/i
52
+ value.to_f
53
+ else
54
+ value
55
+ end
56
+ end
57
+ end
58
+
59
+ def valid?(value)
60
+ !value || allowable_values.include?(value)
61
+ end
62
+ end
63
+
64
+ # Attribute mapping from ruby-style variable name to JSON key.
65
+ def self.attribute_map
66
+ {
67
+ :'id' => :'id',
68
+ :'name' => :'name',
69
+ :'slug' => :'slug',
70
+ :'provider' => :'provider',
71
+ :'provider_name' => :'provider_name',
72
+ :'context_limit' => :'context_limit',
73
+ :'model_type' => :'model_type',
74
+ :'is_image_generation' => :'is_image_generation',
75
+ :'is_vision' => :'is_vision',
76
+ :'is_reasoning' => :'is_reasoning',
77
+ :'is_tool_calling' => :'is_tool_calling',
78
+ :'is_json_schema' => :'is_json_schema'
79
+ }
80
+ end
81
+
82
+ # Returns attribute mapping this model knows about
83
+ def self.acceptable_attribute_map
84
+ attribute_map
85
+ end
86
+
87
+ # Returns all the JSON keys this model knows about
88
+ def self.acceptable_attributes
89
+ acceptable_attribute_map.values
90
+ end
91
+
92
+ # Attribute type mapping.
93
+ def self.openapi_types
94
+ {
95
+ :'id' => :'String',
96
+ :'name' => :'String',
97
+ :'slug' => :'String',
98
+ :'provider' => :'String',
99
+ :'provider_name' => :'String',
100
+ :'context_limit' => :'Integer',
101
+ :'model_type' => :'String',
102
+ :'is_image_generation' => :'Boolean',
103
+ :'is_vision' => :'Boolean',
104
+ :'is_reasoning' => :'Boolean',
105
+ :'is_tool_calling' => :'Boolean',
106
+ :'is_json_schema' => :'Boolean'
107
+ }
108
+ end
109
+
110
+ # List of attributes with nullable: true
111
+ def self.openapi_nullable
112
+ Set.new([
113
+ ])
114
+ end
115
+
116
+ # Initializes the object
117
+ # @param [Hash] attributes Model attributes in the form of hash
118
+ def initialize(attributes = {})
119
+ if (!attributes.is_a?(Hash))
120
+ fail ArgumentError, "The input argument (attributes) must be a hash in `FetchHive::Generated::GetPublicModels200ResponseInner` initialize method"
121
+ end
122
+
123
+ # check to see if the attribute exists and convert string to symbol for hash key
124
+ acceptable_attribute_map = self.class.acceptable_attribute_map
125
+ attributes = attributes.each_with_object({}) { |(k, v), h|
126
+ if (!acceptable_attribute_map.key?(k.to_sym))
127
+ fail ArgumentError, "`#{k}` is not a valid attribute in `FetchHive::Generated::GetPublicModels200ResponseInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
128
+ end
129
+ h[k.to_sym] = v
130
+ }
131
+
132
+ if attributes.key?(:'id')
133
+ self.id = attributes[:'id']
134
+ else
135
+ self.id = nil
136
+ end
137
+
138
+ if attributes.key?(:'name')
139
+ self.name = attributes[:'name']
140
+ else
141
+ self.name = nil
142
+ end
143
+
144
+ if attributes.key?(:'slug')
145
+ self.slug = attributes[:'slug']
146
+ else
147
+ self.slug = nil
148
+ end
149
+
150
+ if attributes.key?(:'provider')
151
+ self.provider = attributes[:'provider']
152
+ else
153
+ self.provider = nil
154
+ end
155
+
156
+ if attributes.key?(:'provider_name')
157
+ self.provider_name = attributes[:'provider_name']
158
+ else
159
+ self.provider_name = nil
160
+ end
161
+
162
+ if attributes.key?(:'context_limit')
163
+ self.context_limit = attributes[:'context_limit']
164
+ else
165
+ self.context_limit = nil
166
+ end
167
+
168
+ if attributes.key?(:'model_type')
169
+ self.model_type = attributes[:'model_type']
170
+ else
171
+ self.model_type = nil
172
+ end
173
+
174
+ if attributes.key?(:'is_image_generation')
175
+ self.is_image_generation = attributes[:'is_image_generation']
176
+ else
177
+ self.is_image_generation = nil
178
+ end
179
+
180
+ if attributes.key?(:'is_vision')
181
+ self.is_vision = attributes[:'is_vision']
182
+ else
183
+ self.is_vision = nil
184
+ end
185
+
186
+ if attributes.key?(:'is_reasoning')
187
+ self.is_reasoning = attributes[:'is_reasoning']
188
+ else
189
+ self.is_reasoning = nil
190
+ end
191
+
192
+ if attributes.key?(:'is_tool_calling')
193
+ self.is_tool_calling = attributes[:'is_tool_calling']
194
+ else
195
+ self.is_tool_calling = nil
196
+ end
197
+
198
+ if attributes.key?(:'is_json_schema')
199
+ self.is_json_schema = attributes[:'is_json_schema']
200
+ else
201
+ self.is_json_schema = nil
202
+ end
203
+ end
204
+
205
+ # Show invalid properties with the reasons. Usually used together with valid?
206
+ # @return Array for valid properties with the reasons
207
+ def list_invalid_properties
208
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
209
+ invalid_properties = Array.new
210
+ if @id.nil?
211
+ invalid_properties.push('invalid value for "id", id cannot be nil.')
212
+ end
213
+
214
+ if @name.nil?
215
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
216
+ end
217
+
218
+ if @slug.nil?
219
+ invalid_properties.push('invalid value for "slug", slug cannot be nil.')
220
+ end
221
+
222
+ if @provider.nil?
223
+ invalid_properties.push('invalid value for "provider", provider cannot be nil.')
224
+ end
225
+
226
+ if @provider_name.nil?
227
+ invalid_properties.push('invalid value for "provider_name", provider_name cannot be nil.')
228
+ end
229
+
230
+ if @context_limit.nil?
231
+ invalid_properties.push('invalid value for "context_limit", context_limit cannot be nil.')
232
+ end
233
+
234
+ if @model_type.nil?
235
+ invalid_properties.push('invalid value for "model_type", model_type cannot be nil.')
236
+ end
237
+
238
+ if @is_image_generation.nil?
239
+ invalid_properties.push('invalid value for "is_image_generation", is_image_generation cannot be nil.')
240
+ end
241
+
242
+ if @is_vision.nil?
243
+ invalid_properties.push('invalid value for "is_vision", is_vision cannot be nil.')
244
+ end
245
+
246
+ if @is_reasoning.nil?
247
+ invalid_properties.push('invalid value for "is_reasoning", is_reasoning cannot be nil.')
248
+ end
249
+
250
+ if @is_tool_calling.nil?
251
+ invalid_properties.push('invalid value for "is_tool_calling", is_tool_calling cannot be nil.')
252
+ end
253
+
254
+ if @is_json_schema.nil?
255
+ invalid_properties.push('invalid value for "is_json_schema", is_json_schema cannot be nil.')
256
+ end
257
+
258
+ invalid_properties
259
+ end
260
+
261
+ # Check to see if the all the properties in the model are valid
262
+ # @return true if the model is valid
263
+ def valid?
264
+ warn '[DEPRECATED] the `valid?` method is obsolete'
265
+ return false if @id.nil?
266
+ return false if @name.nil?
267
+ return false if @slug.nil?
268
+ return false if @provider.nil?
269
+ return false if @provider_name.nil?
270
+ return false if @context_limit.nil?
271
+ return false if @model_type.nil?
272
+ model_type_validator = EnumAttributeValidator.new('String', ["llm", "image_generation"])
273
+ return false unless model_type_validator.valid?(@model_type)
274
+ return false if @is_image_generation.nil?
275
+ return false if @is_vision.nil?
276
+ return false if @is_reasoning.nil?
277
+ return false if @is_tool_calling.nil?
278
+ return false if @is_json_schema.nil?
279
+ true
280
+ end
281
+
282
+ # Custom attribute writer method with validation
283
+ # @param [Object] id Value to be assigned
284
+ def id=(id)
285
+ if id.nil?
286
+ fail ArgumentError, 'id cannot be nil'
287
+ end
288
+
289
+ @id = id
290
+ end
291
+
292
+ # Custom attribute writer method with validation
293
+ # @param [Object] name Value to be assigned
294
+ def name=(name)
295
+ if name.nil?
296
+ fail ArgumentError, 'name cannot be nil'
297
+ end
298
+
299
+ @name = name
300
+ end
301
+
302
+ # Custom attribute writer method with validation
303
+ # @param [Object] slug Value to be assigned
304
+ def slug=(slug)
305
+ if slug.nil?
306
+ fail ArgumentError, 'slug cannot be nil'
307
+ end
308
+
309
+ @slug = slug
310
+ end
311
+
312
+ # Custom attribute writer method with validation
313
+ # @param [Object] provider Value to be assigned
314
+ def provider=(provider)
315
+ if provider.nil?
316
+ fail ArgumentError, 'provider cannot be nil'
317
+ end
318
+
319
+ @provider = provider
320
+ end
321
+
322
+ # Custom attribute writer method with validation
323
+ # @param [Object] provider_name Value to be assigned
324
+ def provider_name=(provider_name)
325
+ if provider_name.nil?
326
+ fail ArgumentError, 'provider_name cannot be nil'
327
+ end
328
+
329
+ @provider_name = provider_name
330
+ end
331
+
332
+ # Custom attribute writer method with validation
333
+ # @param [Object] context_limit Value to be assigned
334
+ def context_limit=(context_limit)
335
+ if context_limit.nil?
336
+ fail ArgumentError, 'context_limit cannot be nil'
337
+ end
338
+
339
+ @context_limit = context_limit
340
+ end
341
+
342
+ # Custom attribute writer method checking allowed values (enum).
343
+ # @param [Object] model_type Object to be assigned
344
+ def model_type=(model_type)
345
+ validator = EnumAttributeValidator.new('String', ["llm", "image_generation"])
346
+ unless validator.valid?(model_type)
347
+ fail ArgumentError, "invalid value for \"model_type\", must be one of #{validator.allowable_values}."
348
+ end
349
+ @model_type = model_type
350
+ end
351
+
352
+ # Custom attribute writer method with validation
353
+ # @param [Object] is_image_generation Value to be assigned
354
+ def is_image_generation=(is_image_generation)
355
+ if is_image_generation.nil?
356
+ fail ArgumentError, 'is_image_generation cannot be nil'
357
+ end
358
+
359
+ @is_image_generation = is_image_generation
360
+ end
361
+
362
+ # Custom attribute writer method with validation
363
+ # @param [Object] is_vision Value to be assigned
364
+ def is_vision=(is_vision)
365
+ if is_vision.nil?
366
+ fail ArgumentError, 'is_vision cannot be nil'
367
+ end
368
+
369
+ @is_vision = is_vision
370
+ end
371
+
372
+ # Custom attribute writer method with validation
373
+ # @param [Object] is_reasoning Value to be assigned
374
+ def is_reasoning=(is_reasoning)
375
+ if is_reasoning.nil?
376
+ fail ArgumentError, 'is_reasoning cannot be nil'
377
+ end
378
+
379
+ @is_reasoning = is_reasoning
380
+ end
381
+
382
+ # Custom attribute writer method with validation
383
+ # @param [Object] is_tool_calling Value to be assigned
384
+ def is_tool_calling=(is_tool_calling)
385
+ if is_tool_calling.nil?
386
+ fail ArgumentError, 'is_tool_calling cannot be nil'
387
+ end
388
+
389
+ @is_tool_calling = is_tool_calling
390
+ end
391
+
392
+ # Custom attribute writer method with validation
393
+ # @param [Object] is_json_schema Value to be assigned
394
+ def is_json_schema=(is_json_schema)
395
+ if is_json_schema.nil?
396
+ fail ArgumentError, 'is_json_schema cannot be nil'
397
+ end
398
+
399
+ @is_json_schema = is_json_schema
400
+ end
401
+
402
+ # Checks equality by comparing each attribute.
403
+ # @param [Object] Object to be compared
404
+ def ==(o)
405
+ return true if self.equal?(o)
406
+ self.class == o.class &&
407
+ id == o.id &&
408
+ name == o.name &&
409
+ slug == o.slug &&
410
+ provider == o.provider &&
411
+ provider_name == o.provider_name &&
412
+ context_limit == o.context_limit &&
413
+ model_type == o.model_type &&
414
+ is_image_generation == o.is_image_generation &&
415
+ is_vision == o.is_vision &&
416
+ is_reasoning == o.is_reasoning &&
417
+ is_tool_calling == o.is_tool_calling &&
418
+ is_json_schema == o.is_json_schema
419
+ end
420
+
421
+ # @see the `==` method
422
+ # @param [Object] Object to be compared
423
+ def eql?(o)
424
+ self == o
425
+ end
426
+
427
+ # Calculates hash code according to all attributes.
428
+ # @return [Integer] Hash code
429
+ def hash
430
+ [id, name, slug, provider, provider_name, context_limit, model_type, is_image_generation, is_vision, is_reasoning, is_tool_calling, is_json_schema].hash
431
+ end
432
+
433
+ # Builds the object from hash
434
+ # @param [Hash] attributes Model attributes in the form of hash
435
+ # @return [Object] Returns the model itself
436
+ def self.build_from_hash(attributes)
437
+ return nil unless attributes.is_a?(Hash)
438
+ attributes = attributes.transform_keys(&:to_sym)
439
+ transformed_hash = {}
440
+ openapi_types.each_pair do |key, type|
441
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
442
+ transformed_hash["#{key}"] = nil
443
+ elsif type =~ /\AArray<(.*)>/i
444
+ # check to ensure the input is an array given that the attribute
445
+ # is documented as an array but the input is not
446
+ if attributes[attribute_map[key]].is_a?(Array)
447
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
448
+ end
449
+ elsif !attributes[attribute_map[key]].nil?
450
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
451
+ end
452
+ end
453
+ new(transformed_hash)
454
+ end
455
+
456
+ # Returns the object in the form of hash
457
+ # @return [Hash] Returns the object in the form of hash
458
+ def to_hash
459
+ hash = {}
460
+ self.class.attribute_map.each_pair do |attr, param|
461
+ value = self.send(attr)
462
+ if value.nil?
463
+ is_nullable = self.class.openapi_nullable.include?(attr)
464
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
465
+ end
466
+
467
+ hash[param] = _to_hash(value)
468
+ end
469
+ hash
470
+ end
471
+
472
+ end
473
+
474
+ end