venice_client 1.0.20 → 1.0.21

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 (189) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -1
  3. data/docs/AudioModelPricingInput.md +0 -2
  4. data/docs/CacheControl.md +20 -0
  5. data/docs/ChatApi.md +1 -1
  6. data/docs/ChatCompletionRequest.md +7 -1
  7. data/docs/ChatCompletionRequestReasoning.md +18 -0
  8. data/docs/ChatCompletionRequestVeniceParameters.md +3 -1
  9. data/docs/CompleteVideo200Response.md +18 -0
  10. data/docs/CompleteVideoRequest.md +20 -0
  11. data/docs/CreateChatCompletion200Response.md +1 -1
  12. data/docs/CreateChatCompletion200ResponseVeniceParameters.md +2 -0
  13. data/docs/GenerateImageRequest.md +9 -3
  14. data/docs/GetApiKeyRateLimitLogs200ResponseDataInner.md +1 -1
  15. data/docs/GetApiKeyRateLimits200Response.md +0 -2
  16. data/docs/GetApiKeyRateLimits200ResponseDataBalances.md +0 -2
  17. data/docs/GetApiKeyRateLimits200ResponseDataRateLimitsInner.md +1 -1
  18. data/docs/ImageApi.md +1 -1
  19. data/docs/ImageModelPricingGeneration.md +0 -2
  20. data/docs/ImageModelPricingUpscale2x.md +0 -2
  21. data/docs/ImageModelPricingUpscale4x.md +0 -2
  22. data/docs/ImageUrl.md +2 -0
  23. data/docs/LLMModelPricingInput.md +0 -2
  24. data/docs/LLMModelPricingOutput.md +0 -2
  25. data/docs/ModelResponseModelSpec.md +2 -0
  26. data/docs/ModelResponseModelSpecConstraints.md +13 -1
  27. data/docs/ModelsApi.md +2 -2
  28. data/docs/QueueVideo200Response.md +20 -0
  29. data/docs/QueueVideoRequest.md +32 -0
  30. data/docs/QuoteVideo200Response.md +18 -0
  31. data/docs/RetrieveVideo200Response.md +22 -0
  32. data/docs/RetrieveVideoRequest.md +22 -0
  33. data/docs/SimpleGenerateImageRequest.md +1 -1
  34. data/docs/Text.md +2 -0
  35. data/docs/VideoApi.md +295 -0
  36. data/docs/VideoModelConstraints.md +28 -0
  37. data/lib/venice_client/api/api_keys_api.rb +1 -1
  38. data/lib/venice_client/api/audio_api.rb +1 -1
  39. data/lib/venice_client/api/billing_api.rb +1 -1
  40. data/lib/venice_client/api/characters_api.rb +1 -1
  41. data/lib/venice_client/api/chat_api.rb +1 -1
  42. data/lib/venice_client/api/embeddings_api.rb +1 -1
  43. data/lib/venice_client/api/image_api.rb +1 -1
  44. data/lib/venice_client/api/models_api.rb +3 -3
  45. data/lib/venice_client/api/preview_api.rb +1 -1
  46. data/lib/venice_client/api/speech_api.rb +1 -1
  47. data/lib/venice_client/api/video_api.rb +278 -0
  48. data/lib/venice_client/api_client.rb +1 -1
  49. data/lib/venice_client/api_error.rb +1 -1
  50. data/lib/venice_client/configuration.rb +1 -1
  51. data/lib/venice_client/models/assistant_message.rb +8 -8
  52. data/lib/venice_client/models/assistant_message_content.rb +1 -1
  53. data/lib/venice_client/models/audio_model_pricing.rb +1 -1
  54. data/lib/venice_client/models/audio_model_pricing_input.rb +2 -29
  55. data/lib/venice_client/models/billing_usage_request.rb +1 -1
  56. data/lib/venice_client/models/billing_usage_response.rb +1 -1
  57. data/lib/venice_client/models/cache_control.rb +273 -0
  58. data/lib/venice_client/models/chat_completion_request.rb +65 -2
  59. data/lib/venice_client/models/chat_completion_request_messages_inner.rb +2 -2
  60. data/lib/venice_client/models/chat_completion_request_reasoning.rb +256 -0
  61. data/lib/venice_client/models/chat_completion_request_response_format.rb +1 -1
  62. data/lib/venice_client/models/chat_completion_request_stop.rb +1 -1
  63. data/lib/venice_client/models/chat_completion_request_stream_options.rb +1 -1
  64. data/lib/venice_client/models/chat_completion_request_tool_choice.rb +1 -1
  65. data/lib/venice_client/models/chat_completion_request_tool_choice_any_of.rb +1 -1
  66. data/lib/venice_client/models/chat_completion_request_tool_choice_any_of_function.rb +1 -1
  67. data/lib/venice_client/models/chat_completion_request_venice_parameters.rb +15 -3
  68. data/lib/venice_client/models/complete_video200_response.rb +238 -0
  69. data/lib/venice_client/models/complete_video_request.rb +265 -0
  70. data/lib/venice_client/models/create_api_key200_response.rb +1 -1
  71. data/lib/venice_client/models/create_api_key200_response_data.rb +1 -1
  72. data/lib/venice_client/models/create_api_key_request.rb +1 -1
  73. data/lib/venice_client/models/create_api_key_request_expires_at.rb +1 -1
  74. data/lib/venice_client/models/create_chat_completion200_response.rb +11 -19
  75. data/lib/venice_client/models/create_chat_completion200_response_choices_inner.rb +7 -7
  76. data/lib/venice_client/models/create_chat_completion200_response_choices_inner_logprobs.rb +1 -1
  77. data/lib/venice_client/models/create_chat_completion200_response_choices_inner_logprobs_top_logprobs_inner.rb +1 -1
  78. data/lib/venice_client/models/create_chat_completion200_response_choices_inner_message.rb +2 -2
  79. data/lib/venice_client/models/create_chat_completion200_response_usage.rb +1 -1
  80. data/lib/venice_client/models/create_chat_completion200_response_venice_parameters.rb +29 -2
  81. data/lib/venice_client/models/create_chat_completion200_response_venice_parameters_web_search_citations_inner.rb +1 -1
  82. data/lib/venice_client/models/create_embedding200_response.rb +1 -1
  83. data/lib/venice_client/models/create_embedding200_response_data_inner.rb +1 -1
  84. data/lib/venice_client/models/create_embedding200_response_usage.rb +1 -1
  85. data/lib/venice_client/models/create_embedding_request_schema.rb +1 -1
  86. data/lib/venice_client/models/create_embedding_request_schema_input.rb +1 -1
  87. data/lib/venice_client/models/create_embedding_request_schema_model.rb +1 -1
  88. data/lib/venice_client/models/create_speech_request_schema.rb +1 -1
  89. data/lib/venice_client/models/delete_api_key200_response.rb +1 -1
  90. data/lib/venice_client/models/detailed_error.rb +1 -1
  91. data/lib/venice_client/models/edit_image_request.rb +1 -1
  92. data/lib/venice_client/models/edit_image_request_image.rb +1 -1
  93. data/lib/venice_client/models/generate_image200_response.rb +1 -1
  94. data/lib/venice_client/models/generate_image200_response_timing.rb +1 -1
  95. data/lib/venice_client/models/generate_image_request.rb +44 -42
  96. data/lib/venice_client/models/get_api_key_by_id200_response.rb +1 -1
  97. data/lib/venice_client/models/get_api_key_by_id200_response_data.rb +1 -1
  98. data/lib/venice_client/models/get_api_key_generate_web3_key200_response.rb +1 -1
  99. data/lib/venice_client/models/get_api_key_generate_web3_key200_response_data.rb +1 -1
  100. data/lib/venice_client/models/get_api_key_rate_limit_logs200_response.rb +1 -1
  101. data/lib/venice_client/models/get_api_key_rate_limit_logs200_response_data_inner.rb +2 -2
  102. data/lib/venice_client/models/get_api_key_rate_limits200_response.rb +2 -12
  103. data/lib/venice_client/models/get_api_key_rate_limits200_response_data.rb +1 -1
  104. data/lib/venice_client/models/get_api_key_rate_limits200_response_data_api_tier.rb +1 -1
  105. data/lib/venice_client/models/get_api_key_rate_limits200_response_data_balances.rb +2 -12
  106. data/lib/venice_client/models/get_api_key_rate_limits200_response_data_rate_limits_inner.rb +1 -1
  107. data/lib/venice_client/models/get_api_key_rate_limits200_response_data_rate_limits_inner_rate_limits_inner.rb +1 -1
  108. data/lib/venice_client/models/get_api_keys200_response.rb +1 -1
  109. data/lib/venice_client/models/get_api_keys200_response_data_inner.rb +1 -1
  110. data/lib/venice_client/models/get_api_keys200_response_data_inner_consumption_limits.rb +1 -1
  111. data/lib/venice_client/models/get_api_keys200_response_data_inner_usage.rb +1 -1
  112. data/lib/venice_client/models/get_api_keys200_response_data_inner_usage_trailing_seven_days.rb +1 -1
  113. data/lib/venice_client/models/get_billing_usage200_response.rb +1 -1
  114. data/lib/venice_client/models/get_billing_usage200_response_data_inner.rb +1 -1
  115. data/lib/venice_client/models/get_billing_usage200_response_data_inner_inference_details.rb +1 -1
  116. data/lib/venice_client/models/get_billing_usage200_response_pagination.rb +1 -1
  117. data/lib/venice_client/models/get_character_by_slug200_response.rb +1 -1
  118. data/lib/venice_client/models/image_model_constraints.rb +1 -1
  119. data/lib/venice_client/models/image_model_constraints_steps.rb +1 -1
  120. data/lib/venice_client/models/image_model_pricing.rb +1 -1
  121. data/lib/venice_client/models/image_model_pricing_generation.rb +2 -29
  122. data/lib/venice_client/models/image_model_pricing_upscale.rb +1 -1
  123. data/lib/venice_client/models/image_model_pricing_upscale2x.rb +2 -29
  124. data/lib/venice_client/models/image_model_pricing_upscale4x.rb +2 -29
  125. data/lib/venice_client/models/image_styles_get200_response.rb +1 -1
  126. data/lib/venice_client/models/image_url.rb +12 -3
  127. data/lib/venice_client/models/image_url_object.rb +1 -1
  128. data/lib/venice_client/models/json_object.rb +1 -1
  129. data/lib/venice_client/models/json_schema.rb +1 -1
  130. data/lib/venice_client/models/list_characters200_response.rb +1 -1
  131. data/lib/venice_client/models/list_characters200_response_data_inner.rb +1 -1
  132. data/lib/venice_client/models/list_characters200_response_data_inner_stats.rb +1 -1
  133. data/lib/venice_client/models/list_model_compatibility_mapping200_response.rb +1 -1
  134. data/lib/venice_client/models/list_model_traits200_response.rb +1 -1
  135. data/lib/venice_client/models/list_models200_response.rb +1 -1
  136. data/lib/venice_client/models/list_models200_response_type.rb +1 -1
  137. data/lib/venice_client/models/list_models_type_parameter.rb +1 -1
  138. data/lib/venice_client/models/llm_model_pricing.rb +1 -1
  139. data/lib/venice_client/models/llm_model_pricing_input.rb +2 -29
  140. data/lib/venice_client/models/llm_model_pricing_output.rb +2 -29
  141. data/lib/venice_client/models/model_response.rb +3 -3
  142. data/lib/venice_client/models/model_response_model_spec.rb +46 -2
  143. data/lib/venice_client/models/model_response_model_spec_capabilities.rb +3 -3
  144. data/lib/venice_client/models/model_response_model_spec_constraints.rb +3 -2
  145. data/lib/venice_client/models/model_response_model_spec_pricing.rb +1 -1
  146. data/lib/venice_client/models/objects_inner.rb +1 -1
  147. data/lib/venice_client/models/post_api_key_generate_web3_key_request.rb +1 -1
  148. data/lib/venice_client/models/queue_video200_response.rb +265 -0
  149. data/lib/venice_client/models/queue_video_request.rb +438 -0
  150. data/lib/venice_client/models/quote_video200_response.rb +237 -0
  151. data/lib/venice_client/models/retrieve_video200_response.rb +316 -0
  152. data/lib/venice_client/models/retrieve_video_request.rb +277 -0
  153. data/lib/venice_client/models/simple_generate_image200_response.rb +1 -1
  154. data/lib/venice_client/models/simple_generate_image200_response_data_inner.rb +1 -1
  155. data/lib/venice_client/models/simple_generate_image200_response_data_inner_any_of.rb +1 -1
  156. data/lib/venice_client/models/simple_generate_image200_response_data_inner_any_of1.rb +1 -1
  157. data/lib/venice_client/models/simple_generate_image_request.rb +1 -1
  158. data/lib/venice_client/models/standard_error.rb +1 -1
  159. data/lib/venice_client/models/system_message.rb +8 -8
  160. data/lib/venice_client/models/system_message_content.rb +1 -1
  161. data/lib/venice_client/models/text.rb +12 -3
  162. data/lib/venice_client/models/text_model_constraints.rb +1 -1
  163. data/lib/venice_client/models/text_model_constraints_temperature.rb +1 -1
  164. data/lib/venice_client/models/text_model_constraints_top_p.rb +1 -1
  165. data/lib/venice_client/models/tool_call.rb +1 -1
  166. data/lib/venice_client/models/tool_call_function.rb +1 -1
  167. data/lib/venice_client/models/tool_message.rb +8 -8
  168. data/lib/venice_client/models/upscale_image_request.rb +1 -1
  169. data/lib/venice_client/models/upscale_image_request_enhance.rb +1 -1
  170. data/lib/venice_client/models/user_message.rb +8 -8
  171. data/lib/venice_client/models/user_message_content.rb +1 -1
  172. data/lib/venice_client/models/video_model_constraints.rb +404 -0
  173. data/lib/venice_client/version.rb +2 -2
  174. data/lib/venice_client.rb +12 -1
  175. data/spec/api/video_api_spec.rb +83 -0
  176. data/spec/models/cache_control_spec.rb +46 -0
  177. data/spec/models/chat_completion_request_reasoning_spec.rb +40 -0
  178. data/spec/models/complete_video200_response_spec.rb +36 -0
  179. data/spec/models/complete_video_request_spec.rb +42 -0
  180. data/spec/models/queue_video200_response_spec.rb +42 -0
  181. data/spec/models/queue_video_request_spec.rb +86 -0
  182. data/spec/models/quote_video200_response_spec.rb +36 -0
  183. data/spec/models/retrieve_video200_response_spec.rb +52 -0
  184. data/spec/models/retrieve_video_request_spec.rb +48 -0
  185. data/spec/models/video_model_constraints_spec.rb +70 -0
  186. data/spec/spec_helper.rb +1 -1
  187. data/swagger.yaml +587 -76
  188. data/venice_client.gemspec +1 -1
  189. metadata +46 -2
