venice_client 1.0.1 → 1.0.3
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.
- checksums.yaml +4 -4
- data/.gitignore +39 -0
- data/.gitlab-ci.yml +26 -0
- data/.openapi-generator/FILES +395 -0
- data/.openapi-generator/VERSION +1 -0
- data/.openapi-generator-ignore +23 -0
- data/.rspec +2 -0
- data/.rubocop.yml +148 -0
- data/.travis.yml +11 -0
- data/README.md +120 -390
- data/Rakefile +2 -0
- data/docs/APIKeysApi.md +236 -89
- data/docs/AssistantMessage.md +26 -0
- data/docs/AssistantMessageContent.md +15 -0
- data/docs/AudioApi.md +40 -19
- data/docs/AudioModelPricing.md +18 -0
- data/docs/AudioModelPricingInput.md +22 -0
- data/docs/BillingApi.md +50 -29
- data/docs/BillingUsageRequest.md +24 -8
- data/docs/BillingUsageResponse.md +16 -4
- data/docs/CharactersApi.md +36 -14
- data/docs/ChatApi.md +43 -22
- data/docs/ChatCompletionRequest.md +66 -28
- data/docs/ChatCompletionRequestMessagesInner.md +28 -0
- data/docs/ChatCompletionRequestResponseFormat.md +49 -0
- data/docs/ChatCompletionRequestStop.md +15 -0
- data/docs/ChatCompletionRequestStreamOptions.md +14 -3
- data/docs/ChatCompletionRequestToolChoice.md +20 -0
- data/docs/ChatCompletionRequestToolChoiceAnyOf.md +20 -0
- data/docs/ChatCompletionRequestToolChoiceAnyOfFunction.md +18 -0
- data/docs/ChatCompletionRequestVeniceParameters.md +26 -8
- data/docs/CreateApiKey200Response.md +20 -0
- data/docs/CreateApiKey200ResponseData.md +28 -0
- data/docs/CreateApiKeyRequest.md +24 -0
- data/docs/CreateApiKeyRequestExpiresAt.md +15 -0
- data/docs/CreateChatCompletion200Response.md +32 -0
- data/docs/CreateChatCompletion200ResponseChoicesInner.md +26 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerLogprobs.md +24 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerLogprobsTopLogprobsInner.md +22 -0
- data/docs/CreateChatCompletion200ResponseChoicesInnerMessage.md +28 -0
- data/docs/CreateChatCompletion200ResponseUsage.md +24 -0
- data/docs/CreateChatCompletion200ResponseVeniceParameters.md +32 -0
- data/docs/CreateChatCompletion200ResponseVeniceParametersWebSearchCitationsInner.md +24 -0
- data/docs/CreateChatCompletion400Response.md +20 -0
- data/docs/CreateChatCompletion401Response.md +18 -0
- data/docs/CreateChatCompletion402Response.md +18 -0
- data/docs/CreateChatCompletion415Response.md +18 -0
- data/docs/CreateChatCompletion429Response.md +18 -0
- data/docs/CreateChatCompletion500Response.md +18 -0
- data/docs/CreateChatCompletion503Response.md +18 -0
- data/docs/CreateChatCompletion504Response.md +18 -0
- data/docs/CreateEmbedding200Response.md +24 -0
- data/docs/CreateEmbedding200ResponseDataInner.md +22 -0
- data/docs/CreateEmbedding200ResponseUsage.md +20 -0
- data/docs/CreateEmbeddingRequestSchema.md +22 -7
- data/docs/CreateEmbeddingRequestSchemaInput.md +15 -0
- data/docs/CreateEmbeddingRequestSchemaModel.md +15 -0
- data/docs/CreateSpeech403Response.md +18 -0
- data/docs/CreateSpeechRequestSchema.md +24 -8
- data/docs/DeleteApiKey200Response.md +18 -0
- data/docs/EditImageRequest.md +20 -0
- data/docs/EmbeddingsApi.md +44 -23
- data/docs/GenerateImage200Response.md +24 -0
- data/docs/GenerateImage200ResponseTiming.md +24 -0
- data/docs/GenerateImageRequest.md +44 -18
- data/docs/GetApiKeyGenerateWeb3Key200Response.md +20 -0
- data/docs/GetApiKeyGenerateWeb3Key200ResponseData.md +18 -0
- data/docs/GetApiKeyRateLimitLogs200Response.md +20 -0
- data/docs/GetApiKeyRateLimitLogs200ResponseDataInner.md +26 -0
- data/docs/GetApiKeyRateLimits200Response.md +18 -0
- data/docs/GetApiKeyRateLimits200ResponseData.md +28 -0
- data/docs/GetApiKeyRateLimits200ResponseDataApiTier.md +20 -0
- data/docs/GetApiKeyRateLimits200ResponseDataBalances.md +22 -0
- data/docs/GetApiKeyRateLimits200ResponseDataRateLimitsInner.md +20 -0
- data/docs/GetApiKeyRateLimits200ResponseDataRateLimitsInnerRateLimitsInner.md +20 -0
- data/docs/GetApiKeys200Response.md +20 -0
- data/docs/GetApiKeys200ResponseDataInner.md +34 -0
- data/docs/GetApiKeys200ResponseDataInnerConsumptionLimits.md +22 -0
- data/docs/GetApiKeys200ResponseDataInnerUsage.md +18 -0
- data/docs/GetApiKeys200ResponseDataInnerUsageTrailingSevenDays.md +22 -0
- data/docs/GetBillingUsage200Response.md +20 -0
- data/docs/GetBillingUsage200ResponseDataInner.md +32 -0
- data/docs/GetBillingUsage200ResponseDataInnerInferenceDetails.md +24 -0
- data/docs/GetBillingUsage200ResponsePagination.md +24 -0
- data/docs/ImageApi.md +198 -102
- data/docs/ImageModelConstraints.md +22 -0
- data/docs/ImageModelConstraintsSteps.md +20 -0
- data/docs/ImageModelPricing.md +20 -0
- data/docs/ImageModelPricingGeneration.md +22 -0
- data/docs/ImageModelPricingUpscale.md +20 -0
- data/docs/ImageModelPricingUpscale2x.md +22 -0
- data/docs/ImageModelPricingUpscale4x.md +22 -0
- data/docs/ImageStylesGet200Response.md +20 -0
- data/docs/ImageStylesGet500Response.md +18 -0
- data/docs/ImageURLObject.md +18 -0
- data/docs/ImageUrl.md +20 -0
- data/docs/JsonObject.md +18 -0
- data/docs/JsonSchema.md +20 -0
- data/docs/LLMModelPricing.md +20 -0
- data/docs/LLMModelPricingInput.md +22 -0
- data/docs/LLMModelPricingOutput.md +22 -0
- data/docs/ListCharacters200Response.md +20 -0
- data/docs/ListCharacters200ResponseDataInner.md +36 -0
- data/docs/ListCharacters200ResponseDataInnerStats.md +18 -0
- data/docs/ListModelCompatibilityMapping200Response.md +22 -0
- data/docs/ListModelTraits200Response.md +22 -0
- data/docs/ListModels200Response.md +22 -0
- data/docs/ListModels200ResponseType.md +15 -0
- data/docs/ListModelsTypeParameter.md +15 -0
- data/docs/ModelResponse.md +24 -8
- data/docs/ModelResponseModelSpec.md +32 -11
- data/docs/ModelResponseModelSpecCapabilities.md +28 -10
- data/docs/ModelResponseModelSpecConstraints.md +26 -0
- data/docs/ModelResponseModelSpecPricing.md +24 -0
- data/docs/ModelsApi.md +112 -49
- data/docs/ObjectsInner.md +49 -0
- data/docs/PostApiKeyGenerateWeb3KeyRequest.md +30 -0
- data/docs/PreviewApi.md +36 -14
- data/docs/SimpleGenerateImage200Response.md +20 -0
- data/docs/SimpleGenerateImage200ResponseDataInner.md +20 -0
- data/docs/SimpleGenerateImage200ResponseDataInnerAnyOf.md +18 -0
- data/docs/SimpleGenerateImage200ResponseDataInnerAnyOf1.md +18 -0
- data/docs/SimpleGenerateImageRequest.md +36 -14
- data/docs/SpeechApi.md +40 -19
- data/docs/SystemMessage.md +22 -0
- data/docs/SystemMessageContent.md +15 -0
- data/docs/Text.md +20 -0
- data/docs/TextModelConstraints.md +20 -0
- data/docs/TextModelConstraintsTemperature.md +18 -0
- data/docs/TextModelConstraintsTopP.md +18 -0
- data/docs/ToolCall.md +18 -5
- data/docs/ToolCallFunction.md +22 -0
- data/docs/ToolMessage.md +28 -0
- data/docs/UpscaleImageRequest.md +24 -8
- data/docs/UpscaleImageRequestEnhance.md +15 -0
- data/docs/UserMessage.md +20 -0
- data/docs/UserMessageContent.md +15 -0
- data/git_push.sh +11 -9
- data/lib/venice_client/api/api_keys_api.rb +122 -65
- data/lib/venice_client/api/audio_api.rb +26 -14
- data/lib/venice_client/api/billing_api.rb +46 -23
- data/lib/venice_client/api/characters_api.rb +20 -11
- data/lib/venice_client/api/chat_api.rb +28 -16
- data/lib/venice_client/api/embeddings_api.rb +34 -22
- data/lib/venice_client/api/image_api.rb +146 -119
- data/lib/venice_client/api/models_api.rb +62 -37
- data/lib/venice_client/api/preview_api.rb +20 -11
- data/lib/venice_client/api/speech_api.rb +26 -14
- data/lib/venice_client/api_client.rb +99 -94
- data/lib/venice_client/api_error.rb +7 -5
- data/lib/venice_client/configuration.rb +129 -24
- data/lib/venice_client/models/assistant_message.rb +304 -0
- data/lib/venice_client/models/assistant_message_content.rb +104 -0
- data/lib/venice_client/models/audio_model_pricing.rb +238 -0
- data/lib/venice_client/models/audio_model_pricing_input.rb +292 -0
- data/lib/venice_client/models/billing_usage_request.rb +99 -38
- data/lib/venice_client/models/billing_usage_response.rb +68 -30
- data/lib/venice_client/models/chat_completion_request.rb +389 -61
- data/lib/venice_client/models/chat_completion_request_messages_inner.rb +106 -0
- data/lib/venice_client/models/chat_completion_request_response_format.rb +106 -0
- data/lib/venice_client/models/chat_completion_request_stop.rb +105 -0
- data/lib/venice_client/models/chat_completion_request_stream_options.rb +43 -29
- data/lib/venice_client/models/chat_completion_request_tool_choice.rb +104 -0
- data/lib/venice_client/models/chat_completion_request_tool_choice_any_of.rb +263 -0
- data/lib/venice_client/models/chat_completion_request_tool_choice_any_of_function.rb +237 -0
- data/lib/venice_client/models/chat_completion_request_venice_parameters.rb +71 -48
- data/lib/venice_client/models/{inline_response_200_8.rb → create_api_key200_response.rb} +70 -32
- data/lib/venice_client/models/{inline_response_200_8_data.rb → create_api_key200_response_data.rb} +92 -43
- data/lib/venice_client/models/{api_keys_body.rb → create_api_key_request.rb} +65 -38
- data/lib/venice_client/models/create_api_key_request_expires_at.rb +104 -0
- data/lib/venice_client/models/{inline_response_200.rb → create_chat_completion200_response.rb} +120 -42
- data/lib/venice_client/models/{inline_response_200_choices.rb → create_chat_completion200_response_choices_inner.rb} +82 -44
- data/lib/venice_client/models/{inline_response_200_logprobs.rb → create_chat_completion200_response_choices_inner_logprobs.rb} +72 -34
- data/lib/venice_client/models/{inline_response_200_logprobs_top_logprobs.rb → create_chat_completion200_response_choices_inner_logprobs_top_logprobs_inner.rb} +71 -33
- data/lib/venice_client/models/create_chat_completion200_response_choices_inner_message.rb +104 -0
- data/lib/venice_client/models/{inline_response_200_usage.rb → create_chat_completion200_response_usage.rb} +83 -33
- data/lib/venice_client/models/{inline_response_200_venice_parameters.rb → create_chat_completion200_response_venice_parameters.rb} +131 -40
- data/lib/venice_client/models/{inline_response_200_venice_parameters_web_search_citations.rb → create_chat_completion200_response_venice_parameters_web_search_citations_inner.rb} +72 -34
- data/lib/venice_client/models/{inline_response_400.rb → create_chat_completion400_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_401.rb → create_chat_completion401_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_402.rb → create_chat_completion402_response.rb} +57 -31
- data/lib/venice_client/models/create_chat_completion415_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion429_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion500_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion503_response.rb +238 -0
- data/lib/venice_client/models/create_chat_completion504_response.rb +238 -0
- data/lib/venice_client/models/{inline_response_200_14.rb → create_embedding200_response.rb} +88 -36
- data/lib/venice_client/models/{inline_response_200_14_data.rb → create_embedding200_response_data_inner.rb} +75 -35
- data/lib/venice_client/models/{inline_response_200_14_usage.rb → create_embedding200_response_usage.rb} +70 -32
- data/lib/venice_client/models/create_embedding_request_schema.rb +92 -37
- data/lib/venice_client/models/create_embedding_request_schema_input.rb +107 -0
- data/lib/venice_client/models/create_embedding_request_schema_model.rb +104 -0
- data/lib/venice_client/models/{inline_response_403.rb → create_speech403_response.rb} +57 -31
- data/lib/venice_client/models/create_speech_request_schema.rb +112 -40
- data/lib/venice_client/models/{inline_response_200_12.rb → delete_api_key200_response.rb} +58 -46
- data/lib/venice_client/models/edit_image_request.rb +260 -0
- data/lib/venice_client/models/{inline_response_200_1.rb → generate_image200_response.rb} +83 -33
- data/lib/venice_client/models/{inline_response_200_1_timing.rb → generate_image200_response_timing.rb} +96 -34
- data/lib/venice_client/models/generate_image_request.rb +289 -46
- data/lib/venice_client/models/get_api_key_generate_web3_key200_response.rb +263 -0
- data/lib/venice_client/models/{inline_response_200_12_data.rb → get_api_key_generate_web3_key200_response_data.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_13.rb → get_api_key_rate_limit_logs200_response.rb} +63 -34
- data/lib/venice_client/models/{inline_response_200_11_data.rb → get_api_key_rate_limit_logs200_response_data_inner.rb} +107 -35
- data/lib/venice_client/models/{inline_response_200_10.rb → get_api_key_rate_limits200_response.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_10_data.rb → get_api_key_rate_limits200_response_data.rb} +112 -41
- data/lib/venice_client/models/{inline_response_200_10_data_api_tier.rb → get_api_key_rate_limits200_response_data_api_tier.rb} +71 -33
- data/lib/venice_client/models/{inline_response_200_10_data_balances.rb → get_api_key_rate_limits200_response_data_balances.rb} +60 -36
- data/lib/venice_client/models/{inline_response_200_10_data_rate_limits_1.rb → get_api_key_rate_limits200_response_data_rate_limits_inner.rb} +58 -32
- data/lib/venice_client/models/{inline_response_200_10_data_rate_limits.rb → get_api_key_rate_limits200_response_data_rate_limits_inner_rate_limits_inner.rb} +70 -32
- data/lib/venice_client/models/{inline_response_200_7.rb → get_api_keys200_response.rb} +62 -34
- data/lib/venice_client/models/{inline_response_200_7_data.rb → get_api_keys200_response_data_inner.rb} +99 -56
- data/lib/venice_client/models/get_api_keys200_response_data_inner_consumption_limits.rb +287 -0
- data/lib/venice_client/models/{inline_response_200_7_usage.rb → get_api_keys200_response_data_inner_usage.rb} +57 -31
- data/lib/venice_client/models/get_api_keys200_response_data_inner_usage_trailing_seven_days.rb +292 -0
- data/lib/venice_client/models/{inline_response_200_15.rb → get_billing_usage200_response.rb} +70 -32
- data/lib/venice_client/models/{billing_usage_response_data.rb → get_billing_usage200_response_data_inner.rb} +131 -45
- data/lib/venice_client/models/{billing_usage_response_inference_details.rb → get_billing_usage200_response_data_inner_inference_details.rb} +56 -54
- data/lib/venice_client/models/{billing_usage_response_pagination.rb → get_billing_usage200_response_pagination.rb} +96 -34
- data/lib/venice_client/models/image_model_constraints.rb +292 -0
- data/lib/venice_client/models/image_model_constraints_steps.rb +265 -0
- data/lib/venice_client/models/image_model_pricing.rb +264 -0
- data/lib/venice_client/models/image_model_pricing_generation.rb +292 -0
- data/lib/venice_client/models/image_model_pricing_upscale.rb +263 -0
- data/lib/venice_client/models/image_model_pricing_upscale2x.rb +292 -0
- data/lib/venice_client/models/image_model_pricing_upscale4x.rb +292 -0
- data/lib/venice_client/models/{inline_response_200_3.rb → image_styles_get200_response.rb} +62 -34
- data/lib/venice_client/models/{inline_response_415.rb → image_styles_get500_response.rb} +57 -31
- data/lib/venice_client/models/image_url.rb +288 -0
- data/lib/venice_client/models/{inline_response_200_7_usage_trailing_seven_days.rb → image_url_object.rb} +68 -56
- data/lib/venice_client/models/json_object.rb +262 -0
- data/lib/venice_client/models/json_schema.rb +290 -0
- data/lib/venice_client/models/{inline_response_200_11.rb → list_characters200_response.rb} +62 -35
- data/lib/venice_client/models/{inline_response_200_13_data.rb → list_characters200_response_data_inner.rb} +154 -50
- data/lib/venice_client/models/{inline_response_200_13_stats.rb → list_characters200_response_data_inner_stats.rb} +57 -31
- data/lib/venice_client/models/{inline_response_200_6.rb → list_model_compatibility_mapping200_response.rb} +79 -37
- data/lib/venice_client/models/{inline_response_200_5.rb → list_model_traits200_response.rb} +79 -37
- data/lib/venice_client/models/{inline_response_200_4.rb → list_models200_response.rb} +75 -36
- data/lib/venice_client/models/list_models200_response_type.rb +104 -0
- data/lib/venice_client/models/list_models_type_parameter.rb +104 -0
- data/lib/venice_client/models/llm_model_pricing.rb +264 -0
- data/lib/venice_client/models/llm_model_pricing_input.rb +292 -0
- data/lib/venice_client/models/llm_model_pricing_output.rb +292 -0
- data/lib/venice_client/models/model_response.rb +84 -40
- data/lib/venice_client/models/model_response_model_spec.rb +62 -40
- data/lib/venice_client/models/model_response_model_spec_capabilities.rb +138 -38
- data/lib/venice_client/models/model_response_model_spec_constraints.rb +105 -0
- data/lib/venice_client/models/model_response_model_spec_pricing.rb +106 -0
- data/lib/venice_client/models/objects_inner.rb +105 -0
- data/lib/venice_client/models/{api_keys_generate_web3_key_body.rb → post_api_key_generate_web3_key_request.rb} +91 -40
- data/lib/venice_client/models/{inline_response_200_2.rb → simple_generate_image200_response.rb} +73 -35
- data/lib/venice_client/models/simple_generate_image200_response_data_inner.rb +104 -0
- data/lib/venice_client/models/simple_generate_image200_response_data_inner_any_of.rb +238 -0
- data/lib/venice_client/models/{api_keys_consumption_limit.rb → simple_generate_image200_response_data_inner_any_of1.rb} +67 -57
- data/lib/venice_client/models/simple_generate_image_request.rb +146 -54
- data/lib/venice_client/models/system_message.rb +297 -0
- data/lib/venice_client/models/system_message_content.rb +104 -0
- data/lib/venice_client/models/text.rb +298 -0
- data/lib/venice_client/models/text_model_constraints.rb +264 -0
- data/lib/venice_client/models/text_model_constraints_temperature.rb +238 -0
- data/lib/venice_client/models/text_model_constraints_top_p.rb +238 -0
- data/lib/venice_client/models/tool_call.rb +57 -31
- data/lib/venice_client/models/{chat_completion_request_function.rb → tool_call_function.rb} +59 -33
- data/lib/venice_client/models/tool_message.rb +344 -0
- data/lib/venice_client/models/upscale_image_request.rb +146 -40
- data/lib/venice_client/models/upscale_image_request_enhance.rb +105 -0
- data/lib/venice_client/models/user_message.rb +288 -0
- data/lib/venice_client/models/user_message_content.rb +104 -0
- data/lib/venice_client/version.rb +5 -4
- data/lib/venice_client.rb +134 -108
- data/openapitools.json +7 -0
- data/spec/api/api_keys_api_spec.rb +43 -41
- data/spec/api/audio_api_spec.rb +18 -16
- data/spec/api/billing_api_spec.rb +23 -21
- data/spec/api/characters_api_spec.rb +17 -15
- data/spec/api/chat_api_spec.rb +19 -17
- data/spec/api/embeddings_api_spec.rb +19 -17
- data/spec/api/image_api_spec.rb +43 -46
- data/spec/api/models_api_spec.rb +28 -26
- data/spec/api/preview_api_spec.rb +17 -15
- data/spec/api/speech_api_spec.rb +18 -16
- data/spec/models/assistant_message_content_spec.rb +21 -0
- data/spec/models/assistant_message_spec.rb +64 -0
- data/spec/models/audio_model_pricing_input_spec.rb +48 -0
- data/spec/models/audio_model_pricing_spec.rb +36 -0
- data/spec/models/billing_usage_request_spec.rb +19 -23
- data/spec/models/billing_usage_response_spec.rb +12 -16
- data/spec/models/chat_completion_request_messages_inner_spec.rb +21 -0
- data/spec/models/chat_completion_request_response_format_spec.rb +32 -0
- data/spec/models/chat_completion_request_spec.rb +74 -71
- data/spec/models/chat_completion_request_stop_spec.rb +21 -0
- data/spec/models/chat_completion_request_stream_options_spec.rb +11 -15
- data/spec/models/chat_completion_request_tool_choice_any_of_function_spec.rb +36 -0
- data/spec/models/chat_completion_request_tool_choice_any_of_spec.rb +42 -0
- data/spec/models/chat_completion_request_tool_choice_spec.rb +21 -0
- data/spec/models/chat_completion_request_venice_parameters_spec.rb +35 -32
- data/spec/models/create_api_key200_response_data_spec.rb +70 -0
- data/spec/models/create_api_key200_response_spec.rb +42 -0
- data/spec/models/create_api_key_request_expires_at_spec.rb +21 -0
- data/spec/models/create_api_key_request_spec.rb +58 -0
- data/spec/models/create_chat_completion200_response_choices_inner_logprobs_spec.rb +54 -0
- data/spec/models/create_chat_completion200_response_choices_inner_logprobs_top_logprobs_inner_spec.rb +48 -0
- data/spec/models/create_chat_completion200_response_choices_inner_message_spec.rb +21 -0
- data/spec/models/create_chat_completion200_response_choices_inner_spec.rb +68 -0
- data/spec/models/create_chat_completion200_response_spec.rb +82 -0
- data/spec/models/create_chat_completion200_response_usage_spec.rb +54 -0
- data/spec/models/create_chat_completion200_response_venice_parameters_spec.rb +82 -0
- data/spec/models/create_chat_completion200_response_venice_parameters_web_search_citations_inner_spec.rb +54 -0
- data/spec/models/create_chat_completion400_response_spec.rb +42 -0
- data/spec/models/create_chat_completion401_response_spec.rb +36 -0
- data/spec/models/create_chat_completion402_response_spec.rb +36 -0
- data/spec/models/create_chat_completion415_response_spec.rb +36 -0
- data/spec/models/create_chat_completion429_response_spec.rb +36 -0
- data/spec/models/create_chat_completion500_response_spec.rb +36 -0
- data/spec/models/create_chat_completion503_response_spec.rb +36 -0
- data/spec/models/create_chat_completion504_response_spec.rb +36 -0
- data/spec/models/create_embedding200_response_data_inner_spec.rb +52 -0
- data/spec/models/create_embedding200_response_spec.rb +58 -0
- data/spec/models/create_embedding200_response_usage_spec.rb +42 -0
- data/spec/models/create_embedding_request_schema_input_spec.rb +21 -0
- data/spec/models/create_embedding_request_schema_model_spec.rb +21 -0
- data/spec/models/create_embedding_request_schema_spec.rb +16 -20
- data/spec/models/create_speech403_response_spec.rb +36 -0
- data/spec/models/create_speech_request_schema_spec.rb +31 -34
- data/spec/models/delete_api_key200_response_spec.rb +36 -0
- data/spec/models/edit_image_request_spec.rb +42 -0
- data/spec/models/generate_image200_response_spec.rb +54 -0
- data/spec/models/generate_image200_response_timing_spec.rb +54 -0
- data/spec/models/generate_image_request_spec.rb +27 -31
- data/spec/models/get_api_key_generate_web3_key200_response_data_spec.rb +36 -0
- data/spec/models/get_api_key_generate_web3_key200_response_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limit_logs200_response_data_inner_spec.rb +60 -0
- data/spec/models/get_api_key_rate_limit_logs200_response_spec.rb +46 -0
- data/spec/models/get_api_key_rate_limits200_response_data_api_tier_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_balances_spec.rb +48 -0
- data/spec/models/get_api_key_rate_limits200_response_data_rate_limits_inner_rate_limits_inner_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_rate_limits_inner_spec.rb +42 -0
- data/spec/models/get_api_key_rate_limits200_response_data_spec.rb +66 -0
- data/spec/models/get_api_key_rate_limits200_response_spec.rb +36 -0
- data/spec/models/get_api_keys200_response_data_inner_consumption_limits_spec.rb +48 -0
- data/spec/models/get_api_keys200_response_data_inner_spec.rb +88 -0
- data/spec/models/get_api_keys200_response_data_inner_usage_spec.rb +36 -0
- data/spec/models/get_api_keys200_response_data_inner_usage_trailing_seven_days_spec.rb +48 -0
- data/spec/models/get_api_keys200_response_spec.rb +46 -0
- data/spec/models/get_billing_usage200_response_data_inner_inference_details_spec.rb +54 -0
- data/spec/models/get_billing_usage200_response_data_inner_spec.rb +82 -0
- data/spec/models/get_billing_usage200_response_pagination_spec.rb +54 -0
- data/spec/models/get_billing_usage200_response_spec.rb +42 -0
- data/spec/models/image_model_constraints_spec.rb +48 -0
- data/spec/models/image_model_constraints_steps_spec.rb +42 -0
- data/spec/models/image_model_pricing_generation_spec.rb +48 -0
- data/spec/models/image_model_pricing_spec.rb +42 -0
- data/spec/models/image_model_pricing_upscale2x_spec.rb +48 -0
- data/spec/models/image_model_pricing_upscale4x_spec.rb +48 -0
- data/spec/models/image_model_pricing_upscale_spec.rb +42 -0
- data/spec/models/image_styles_get200_response_spec.rb +46 -0
- data/spec/models/image_styles_get500_response_spec.rb +36 -0
- data/spec/models/image_url_object_spec.rb +36 -0
- data/spec/models/image_url_spec.rb +46 -0
- data/spec/models/json_object_spec.rb +40 -0
- data/spec/models/json_schema_spec.rb +46 -0
- data/spec/models/list_characters200_response_data_inner_spec.rb +90 -0
- data/spec/models/list_characters200_response_data_inner_stats_spec.rb +36 -0
- data/spec/models/list_characters200_response_spec.rb +46 -0
- data/spec/models/list_model_compatibility_mapping200_response_spec.rb +52 -0
- data/spec/models/list_model_traits200_response_spec.rb +52 -0
- data/spec/models/list_models200_response_spec.rb +52 -0
- data/spec/models/list_models200_response_type_spec.rb +21 -0
- data/spec/models/list_models_type_parameter_spec.rb +21 -0
- data/spec/models/llm_model_pricing_input_spec.rb +48 -0
- data/spec/models/llm_model_pricing_output_spec.rb +48 -0
- data/spec/models/llm_model_pricing_spec.rb +42 -0
- data/spec/models/model_response_model_spec_capabilities_spec.rb +33 -36
- data/spec/models/model_response_model_spec_constraints_spec.rb +21 -0
- data/spec/models/model_response_model_spec_pricing_spec.rb +21 -0
- data/spec/models/model_response_model_spec_spec.rb +40 -37
- data/spec/models/model_response_spec.rb +32 -35
- data/spec/models/objects_inner_spec.rb +32 -0
- data/spec/models/post_api_key_generate_web3_key_request_spec.rb +76 -0
- data/spec/models/simple_generate_image200_response_data_inner_any_of1_spec.rb +36 -0
- data/spec/models/simple_generate_image200_response_data_inner_any_of_spec.rb +36 -0
- data/spec/models/simple_generate_image200_response_data_inner_spec.rb +21 -0
- data/spec/models/simple_generate_image200_response_spec.rb +42 -0
- data/spec/models/simple_generate_image_request_spec.rb +29 -33
- data/spec/models/system_message_content_spec.rb +21 -0
- data/spec/models/system_message_spec.rb +52 -0
- data/spec/models/text_model_constraints_spec.rb +42 -0
- data/spec/models/text_model_constraints_temperature_spec.rb +36 -0
- data/spec/models/text_model_constraints_top_p_spec.rb +36 -0
- data/spec/models/text_spec.rb +46 -0
- data/spec/models/tool_call_function_spec.rb +48 -0
- data/spec/models/tool_call_spec.rb +22 -25
- data/spec/models/tool_message_spec.rb +70 -0
- data/spec/models/upscale_image_request_enhance_spec.rb +21 -0
- data/spec/models/upscale_image_request_spec.rb +28 -31
- data/spec/models/user_message_content_spec.rb +21 -0
- data/spec/models/user_message_spec.rb +46 -0
- data/spec/spec_helper.rb +7 -6
- data/swagger.yaml +4791 -0
- data/update.sh +9 -0
- metadata +440 -356
- data/docs/AnyOfChatCompletionRequestMessagesItems.md +0 -6
- data/docs/AnyOfChatCompletionRequestStop.md +0 -6
- data/docs/AnyOfChatCompletionRequestToolChoice.md +0 -6
- data/docs/AnyOfCreateEmbeddingRequestSchemaInput.md +0 -6
- data/docs/AnyOfCreateEmbeddingRequestSchemaModel.md +0 -6
- data/docs/AnyOfModelResponseModelSpecConstraints.md +0 -6
- data/docs/AnyOfModelResponseModelSpecPricing.md +0 -6
- data/docs/AnyOfUpscaleImageRequestEnhance.md +0 -6
- data/docs/AnyOfUpscaleImageRequestImage.md +0 -6
- data/docs/AnyOfapiKeysBodyExpiresAt.md +0 -6
- data/docs/AnyOfapiKeysConsumptionLimitUsd.md +0 -6
- data/docs/AnyOfapiKeysConsumptionLimitVcu.md +0 -6
- data/docs/AnyOfapiKeysGenerateWeb3KeyBodyExpiresAt.md +0 -6
- data/docs/AnyOfinlineResponse2002DataItems.md +0 -6
- data/docs/AnyOfinlineResponse2004Type.md +0 -6
- data/docs/AnyOfinlineResponse2005Type.md +0 -6
- data/docs/AnyOfinlineResponse2006Type.md +0 -6
- data/docs/AnyOfinlineResponse200ChoicesMessage.md +0 -6
- data/docs/AnyOfinlineResponse200PromptLogprobs.md +0 -6
- data/docs/ApiKeysBody.md +0 -10
- data/docs/ApiKeysConsumptionLimit.md +0 -8
- data/docs/ApiKeysGenerateWeb3KeyBody.md +0 -13
- data/docs/BillingUsageResponseData.md +0 -14
- data/docs/BillingUsageResponseInferenceDetails.md +0 -10
- data/docs/BillingUsageResponsePagination.md +0 -10
- data/docs/ChatCompletionRequestFunction.md +0 -9
- data/docs/InlineResponse200.md +0 -14
- data/docs/InlineResponse2001.md +0 -10
- data/docs/InlineResponse20010.md +0 -7
- data/docs/InlineResponse20010Data.md +0 -12
- data/docs/InlineResponse20010DataApiTier.md +0 -8
- data/docs/InlineResponse20010DataBalances.md +0 -8
- data/docs/InlineResponse20010DataRateLimits.md +0 -8
- data/docs/InlineResponse20010DataRateLimits1.md +0 -8
- data/docs/InlineResponse20011.md +0 -8
- data/docs/InlineResponse20011Data.md +0 -11
- data/docs/InlineResponse20012.md +0 -8
- data/docs/InlineResponse20012Data.md +0 -7
- data/docs/InlineResponse20013.md +0 -8
- data/docs/InlineResponse20013Data.md +0 -16
- data/docs/InlineResponse20013Stats.md +0 -7
- data/docs/InlineResponse20014.md +0 -10
- data/docs/InlineResponse20014Data.md +0 -9
- data/docs/InlineResponse20014Usage.md +0 -8
- data/docs/InlineResponse20015.md +0 -8
- data/docs/InlineResponse2001Timing.md +0 -10
- data/docs/InlineResponse2002.md +0 -8
- data/docs/InlineResponse2003.md +0 -8
- data/docs/InlineResponse2004.md +0 -9
- data/docs/InlineResponse2005.md +0 -9
- data/docs/InlineResponse2006.md +0 -9
- data/docs/InlineResponse2007.md +0 -8
- data/docs/InlineResponse2007Data.md +0 -15
- data/docs/InlineResponse2007Usage.md +0 -7
- data/docs/InlineResponse2007UsageTrailingSevenDays.md +0 -8
- data/docs/InlineResponse2008.md +0 -8
- data/docs/InlineResponse2008Data.md +0 -12
- data/docs/InlineResponse2009.md +0 -7
- data/docs/InlineResponse200Choices.md +0 -11
- data/docs/InlineResponse200Logprobs.md +0 -10
- data/docs/InlineResponse200LogprobsTopLogprobs.md +0 -9
- data/docs/InlineResponse200Usage.md +0 -10
- data/docs/InlineResponse200VeniceParameters.md +0 -13
- data/docs/InlineResponse200VeniceParametersWebSearchCitations.md +0 -10
- data/docs/InlineResponse400.md +0 -8
- data/docs/InlineResponse401.md +0 -7
- data/docs/InlineResponse402.md +0 -7
- data/docs/InlineResponse403.md +0 -7
- data/docs/InlineResponse415.md +0 -7
- data/docs/InlineResponse429.md +0 -7
- data/docs/InlineResponse500.md +0 -7
- data/docs/InlineResponse5001.md +0 -7
- data/docs/InlineResponse503.md +0 -7
- data/docs/ModelCompatibilitySchema.md +0 -6
- data/docs/ModelTraitSchema.md +0 -6
- data/docs/OneOfChatCompletionRequestResponseFormat.md +0 -6
- data/docs/Type.md +0 -6
- data/lib/venice_client/models/any_of_chat_completion_request_messages_items.rb +0 -197
- data/lib/venice_client/models/any_of_chat_completion_request_stop.rb +0 -197
- data/lib/venice_client/models/any_of_chat_completion_request_tool_choice.rb +0 -197
- data/lib/venice_client/models/any_of_create_embedding_request_schema_input.rb +0 -197
- data/lib/venice_client/models/any_of_create_embedding_request_schema_model.rb +0 -197
- data/lib/venice_client/models/any_of_model_response_model_spec_constraints.rb +0 -197
- data/lib/venice_client/models/any_of_model_response_model_spec_pricing.rb +0 -197
- data/lib/venice_client/models/any_of_upscale_image_request_enhance.rb +0 -197
- data/lib/venice_client/models/any_of_upscale_image_request_image.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_body_expires_at.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_consumption_limit_usd.rb +0 -197
- data/lib/venice_client/models/any_ofapi_keys_consumption_limit_vcu.rb +0 -195
- data/lib/venice_client/models/any_ofapi_keys_generate_web3_key_body_expires_at.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_2_data_items.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_4_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_5_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_6_type.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_choices_message.rb +0 -197
- data/lib/venice_client/models/any_ofinline_response_200_prompt_logprobs.rb +0 -197
- data/lib/venice_client/models/inline_response_200_9.rb +0 -211
- data/lib/venice_client/models/inline_response_429.rb +0 -212
- data/lib/venice_client/models/inline_response_500.rb +0 -212
- data/lib/venice_client/models/inline_response_500_1.rb +0 -212
- data/lib/venice_client/models/inline_response_503.rb +0 -212
- data/lib/venice_client/models/model_compatibility_schema.rb +0 -202
- data/lib/venice_client/models/model_trait_schema.rb +0 -200
- data/lib/venice_client/models/one_of_chat_completion_request_response_format.rb +0 -197
- data/lib/venice_client/models/type.rb +0 -198
- data/spec/api_client_spec.rb +0 -225
- data/spec/base_object_spec.rb +0 -109
- data/spec/configuration_spec.rb +0 -41
- data/spec/models/any_of_chat_completion_request_messages_items_spec.rb +0 -34
- data/spec/models/any_of_chat_completion_request_stop_spec.rb +0 -34
- data/spec/models/any_of_chat_completion_request_tool_choice_spec.rb +0 -34
- data/spec/models/any_of_create_embedding_request_schema_input_spec.rb +0 -34
- data/spec/models/any_of_create_embedding_request_schema_model_spec.rb +0 -34
- data/spec/models/any_of_model_response_model_spec_constraints_spec.rb +0 -34
- data/spec/models/any_of_model_response_model_spec_pricing_spec.rb +0 -34
- data/spec/models/any_of_upscale_image_request_enhance_spec.rb +0 -34
- data/spec/models/any_of_upscale_image_request_image_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_body_expires_at_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_consumption_limit_usd_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_consumption_limit_vcu_spec.rb +0 -34
- data/spec/models/any_ofapi_keys_generate_web3_key_body_expires_at_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_2_data_items_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_4_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_5_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_6_type_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_choices_message_spec.rb +0 -34
- data/spec/models/any_ofinline_response_200_prompt_logprobs_spec.rb +0 -34
- data/spec/models/api_keys_body_spec.rb +0 -61
- data/spec/models/api_keys_consumption_limit_spec.rb +0 -46
- data/spec/models/api_keys_generate_web3_key_body_spec.rb +0 -80
- data/spec/models/billing_usage_response_data_spec.rb +0 -86
- data/spec/models/billing_usage_response_inference_details_spec.rb +0 -57
- data/spec/models/billing_usage_response_pagination_spec.rb +0 -58
- data/spec/models/chat_completion_request_function_spec.rb +0 -52
- data/spec/models/inline_response_200_10_data_api_tier_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_balances_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_rate_limits_1_spec.rb +0 -45
- data/spec/models/inline_response_200_10_data_rate_limits_spec.rb +0 -46
- data/spec/models/inline_response_200_10_data_spec.rb +0 -69
- data/spec/models/inline_response_200_10_spec.rb +0 -40
- data/spec/models/inline_response_200_11_data_spec.rb +0 -64
- data/spec/models/inline_response_200_11_spec.rb +0 -50
- data/spec/models/inline_response_200_12_data_spec.rb +0 -39
- data/spec/models/inline_response_200_12_spec.rb +0 -46
- data/spec/models/inline_response_200_13_data_spec.rb +0 -93
- data/spec/models/inline_response_200_13_spec.rb +0 -49
- data/spec/models/inline_response_200_13_stats_spec.rb +0 -40
- data/spec/models/inline_response_200_14_data_spec.rb +0 -55
- data/spec/models/inline_response_200_14_spec.rb +0 -61
- data/spec/models/inline_response_200_14_usage_spec.rb +0 -45
- data/spec/models/inline_response_200_15_spec.rb +0 -45
- data/spec/models/inline_response_200_1_spec.rb +0 -57
- data/spec/models/inline_response_200_1_timing_spec.rb +0 -58
- data/spec/models/inline_response_200_2_spec.rb +0 -46
- data/spec/models/inline_response_200_3_spec.rb +0 -50
- data/spec/models/inline_response_200_4_spec.rb +0 -55
- data/spec/models/inline_response_200_5_spec.rb +0 -55
- data/spec/models/inline_response_200_6_spec.rb +0 -55
- data/spec/models/inline_response_200_7_data_spec.rb +0 -91
- data/spec/models/inline_response_200_7_spec.rb +0 -50
- data/spec/models/inline_response_200_7_usage_spec.rb +0 -39
- data/spec/models/inline_response_200_7_usage_trailing_seven_days_spec.rb +0 -45
- data/spec/models/inline_response_200_8_data_spec.rb +0 -73
- data/spec/models/inline_response_200_8_spec.rb +0 -45
- data/spec/models/inline_response_200_9_spec.rb +0 -39
- data/spec/models/inline_response_200_choices_spec.rb +0 -72
- data/spec/models/inline_response_200_logprobs_spec.rb +0 -57
- data/spec/models/inline_response_200_logprobs_top_logprobs_spec.rb +0 -51
- data/spec/models/inline_response_200_spec.rb +0 -85
- data/spec/models/inline_response_200_usage_spec.rb +0 -57
- data/spec/models/inline_response_200_venice_parameters_spec.rb +0 -80
- data/spec/models/inline_response_200_venice_parameters_web_search_citations_spec.rb +0 -57
- data/spec/models/inline_response_400_spec.rb +0 -45
- data/spec/models/inline_response_401_spec.rb +0 -39
- data/spec/models/inline_response_402_spec.rb +0 -39
- data/spec/models/inline_response_403_spec.rb +0 -40
- data/spec/models/inline_response_415_spec.rb +0 -40
- data/spec/models/inline_response_429_spec.rb +0 -39
- data/spec/models/inline_response_500_1_spec.rb +0 -40
- data/spec/models/inline_response_500_spec.rb +0 -39
- data/spec/models/inline_response_503_spec.rb +0 -40
- data/spec/models/model_compatibility_schema_spec.rb +0 -34
- data/spec/models/model_trait_schema_spec.rb +0 -34
- data/spec/models/one_of_chat_completion_request_response_format_spec.rb +0 -34
- data/spec/models/type_spec.rb +0 -34
- data/venice_client.gemspec +0 -38
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
|
|
4
4
|
#The Venice.ai API.
|
|
5
5
|
|
|
6
|
-
OpenAPI
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
7
|
+
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.14.0
|
|
7
10
|
|
|
8
|
-
Generated by: https://github.com/swagger-api/swagger-codegen.git
|
|
9
|
-
Swagger Codegen version: 3.0.68
|
|
10
11
|
=end
|
|
11
12
|
|
|
12
13
|
require 'date'
|
|
14
|
+
require 'time'
|
|
13
15
|
|
|
14
16
|
module VeniceClient
|
|
15
17
|
# Text model specific capabilities.
|
|
@@ -74,17 +76,27 @@ module VeniceClient
|
|
|
74
76
|
}
|
|
75
77
|
end
|
|
76
78
|
|
|
79
|
+
# Returns attribute mapping this model knows about
|
|
80
|
+
def self.acceptable_attribute_map
|
|
81
|
+
attribute_map
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# Returns all the JSON keys this model knows about
|
|
85
|
+
def self.acceptable_attributes
|
|
86
|
+
acceptable_attribute_map.values
|
|
87
|
+
end
|
|
88
|
+
|
|
77
89
|
# Attribute type mapping.
|
|
78
90
|
def self.openapi_types
|
|
79
91
|
{
|
|
80
|
-
:'optimized_for_code' => :'
|
|
81
|
-
:'quantization' => :'
|
|
82
|
-
:'supports_function_calling' => :'
|
|
83
|
-
:'supports_reasoning' => :'
|
|
84
|
-
:'supports_response_schema' => :'
|
|
85
|
-
:'supports_vision' => :'
|
|
86
|
-
:'supports_web_search' => :'
|
|
87
|
-
:'supports_log_probs' => :'
|
|
92
|
+
:'optimized_for_code' => :'Boolean',
|
|
93
|
+
:'quantization' => :'String',
|
|
94
|
+
:'supports_function_calling' => :'Boolean',
|
|
95
|
+
:'supports_reasoning' => :'Boolean',
|
|
96
|
+
:'supports_response_schema' => :'Boolean',
|
|
97
|
+
:'supports_vision' => :'Boolean',
|
|
98
|
+
:'supports_web_search' => :'Boolean',
|
|
99
|
+
:'supports_log_probs' => :'Boolean'
|
|
88
100
|
}
|
|
89
101
|
end
|
|
90
102
|
|
|
@@ -93,7 +105,7 @@ module VeniceClient
|
|
|
93
105
|
Set.new([
|
|
94
106
|
])
|
|
95
107
|
end
|
|
96
|
-
|
|
108
|
+
|
|
97
109
|
# Initializes the object
|
|
98
110
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
99
111
|
def initialize(attributes = {})
|
|
@@ -102,49 +114,67 @@ module VeniceClient
|
|
|
102
114
|
end
|
|
103
115
|
|
|
104
116
|
# check to see if the attribute exists and convert string to symbol for hash key
|
|
117
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
105
118
|
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
106
|
-
if (!
|
|
107
|
-
fail ArgumentError, "`#{k}` is not a valid attribute in `VeniceClient::ModelResponseModelSpecCapabilities`. Please check the name to make sure it's valid. List of attributes: " +
|
|
119
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
120
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `VeniceClient::ModelResponseModelSpecCapabilities`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
108
121
|
end
|
|
109
122
|
h[k.to_sym] = v
|
|
110
123
|
}
|
|
111
124
|
|
|
112
125
|
if attributes.key?(:'optimized_for_code')
|
|
113
126
|
self.optimized_for_code = attributes[:'optimized_for_code']
|
|
127
|
+
else
|
|
128
|
+
self.optimized_for_code = nil
|
|
114
129
|
end
|
|
115
130
|
|
|
116
131
|
if attributes.key?(:'quantization')
|
|
117
132
|
self.quantization = attributes[:'quantization']
|
|
133
|
+
else
|
|
134
|
+
self.quantization = nil
|
|
118
135
|
end
|
|
119
136
|
|
|
120
137
|
if attributes.key?(:'supports_function_calling')
|
|
121
138
|
self.supports_function_calling = attributes[:'supports_function_calling']
|
|
139
|
+
else
|
|
140
|
+
self.supports_function_calling = nil
|
|
122
141
|
end
|
|
123
142
|
|
|
124
143
|
if attributes.key?(:'supports_reasoning')
|
|
125
144
|
self.supports_reasoning = attributes[:'supports_reasoning']
|
|
145
|
+
else
|
|
146
|
+
self.supports_reasoning = nil
|
|
126
147
|
end
|
|
127
148
|
|
|
128
149
|
if attributes.key?(:'supports_response_schema')
|
|
129
150
|
self.supports_response_schema = attributes[:'supports_response_schema']
|
|
151
|
+
else
|
|
152
|
+
self.supports_response_schema = nil
|
|
130
153
|
end
|
|
131
154
|
|
|
132
155
|
if attributes.key?(:'supports_vision')
|
|
133
156
|
self.supports_vision = attributes[:'supports_vision']
|
|
157
|
+
else
|
|
158
|
+
self.supports_vision = nil
|
|
134
159
|
end
|
|
135
160
|
|
|
136
161
|
if attributes.key?(:'supports_web_search')
|
|
137
162
|
self.supports_web_search = attributes[:'supports_web_search']
|
|
163
|
+
else
|
|
164
|
+
self.supports_web_search = nil
|
|
138
165
|
end
|
|
139
166
|
|
|
140
167
|
if attributes.key?(:'supports_log_probs')
|
|
141
168
|
self.supports_log_probs = attributes[:'supports_log_probs']
|
|
169
|
+
else
|
|
170
|
+
self.supports_log_probs = nil
|
|
142
171
|
end
|
|
143
172
|
end
|
|
144
173
|
|
|
145
174
|
# Show invalid properties with the reasons. Usually used together with valid?
|
|
146
175
|
# @return Array for valid properties with the reasons
|
|
147
176
|
def list_invalid_properties
|
|
177
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
148
178
|
invalid_properties = Array.new
|
|
149
179
|
if @optimized_for_code.nil?
|
|
150
180
|
invalid_properties.push('invalid value for "optimized_for_code", optimized_for_code cannot be nil.')
|
|
@@ -184,9 +214,10 @@ module VeniceClient
|
|
|
184
214
|
# Check to see if the all the properties in the model are valid
|
|
185
215
|
# @return true if the model is valid
|
|
186
216
|
def valid?
|
|
217
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
187
218
|
return false if @optimized_for_code.nil?
|
|
188
219
|
return false if @quantization.nil?
|
|
189
|
-
quantization_validator = EnumAttributeValidator.new('
|
|
220
|
+
quantization_validator = EnumAttributeValidator.new('String', ["fp8", "fp16", "not-available"])
|
|
190
221
|
return false unless quantization_validator.valid?(@quantization)
|
|
191
222
|
return false if @supports_function_calling.nil?
|
|
192
223
|
return false if @supports_reasoning.nil?
|
|
@@ -197,16 +228,86 @@ module VeniceClient
|
|
|
197
228
|
true
|
|
198
229
|
end
|
|
199
230
|
|
|
231
|
+
# Custom attribute writer method with validation
|
|
232
|
+
# @param [Object] optimized_for_code Value to be assigned
|
|
233
|
+
def optimized_for_code=(optimized_for_code)
|
|
234
|
+
if optimized_for_code.nil?
|
|
235
|
+
fail ArgumentError, 'optimized_for_code cannot be nil'
|
|
236
|
+
end
|
|
237
|
+
|
|
238
|
+
@optimized_for_code = optimized_for_code
|
|
239
|
+
end
|
|
240
|
+
|
|
200
241
|
# Custom attribute writer method checking allowed values (enum).
|
|
201
242
|
# @param [Object] quantization Object to be assigned
|
|
202
243
|
def quantization=(quantization)
|
|
203
|
-
validator = EnumAttributeValidator.new('
|
|
244
|
+
validator = EnumAttributeValidator.new('String', ["fp8", "fp16", "not-available"])
|
|
204
245
|
unless validator.valid?(quantization)
|
|
205
246
|
fail ArgumentError, "invalid value for \"quantization\", must be one of #{validator.allowable_values}."
|
|
206
247
|
end
|
|
207
248
|
@quantization = quantization
|
|
208
249
|
end
|
|
209
250
|
|
|
251
|
+
# Custom attribute writer method with validation
|
|
252
|
+
# @param [Object] supports_function_calling Value to be assigned
|
|
253
|
+
def supports_function_calling=(supports_function_calling)
|
|
254
|
+
if supports_function_calling.nil?
|
|
255
|
+
fail ArgumentError, 'supports_function_calling cannot be nil'
|
|
256
|
+
end
|
|
257
|
+
|
|
258
|
+
@supports_function_calling = supports_function_calling
|
|
259
|
+
end
|
|
260
|
+
|
|
261
|
+
# Custom attribute writer method with validation
|
|
262
|
+
# @param [Object] supports_reasoning Value to be assigned
|
|
263
|
+
def supports_reasoning=(supports_reasoning)
|
|
264
|
+
if supports_reasoning.nil?
|
|
265
|
+
fail ArgumentError, 'supports_reasoning cannot be nil'
|
|
266
|
+
end
|
|
267
|
+
|
|
268
|
+
@supports_reasoning = supports_reasoning
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
# Custom attribute writer method with validation
|
|
272
|
+
# @param [Object] supports_response_schema Value to be assigned
|
|
273
|
+
def supports_response_schema=(supports_response_schema)
|
|
274
|
+
if supports_response_schema.nil?
|
|
275
|
+
fail ArgumentError, 'supports_response_schema cannot be nil'
|
|
276
|
+
end
|
|
277
|
+
|
|
278
|
+
@supports_response_schema = supports_response_schema
|
|
279
|
+
end
|
|
280
|
+
|
|
281
|
+
# Custom attribute writer method with validation
|
|
282
|
+
# @param [Object] supports_vision Value to be assigned
|
|
283
|
+
def supports_vision=(supports_vision)
|
|
284
|
+
if supports_vision.nil?
|
|
285
|
+
fail ArgumentError, 'supports_vision cannot be nil'
|
|
286
|
+
end
|
|
287
|
+
|
|
288
|
+
@supports_vision = supports_vision
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
# Custom attribute writer method with validation
|
|
292
|
+
# @param [Object] supports_web_search Value to be assigned
|
|
293
|
+
def supports_web_search=(supports_web_search)
|
|
294
|
+
if supports_web_search.nil?
|
|
295
|
+
fail ArgumentError, 'supports_web_search cannot be nil'
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
@supports_web_search = supports_web_search
|
|
299
|
+
end
|
|
300
|
+
|
|
301
|
+
# Custom attribute writer method with validation
|
|
302
|
+
# @param [Object] supports_log_probs Value to be assigned
|
|
303
|
+
def supports_log_probs=(supports_log_probs)
|
|
304
|
+
if supports_log_probs.nil?
|
|
305
|
+
fail ArgumentError, 'supports_log_probs cannot be nil'
|
|
306
|
+
end
|
|
307
|
+
|
|
308
|
+
@supports_log_probs = supports_log_probs
|
|
309
|
+
end
|
|
310
|
+
|
|
210
311
|
# Checks equality by comparing each attribute.
|
|
211
312
|
# @param [Object] Object to be compared
|
|
212
313
|
def ==(o)
|
|
@@ -238,39 +339,33 @@ module VeniceClient
|
|
|
238
339
|
# @param [Hash] attributes Model attributes in the form of hash
|
|
239
340
|
# @return [Object] Returns the model itself
|
|
240
341
|
def self.build_from_hash(attributes)
|
|
241
|
-
new.build_from_hash(attributes)
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
# Builds the object from hash
|
|
245
|
-
# @param [Hash] attributes Model attributes in the form of hash
|
|
246
|
-
# @return [Object] Returns the model itself
|
|
247
|
-
def build_from_hash(attributes)
|
|
248
342
|
return nil unless attributes.is_a?(Hash)
|
|
249
|
-
|
|
250
|
-
|
|
343
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
344
|
+
transformed_hash = {}
|
|
345
|
+
openapi_types.each_pair do |key, type|
|
|
346
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
347
|
+
transformed_hash["#{key}"] = nil
|
|
348
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
251
349
|
# check to ensure the input is an array given that the attribute
|
|
252
350
|
# is documented as an array but the input is not
|
|
253
|
-
if attributes[
|
|
254
|
-
|
|
351
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
352
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
255
353
|
end
|
|
256
|
-
elsif !attributes[
|
|
257
|
-
|
|
258
|
-
elsif attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
|
|
259
|
-
self.send("#{key}=", nil)
|
|
354
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
355
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
260
356
|
end
|
|
261
357
|
end
|
|
262
|
-
|
|
263
|
-
self
|
|
358
|
+
new(transformed_hash)
|
|
264
359
|
end
|
|
265
360
|
|
|
266
361
|
# Deserializes the data based on type
|
|
267
362
|
# @param string type Data type
|
|
268
363
|
# @param string value Value to be deserialized
|
|
269
364
|
# @return [Object] Deserialized data
|
|
270
|
-
def _deserialize(type, value)
|
|
365
|
+
def self._deserialize(type, value)
|
|
271
366
|
case type.to_sym
|
|
272
|
-
when :
|
|
273
|
-
|
|
367
|
+
when :Time
|
|
368
|
+
Time.parse(value)
|
|
274
369
|
when :Date
|
|
275
370
|
Date.parse(value)
|
|
276
371
|
when :String
|
|
@@ -300,7 +395,9 @@ module VeniceClient
|
|
|
300
395
|
end
|
|
301
396
|
end
|
|
302
397
|
else # model
|
|
303
|
-
|
|
398
|
+
# models (e.g. Pet) or oneOf
|
|
399
|
+
klass = VeniceClient.const_get(type)
|
|
400
|
+
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
|
|
304
401
|
end
|
|
305
402
|
end
|
|
306
403
|
|
|
@@ -348,5 +445,8 @@ module VeniceClient
|
|
|
348
445
|
else
|
|
349
446
|
value
|
|
350
447
|
end
|
|
351
|
-
end
|
|
448
|
+
end
|
|
449
|
+
|
|
450
|
+
end
|
|
451
|
+
|
|
352
452
|
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Venice.ai API
|
|
3
|
+
|
|
4
|
+
#The Venice.ai API.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
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 this model.
|
|
18
|
+
module ModelResponseModelSpecConstraints
|
|
19
|
+
class << self
|
|
20
|
+
# List of class defined in anyOf (OpenAPI v3)
|
|
21
|
+
def openapi_any_of
|
|
22
|
+
[
|
|
23
|
+
:'ImageModelConstraints',
|
|
24
|
+
:'TextModelConstraints'
|
|
25
|
+
]
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Builds the object
|
|
29
|
+
# @param [Mixed] Data to be matched against the list of anyOf items
|
|
30
|
+
# @return [Object] Returns the model or the data itself
|
|
31
|
+
def build(data)
|
|
32
|
+
# Go through the list of anyOf items and attempt to identify the appropriate one.
|
|
33
|
+
# Note:
|
|
34
|
+
# - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
|
|
35
|
+
# due to the way the deserialization is made in the base_object template (it just casts without verifying).
|
|
36
|
+
# - TODO: scalar values are de facto behaving as if they were nullable.
|
|
37
|
+
# - TODO: logging when debugging is set.
|
|
38
|
+
openapi_any_of.each do |klass|
|
|
39
|
+
begin
|
|
40
|
+
next if klass == :AnyType # "nullable: true"
|
|
41
|
+
typed_data = find_and_cast_into_type(klass, data)
|
|
42
|
+
return typed_data if typed_data
|
|
43
|
+
rescue # rescue all errors so we keep iterating even if the current item lookup raises
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
openapi_any_of.include?(:AnyType) ? data : nil
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
SchemaMismatchError = Class.new(StandardError)
|
|
53
|
+
|
|
54
|
+
# Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
|
|
55
|
+
def find_and_cast_into_type(klass, data)
|
|
56
|
+
return if data.nil?
|
|
57
|
+
|
|
58
|
+
case klass.to_s
|
|
59
|
+
when 'Boolean'
|
|
60
|
+
return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
|
|
61
|
+
when 'Float'
|
|
62
|
+
return data if data.instance_of?(Float)
|
|
63
|
+
when 'Integer'
|
|
64
|
+
return data if data.instance_of?(Integer)
|
|
65
|
+
when 'Time'
|
|
66
|
+
return Time.parse(data)
|
|
67
|
+
when 'Date'
|
|
68
|
+
return Date.iso8601(data)
|
|
69
|
+
when 'String'
|
|
70
|
+
return data if data.instance_of?(String)
|
|
71
|
+
when 'Object' # "type: object"
|
|
72
|
+
return data if data.instance_of?(Hash)
|
|
73
|
+
when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
|
|
74
|
+
if data.instance_of?(Array)
|
|
75
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
76
|
+
return data.map { |item| find_and_cast_into_type(sub_type, item) }
|
|
77
|
+
end
|
|
78
|
+
when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
|
|
79
|
+
if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
|
|
80
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
81
|
+
return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
|
|
82
|
+
end
|
|
83
|
+
else # model
|
|
84
|
+
const = VeniceClient.const_get(klass)
|
|
85
|
+
if const
|
|
86
|
+
if const.respond_to?(:openapi_any_of) # nested anyOf model
|
|
87
|
+
model = const.build(data)
|
|
88
|
+
return model if model
|
|
89
|
+
else
|
|
90
|
+
# raise if data contains keys that are not known to the model
|
|
91
|
+
raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
|
|
92
|
+
model = const.build_from_hash(data)
|
|
93
|
+
return model if model
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
raise # if no match by now, raise
|
|
99
|
+
rescue
|
|
100
|
+
raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
end
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Venice.ai API
|
|
3
|
+
|
|
4
|
+
#The Venice.ai API.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
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
|
+
# Pricing details for the model
|
|
18
|
+
module ModelResponseModelSpecPricing
|
|
19
|
+
class << self
|
|
20
|
+
# List of class defined in anyOf (OpenAPI v3)
|
|
21
|
+
def openapi_any_of
|
|
22
|
+
[
|
|
23
|
+
:'AudioModelPricing',
|
|
24
|
+
:'ImageModelPricing',
|
|
25
|
+
:'LLMModelPricing'
|
|
26
|
+
]
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Builds the object
|
|
30
|
+
# @param [Mixed] Data to be matched against the list of anyOf items
|
|
31
|
+
# @return [Object] Returns the model or the data itself
|
|
32
|
+
def build(data)
|
|
33
|
+
# Go through the list of anyOf items and attempt to identify the appropriate one.
|
|
34
|
+
# Note:
|
|
35
|
+
# - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
|
|
36
|
+
# due to the way the deserialization is made in the base_object template (it just casts without verifying).
|
|
37
|
+
# - TODO: scalar values are de facto behaving as if they were nullable.
|
|
38
|
+
# - TODO: logging when debugging is set.
|
|
39
|
+
openapi_any_of.each do |klass|
|
|
40
|
+
begin
|
|
41
|
+
next if klass == :AnyType # "nullable: true"
|
|
42
|
+
typed_data = find_and_cast_into_type(klass, data)
|
|
43
|
+
return typed_data if typed_data
|
|
44
|
+
rescue # rescue all errors so we keep iterating even if the current item lookup raises
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
openapi_any_of.include?(:AnyType) ? data : nil
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
private
|
|
52
|
+
|
|
53
|
+
SchemaMismatchError = Class.new(StandardError)
|
|
54
|
+
|
|
55
|
+
# Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
|
|
56
|
+
def find_and_cast_into_type(klass, data)
|
|
57
|
+
return if data.nil?
|
|
58
|
+
|
|
59
|
+
case klass.to_s
|
|
60
|
+
when 'Boolean'
|
|
61
|
+
return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
|
|
62
|
+
when 'Float'
|
|
63
|
+
return data if data.instance_of?(Float)
|
|
64
|
+
when 'Integer'
|
|
65
|
+
return data if data.instance_of?(Integer)
|
|
66
|
+
when 'Time'
|
|
67
|
+
return Time.parse(data)
|
|
68
|
+
when 'Date'
|
|
69
|
+
return Date.iso8601(data)
|
|
70
|
+
when 'String'
|
|
71
|
+
return data if data.instance_of?(String)
|
|
72
|
+
when 'Object' # "type: object"
|
|
73
|
+
return data if data.instance_of?(Hash)
|
|
74
|
+
when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
|
|
75
|
+
if data.instance_of?(Array)
|
|
76
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
77
|
+
return data.map { |item| find_and_cast_into_type(sub_type, item) }
|
|
78
|
+
end
|
|
79
|
+
when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
|
|
80
|
+
if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
|
|
81
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
82
|
+
return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
|
|
83
|
+
end
|
|
84
|
+
else # model
|
|
85
|
+
const = VeniceClient.const_get(klass)
|
|
86
|
+
if const
|
|
87
|
+
if const.respond_to?(:openapi_any_of) # nested anyOf model
|
|
88
|
+
model = const.build(data)
|
|
89
|
+
return model if model
|
|
90
|
+
else
|
|
91
|
+
# raise if data contains keys that are not known to the model
|
|
92
|
+
raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
|
|
93
|
+
model = const.build_from_hash(data)
|
|
94
|
+
return model if model
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
raise # if no match by now, raise
|
|
100
|
+
rescue
|
|
101
|
+
raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Venice.ai API
|
|
3
|
+
|
|
4
|
+
#The Venice.ai API.
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 20250709.013306
|
|
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
|
+
module ObjectsInner
|
|
18
|
+
class << self
|
|
19
|
+
# List of class defined in oneOf (OpenAPI v3)
|
|
20
|
+
def openapi_one_of
|
|
21
|
+
[
|
|
22
|
+
:'ImageUrl',
|
|
23
|
+
:'Text'
|
|
24
|
+
]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Builds the object
|
|
28
|
+
# @param [Mixed] Data to be matched against the list of oneOf items
|
|
29
|
+
# @return [Object] Returns the model or the data itself
|
|
30
|
+
def build(data)
|
|
31
|
+
# Go through the list of oneOf items and attempt to identify the appropriate one.
|
|
32
|
+
# Note:
|
|
33
|
+
# - We do not attempt to check whether exactly one item matches.
|
|
34
|
+
# - No advanced validation of types in some cases (e.g. "x: { type: string }" will happily match { x: 123 })
|
|
35
|
+
# due to the way the deserialization is made in the base_object template (it just casts without verifying).
|
|
36
|
+
# - TODO: scalar values are de facto behaving as if they were nullable.
|
|
37
|
+
# - TODO: logging when debugging is set.
|
|
38
|
+
openapi_one_of.each do |klass|
|
|
39
|
+
begin
|
|
40
|
+
next if klass == :AnyType # "nullable: true"
|
|
41
|
+
typed_data = find_and_cast_into_type(klass, data)
|
|
42
|
+
return typed_data if typed_data
|
|
43
|
+
rescue # rescue all errors so we keep iterating even if the current item lookup raises
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
openapi_one_of.include?(:AnyType) ? data : nil
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
SchemaMismatchError = Class.new(StandardError)
|
|
53
|
+
|
|
54
|
+
# Note: 'File' is missing here because in the regular case we get the data _after_ a call to JSON.parse.
|
|
55
|
+
def find_and_cast_into_type(klass, data)
|
|
56
|
+
return if data.nil?
|
|
57
|
+
|
|
58
|
+
case klass.to_s
|
|
59
|
+
when 'Boolean'
|
|
60
|
+
return data if data.instance_of?(TrueClass) || data.instance_of?(FalseClass)
|
|
61
|
+
when 'Float'
|
|
62
|
+
return data if data.instance_of?(Float)
|
|
63
|
+
when 'Integer'
|
|
64
|
+
return data if data.instance_of?(Integer)
|
|
65
|
+
when 'Time'
|
|
66
|
+
return Time.parse(data)
|
|
67
|
+
when 'Date'
|
|
68
|
+
return Date.iso8601(data)
|
|
69
|
+
when 'String'
|
|
70
|
+
return data if data.instance_of?(String)
|
|
71
|
+
when 'Object' # "type: object"
|
|
72
|
+
return data if data.instance_of?(Hash)
|
|
73
|
+
when /\AArray<(?<sub_type>.+)>\z/ # "type: array"
|
|
74
|
+
if data.instance_of?(Array)
|
|
75
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
76
|
+
return data.map { |item| find_and_cast_into_type(sub_type, item) }
|
|
77
|
+
end
|
|
78
|
+
when /\AHash<String, (?<sub_type>.+)>\z/ # "type: object" with "additionalProperties: { ... }"
|
|
79
|
+
if data.instance_of?(Hash) && data.keys.all? { |k| k.instance_of?(Symbol) || k.instance_of?(String) }
|
|
80
|
+
sub_type = Regexp.last_match[:sub_type]
|
|
81
|
+
return data.each_with_object({}) { |(k, v), hsh| hsh[k] = find_and_cast_into_type(sub_type, v) }
|
|
82
|
+
end
|
|
83
|
+
else # model
|
|
84
|
+
const = VeniceClient.const_get(klass)
|
|
85
|
+
if const
|
|
86
|
+
if const.respond_to?(:openapi_one_of) # nested oneOf model
|
|
87
|
+
model = const.build(data)
|
|
88
|
+
return model if model
|
|
89
|
+
else
|
|
90
|
+
# raise if data contains keys that are not known to the model
|
|
91
|
+
raise if const.respond_to?(:acceptable_attributes) && !(data.keys - const.acceptable_attributes).empty?
|
|
92
|
+
model = const.build_from_hash(data)
|
|
93
|
+
return model if model
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
raise # if no match by now, raise
|
|
99
|
+
rescue
|
|
100
|
+
raise SchemaMismatchError, "#{data} doesn't match the #{klass} type"
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
end
|