@@ -0,0 +1,404 @@
1
+ =begin
2
+ #Venice.ai API
3
+
4
+ #The Venice.ai API.
5
+
6
+ The version of the OpenAPI document: 20251209.153516
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module VeniceClient
17
+ # Constraints that apply to video models.
18
+ class VideoModelConstraints
19
+ # The aspect ratios supported by the model. Empty array means the model does not support a defined aspect ratio.
20
+ attr_accessor :aspect_ratios
21
+
22
+ # The resolutions supported by the model. Empty array means the model does not support a defined resolution.
23
+ attr_accessor :resolutions
24
+
25
+ # The durations supported by the model. Empty array means the model does not support a defined duration.
26
+ attr_accessor :durations
27
+
28
+ # The type of video model.
29
+ attr_accessor :model_type
30
+
31
+ # Does the model support audio generation?
32
+ attr_accessor :audio
33
+
34
+ # Can audio be enabled or disabled for the video generation?
35
+ attr_accessor :audio_configurable
36
+
37
+ class EnumAttributeValidator
38
+ attr_reader :datatype
39
+ attr_reader :allowable_values
40
+
41
+ def initialize(datatype, allowable_values)
42
+ @allowable_values = allowable_values.map do |value|
43
+ case datatype.to_s
44
+ when /Integer/i
45
+ value.to_i
46
+ when /Float/i
47
+ value.to_f
48
+ else
49
+ value
50
+ end
51
+ end
52
+ end
53
+
54
+ def valid?(value)
55
+ !value || allowable_values.include?(value)
56
+ end
57
+ end
58
+
59
+ # Attribute mapping from ruby-style variable name to JSON key.
60
+ def self.attribute_map
61
+ {
62
+ :'aspect_ratios' => :'aspect_ratios',
63
+ :'resolutions' => :'resolutions',
64
+ :'durations' => :'durations',
65
+ :'model_type' => :'model_type',
66
+ :'audio' => :'audio',
67
+ :'audio_configurable' => :'audio_configurable'
68
+ }
69
+ end
70
+
71
+ # Returns attribute mapping this model knows about
72
+ def self.acceptable_attribute_map
73
+ attribute_map
74
+ end
75
+
76
+ # Returns all the JSON keys this model knows about
77
+ def self.acceptable_attributes
78
+ acceptable_attribute_map.values
79
+ end
80
+
81
+ # Attribute type mapping.
82
+ def self.openapi_types
83
+ {
84
+ :'aspect_ratios' => :'Array<String>',
85
+ :'resolutions' => :'Array<String>',
86
+ :'durations' => :'Array<String>',
87
+ :'model_type' => :'String',
88
+ :'audio' => :'Boolean',
89
+ :'audio_configurable' => :'Boolean'
90
+ }
91
+ end
92
+
93
+ # List of attributes with nullable: true
94
+ def self.openapi_nullable
95
+ Set.new([
96
+ ])
97
+ end
98
+
99
+ # Initializes the object
100
+ # @param [Hash] attributes Model attributes in the form of hash
101
+ def initialize(attributes = {})
102
+ if (!attributes.is_a?(Hash))
103
+ fail ArgumentError, "The input argument (attributes) must be a hash in `VeniceClient::VideoModelConstraints` initialize method"
104
+ end
105
+
106
+ # check to see if the attribute exists and convert string to symbol for hash key
107
+ acceptable_attribute_map = self.class.acceptable_attribute_map
108
+ attributes = attributes.each_with_object({}) { |(k, v), h|
109
+ if (!acceptable_attribute_map.key?(k.to_sym))
110
+ fail ArgumentError, "`#{k}` is not a valid attribute in `VeniceClient::VideoModelConstraints`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
111
+ end
112
+ h[k.to_sym] = v
113
+ }
114
+
115
+ if attributes.key?(:'aspect_ratios')
116
+ if (value = attributes[:'aspect_ratios']).is_a?(Array)
117
+ self.aspect_ratios = value
118
+ end
119
+ else
120
+ self.aspect_ratios = nil
121
+ end
122
+
123
+ if attributes.key?(:'resolutions')
124
+ if (value = attributes[:'resolutions']).is_a?(Array)
125
+ self.resolutions = value
126
+ end
127
+ else
128
+ self.resolutions = nil
129
+ end
130
+
131
+ if attributes.key?(:'durations')
132
+ if (value = attributes[:'durations']).is_a?(Array)
133
+ self.durations = value
134
+ end
135
+ else
136
+ self.durations = nil
137
+ end
138
+
139
+ if attributes.key?(:'model_type')
140
+ self.model_type = attributes[:'model_type']
141
+ else
142
+ self.model_type = nil
143
+ end
144
+
145
+ if attributes.key?(:'audio')
146
+ self.audio = attributes[:'audio']
147
+ else
148
+ self.audio = nil
149
+ end
150
+
151
+ if attributes.key?(:'audio_configurable')
152
+ self.audio_configurable = attributes[:'audio_configurable']
153
+ else
154
+ self.audio_configurable = nil
155
+ end
156
+ end
157
+
158
+ # Show invalid properties with the reasons. Usually used together with valid?
159
+ # @return Array for valid properties with the reasons
160
+ def list_invalid_properties
161
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
162
+ invalid_properties = Array.new
163
+ if @aspect_ratios.nil?
164
+ invalid_properties.push('invalid value for "aspect_ratios", aspect_ratios cannot be nil.')
165
+ end
166
+
167
+ if @resolutions.nil?
168
+ invalid_properties.push('invalid value for "resolutions", resolutions cannot be nil.')
169
+ end
170
+
171
+ if @durations.nil?
172
+ invalid_properties.push('invalid value for "durations", durations cannot be nil.')
173
+ end
174
+
175
+ if @model_type.nil?
176
+ invalid_properties.push('invalid value for "model_type", model_type cannot be nil.')
177
+ end
178
+
179
+ if @audio.nil?
180
+ invalid_properties.push('invalid value for "audio", audio cannot be nil.')
181
+ end
182
+
183
+ if @audio_configurable.nil?
184
+ invalid_properties.push('invalid value for "audio_configurable", audio_configurable cannot be nil.')
185
+ end
186
+
187
+ invalid_properties
188
+ end
189
+
190
+ # Check to see if the all the properties in the model are valid
191
+ # @return true if the model is valid
192
+ def valid?
193
+ warn '[DEPRECATED] the `valid?` method is obsolete'
194
+ return false if @aspect_ratios.nil?
195
+ return false if @resolutions.nil?
196
+ return false if @durations.nil?
197
+ return false if @model_type.nil?
198
+ model_type_validator = EnumAttributeValidator.new('String', ["image-to-video", "text-to-video", "video"])
199
+ return false unless model_type_validator.valid?(@model_type)
200
+ return false if @audio.nil?
201
+ return false if @audio_configurable.nil?
202
+ true
203
+ end
204
+
205
+ # Custom attribute writer method with validation
206
+ # @param [Object] aspect_ratios Value to be assigned
207
+ def aspect_ratios=(aspect_ratios)
208
+ if aspect_ratios.nil?
209
+ fail ArgumentError, 'aspect_ratios cannot be nil'
210
+ end
211
+
212
+ @aspect_ratios = aspect_ratios
213
+ end
214
+
215
+ # Custom attribute writer method with validation
216
+ # @param [Object] resolutions Value to be assigned
217
+ def resolutions=(resolutions)
218
+ if resolutions.nil?
219
+ fail ArgumentError, 'resolutions cannot be nil'
220
+ end
221
+
222
+ @resolutions = resolutions
223
+ end
224
+
225
+ # Custom attribute writer method with validation
226
+ # @param [Object] durations Value to be assigned
227
+ def durations=(durations)
228
+ if durations.nil?
229
+ fail ArgumentError, 'durations cannot be nil'
230
+ end
231
+
232
+ @durations = durations
233
+ end
234
+
235
+ # Custom attribute writer method checking allowed values (enum).
236
+ # @param [Object] model_type Object to be assigned
237
+ def model_type=(model_type)
238
+ validator = EnumAttributeValidator.new('String', ["image-to-video", "text-to-video", "video"])
239
+ unless validator.valid?(model_type)
240
+ fail ArgumentError, "invalid value for \"model_type\", must be one of #{validator.allowable_values}."
241
+ end
242
+ @model_type = model_type
243
+ end
244
+
245
+ # Custom attribute writer method with validation
246
+ # @param [Object] audio Value to be assigned
247
+ def audio=(audio)
248
+ if audio.nil?
249
+ fail ArgumentError, 'audio cannot be nil'
250
+ end
251
+
252
+ @audio = audio
253
+ end
254
+
255
+ # Custom attribute writer method with validation
256
+ # @param [Object] audio_configurable Value to be assigned
257
+ def audio_configurable=(audio_configurable)
258
+ if audio_configurable.nil?
259
+ fail ArgumentError, 'audio_configurable cannot be nil'
260
+ end
261
+
262
+ @audio_configurable = audio_configurable
263
+ end
264
+
265
+ # Checks equality by comparing each attribute.
266
+ # @param [Object] Object to be compared
267
+ def ==(o)
268
+ return true if self.equal?(o)
269
+ self.class == o.class &&
270
+ aspect_ratios == o.aspect_ratios &&
271
+ resolutions == o.resolutions &&
272
+ durations == o.durations &&
273
+ model_type == o.model_type &&
274
+ audio == o.audio &&
275
+ audio_configurable == o.audio_configurable
276
+ end
277
+
278
+ # @see the `==` method
279
+ # @param [Object] Object to be compared
280
+ def eql?(o)
281
+ self == o
282
+ end
283
+
284
+ # Calculates hash code according to all attributes.
285
+ # @return [Integer] Hash code
286
+ def hash
287
+ [aspect_ratios, resolutions, durations, model_type, audio, audio_configurable].hash
288
+ end
289
+
290
+ # Builds the object from hash
291
+ # @param [Hash] attributes Model attributes in the form of hash
292
+ # @return [Object] Returns the model itself
293
+ def self.build_from_hash(attributes)
294
+ return nil unless attributes.is_a?(Hash)
295
+ attributes = attributes.transform_keys(&:to_sym)
296
+ transformed_hash = {}
297
+ openapi_types.each_pair do |key, type|
298
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
299
+ transformed_hash["#{key}"] = nil
300
+ elsif type =~ /\AArray<(.*)>/i
301
+ # check to ensure the input is an array given that the attribute
302
+ # is documented as an array but the input is not
303
+ if attributes[attribute_map[key]].is_a?(Array)
304
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
305
+ end
306
+ elsif !attributes[attribute_map[key]].nil?
307
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
308
+ end
309
+ end
310
+ new(transformed_hash)
311
+ end
312
+
313
+ # Deserializes the data based on type
314
+ # @param string type Data type
315
+ # @param string value Value to be deserialized
316
+ # @return [Object] Deserialized data
317
+ def self._deserialize(type, value)
318
+ case type.to_sym
319
+ when :Time
320
+ Time.parse(value)
321
+ when :Date
322
+ Date.parse(value)
323
+ when :String
324
+ value.to_s
325
+ when :Integer
326
+ value.to_i
327
+ when :Float
328
+ value.to_f
329
+ when :Boolean
330
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
331
+ true
332
+ else
333
+ false
334
+ end
335
+ when :Object
336
+ # generic object (usually a Hash), return directly
337
+ value
338
+ when /\AArray<(?<inner_type>.+)>\z/
339
+ inner_type = Regexp.last_match[:inner_type]
340
+ value.map { |v| _deserialize(inner_type, v) }
341
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
342
+ k_type = Regexp.last_match[:k_type]
343
+ v_type = Regexp.last_match[:v_type]
344
+ {}.tap do |hash|
345
+ value.each do |k, v|
346
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
347
+ end
348
+ end
349
+ else # model
350
+ # models (e.g. Pet) or oneOf
351
+ klass = VeniceClient.const_get(type)
352
+ klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
353
+ end
354
+ end
355
+
356
+ # Returns the string representation of the object
357
+ # @return [String] String presentation of the object
358
+ def to_s
359
+ to_hash.to_s
360
+ end
361
+
362
+ # to_body is an alias to to_hash (backward compatibility)
363
+ # @return [Hash] Returns the object in the form of hash
364
+ def to_body
365
+ to_hash
366
+ end
367
+
368
+ # Returns the object in the form of hash
369
+ # @return [Hash] Returns the object in the form of hash
370
+ def to_hash
371
+ hash = {}
372
+ self.class.attribute_map.each_pair do |attr, param|
373
+ value = self.send(attr)
374
+ if value.nil?
375
+ is_nullable = self.class.openapi_nullable.include?(attr)
376
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
377
+ end
378
+
379
+ hash[param] = _to_hash(value)
380
+ end
381
+ hash
382
+ end
383
+
384
+ # Outputs non-array value in the form of hash
385
+ # For object, use to_hash. Otherwise, just return the value
386
+ # @param [Object] value Any valid value
387
+ # @return [Hash] Returns the value in the form of hash
388
+ def _to_hash(value)
389
+ if value.is_a?(Array)
390
+ value.compact.map { |v| _to_hash(v) }
391
+ elsif value.is_a?(Hash)
392
+ {}.tap do |hash|
393
+ value.each { |k, v| hash[k] = _to_hash(v) }
394
+ end
395
+ elsif value.respond_to? :to_hash
396
+ value.to_hash
397
+ else
398
+ value
399
+ end
400
+ end
401
+
402
+ end
403
+
404
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Venice.ai API.
5
5
 
6
- The version of the OpenAPI document: 20250918.173746
6
+ The version of the OpenAPI document: 20251209.153516
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -11,5 +11,5 @@ Generator version: 7.14.0
11
11
  =end
12
12
 
13
13
  module VeniceClient
14
- VERSION = '1.0.20'
14
+ VERSION = '1.0.21'
15
15
  end
data/lib/venice_client.rb CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  #The Venice.ai API.
5
5
 
6
- The version of the OpenAPI document: 20250918.173746
6
+ The version of the OpenAPI document: 20251209.153516
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.14.0
@@ -23,8 +23,10 @@ require 'venice_client/models/audio_model_pricing'
23
23
  require 'venice_client/models/audio_model_pricing_input'
24
24
  require 'venice_client/models/billing_usage_request'
25
25
  require 'venice_client/models/billing_usage_response'
26
+ require 'venice_client/models/cache_control'
26
27
  require 'venice_client/models/chat_completion_request'
27
28
  require 'venice_client/models/chat_completion_request_messages_inner'
29
+ require 'venice_client/models/chat_completion_request_reasoning'
28
30
  require 'venice_client/models/chat_completion_request_response_format'
29
31
  require 'venice_client/models/chat_completion_request_stop'
30
32
  require 'venice_client/models/chat_completion_request_stream_options'
@@ -32,6 +34,8 @@ require 'venice_client/models/chat_completion_request_tool_choice'
32
34
  require 'venice_client/models/chat_completion_request_tool_choice_any_of'
33
35
  require 'venice_client/models/chat_completion_request_tool_choice_any_of_function'
34
36
  require 'venice_client/models/chat_completion_request_venice_parameters'
37
+ require 'venice_client/models/complete_video200_response'
38
+ require 'venice_client/models/complete_video_request'
35
39
  require 'venice_client/models/create_api_key200_response'
36
40
  require 'venice_client/models/create_api_key200_response_data'
37
41
  require 'venice_client/models/create_api_key_request'
@@ -110,6 +114,11 @@ require 'venice_client/models/model_response_model_spec_constraints'
110
114
  require 'venice_client/models/model_response_model_spec_pricing'
111
115
  require 'venice_client/models/objects_inner'
112
116
  require 'venice_client/models/post_api_key_generate_web3_key_request'
117
+ require 'venice_client/models/queue_video200_response'
118
+ require 'venice_client/models/queue_video_request'
119
+ require 'venice_client/models/quote_video200_response'
120
+ require 'venice_client/models/retrieve_video200_response'
121
+ require 'venice_client/models/retrieve_video_request'
113
122
  require 'venice_client/models/simple_generate_image200_response'
114
123
  require 'venice_client/models/simple_generate_image200_response_data_inner'
115
124
  require 'venice_client/models/simple_generate_image200_response_data_inner_any_of'
@@ -129,6 +138,7 @@ require 'venice_client/models/upscale_image_request'
129
138
  require 'venice_client/models/upscale_image_request_enhance'
130
139
  require 'venice_client/models/user_message'
131
140
  require 'venice_client/models/user_message_content'
141
+ require 'venice_client/models/video_model_constraints'
132
142
 
133
143
  # APIs
134
144
  require 'venice_client/api/api_keys_api'
@@ -141,6 +151,7 @@ require 'venice_client/api/image_api'
141
151
  require 'venice_client/api/models_api'
142
152
  require 'venice_client/api/preview_api'
143
153
  require 'venice_client/api/speech_api'
154
+ require 'venice_client/api/video_api'
144
155
 
145
156
  module VeniceClient
146
157
  class << self
@@ -0,0 +1,83 @@
1
+ =begin
2
+ #Venice.ai API
3
+
4
+ #The Venice.ai API.
5
+
6
+ The version of the OpenAPI document: 20251209.153516
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+
16
+ # Unit tests for VeniceClient::VideoApi
17
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
18
+ # Please update as you see appropriate
19
+ describe 'VideoApi' do
20
+ before do
21
+ # run before each test
22
+ @api_instance = VeniceClient::VideoApi.new
23
+ end
24
+
25
+ after do
26
+ # run after each test
27
+ end
28
+
29
+ describe 'test an instance of VideoApi' do
30
+ it 'should create an instance of VideoApi' do
31
+ expect(@api_instance).to be_instance_of(VeniceClient::VideoApi)
32
+ end
33
+ end
34
+
35
+ # unit tests for complete_video
36
+ # /api/v1/video/complete
37
+ # Delete a video generation request from storage after it has been successfully downloaded. Videos can be automatically deleted after retrieval by setting the &#x60;delete_media_on_completion&#x60; flag to true when calling the retrieve API.
38
+ # @param [Hash] opts the optional parameters
39
+ # @option opts [CompleteVideoRequest] :complete_video_request
40
+ # @return [CompleteVideo200Response]
41
+ describe 'complete_video test' do
42
+ it 'should work' do
43
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
44
+ end
45
+ end
46
+
47
+ # unit tests for queue_video
48
+ # /api/v1/video/queue
49
+ # Queue a new video generation request.
50
+ # @param [Hash] opts the optional parameters
51
+ # @option opts [QueueVideoRequest] :queue_video_request
52
+ # @return [QueueVideo200Response]
53
+ describe 'queue_video test' do
54
+ it 'should work' do
55
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
56
+ end
57
+ end
58
+
59
+ # unit tests for quote_video
60
+ # /api/v1/video/quote
61
+ # Quote a video generation request. Utilizes the same parameters as the queue API and will return the price in USD for the request.
62
+ # @param [Hash] opts the optional parameters
63
+ # @option opts [QueueVideoRequest] :queue_video_request
64
+ # @return [QuoteVideo200Response]
65
+ describe 'quote_video test' do
66
+ it 'should work' do
67
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
68
+ end
69
+ end
70
+
71
+ # unit tests for retrieve_video
72
+ # /api/v1/video/retrieve
73
+ # Retrieve a video generation result. Returns the video file if completed, or a status if the request is still processing.
74
+ # @param [Hash] opts the optional parameters
75
+ # @option opts [RetrieveVideoRequest] :retrieve_video_request
76
+ # @return [RetrieveVideo200Response]
77
+ describe 'retrieve_video test' do
78
+ it 'should work' do
79
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
80
+ end
81
+ end
82
+
83
+ end
@@ -0,0 +1,46 @@
1
+ =begin
2
+ #Venice.ai API
3
+
4
+ #The Venice.ai API.
5
+
6
+ The version of the OpenAPI document: 20251209.153516
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for VeniceClient::CacheControl
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe VeniceClient::CacheControl do
21
+ let(:instance) { VeniceClient::CacheControl.new }
22
+
23
+ describe 'test an instance of CacheControl' do
24
+ it 'should create an instance of CacheControl' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(VeniceClient::CacheControl)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "ttl"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ describe 'test attribute "type"' do
37
+ it 'should work' do
38
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
39
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["ephemeral"])
40
+ # validator.allowable_values.each do |value|
41
+ # expect { instance.type = value }.not_to raise_error
42
+ # end
43
+ end
44
+ end
45
+
46
+ end
@@ -0,0 +1,40 @@
1
+ =begin
2
+ #Venice.ai API
3
+
4
+ #The Venice.ai API.
5
+
6
+ The version of the OpenAPI document: 20251209.153516
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for VeniceClient::ChatCompletionRequestReasoning
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe VeniceClient::ChatCompletionRequestReasoning do
21
+ let(:instance) { VeniceClient::ChatCompletionRequestReasoning.new }
22
+
23
+ describe 'test an instance of ChatCompletionRequestReasoning' do
24
+ it 'should create an instance of ChatCompletionRequestReasoning' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(VeniceClient::ChatCompletionRequestReasoning)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "effort"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ # validator = Petstore::EnumTest::EnumAttributeValidator.new('String', ["low", "medium", "high"])
34
+ # validator.allowable_values.each do |value|
35
+ # expect { instance.effort = value }.not_to raise_error
36
+ # end
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,36 @@
1
+ =begin
2
+ #Venice.ai API
3
+
4
+ #The Venice.ai API.
5
+
6
+ The version of the OpenAPI document: 20251209.153516
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.14.0
10
+
11
+ =end
12
+
13
+ require 'spec_helper'
14
+ require 'json'
15
+ require 'date'
16
+
17
+ # Unit tests for VeniceClient::CompleteVideo200Response
18
+ # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
+ # Please update as you see appropriate
20
+ describe VeniceClient::CompleteVideo200Response do
21
+ let(:instance) { VeniceClient::CompleteVideo200Response.new }
22
+
23
+ describe 'test an instance of CompleteVideo200Response' do
24
+ it 'should create an instance of CompleteVideo200Response' do
25
+ # uncomment below to test the instance creation
26
+ #expect(instance).to be_instance_of(VeniceClient::CompleteVideo200Response)
27
+ end
28
+ end
29
+
30
+ describe 'test attribute "success"' do
31
+ it 'should work' do
32
+ # assertion here. ref: https://rspec.info/features/3-12/rspec-expectations/built-in-matchers/
33
+ end
34
+ end
35
+
36
+ end