From 55d42f1dd83b428aa0f1352bc0ea1402b9c2b811 Mon Sep 17 00:00:00 2001 From: tv Date: Sat, 21 Feb 2026 14:18:13 +0100 Subject: generate initial commit Generate haskell-http-client from running g4f v-7.1.4. Server started like this: python -m g4f --port 8080 --debug Code generated like this: openapi-generator-cli generate \ -i http://localhost:8080/openapi.json \ -g haskell-http-client \ --skip-validate-spec \ -o g4f-client \ --additional-properties=cabalPackage=g4f-client,cabalVersion=7.1.4,baseModule=G4fApi --- lib/G4fClient/Model.hs | 1513 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1513 insertions(+) create mode 100644 lib/G4fClient/Model.hs (limited to 'lib/G4fClient/Model.hs') diff --git a/lib/G4fClient/Model.hs b/lib/G4fClient/Model.hs new file mode 100644 index 0000000..70cc4c5 --- /dev/null +++ b/lib/G4fClient/Model.hs @@ -0,0 +1,1513 @@ +{- + FastAPI + + No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + + OpenAPI Version: 3.1.0 + FastAPI API version: 0.1.0 + Generated by OpenAPI Generator (https://openapi-generator.tech) +-} + +{-| +Module : G4fClient.Model +-} + +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE DeriveFoldable #-} +{-# LANGUAGE DeriveGeneric #-} +{-# LANGUAGE DeriveTraversable #-} +{-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE GeneralizedNewtypeDeriving #-} +{-# LANGUAGE LambdaCase #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE NamedFieldPuns #-} +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE TupleSections #-} +{-# LANGUAGE TypeFamilies #-} +{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-} + +module G4fClient.Model where + +import G4fClient.Core +import G4fClient.MimeTypes + +import Data.Aeson ((.:),(.:!),(.:?),(.=)) + +import qualified Control.Arrow as P (left) +import qualified Data.Aeson as A +import qualified Data.ByteString as B +import qualified Data.ByteString.Base64 as B64 +import qualified Data.ByteString.Char8 as BC +import qualified Data.ByteString.Lazy as BL +import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep) +import qualified Data.Foldable as P +import qualified Data.HashMap.Lazy as HM +import qualified Data.Map as Map +import qualified Data.Maybe as P +import qualified Data.Set as Set +import qualified Data.Text as T +import qualified Data.Text.Encoding as T +import qualified Data.Time as TI +import qualified Lens.Micro as L +import qualified Web.FormUrlEncoded as WH +import qualified Web.HttpApiData as WH + +import Control.Applicative ((<|>)) +import Control.Applicative (Alternative) +import Data.Function ((&)) +import Data.Monoid ((<>)) +import Data.Text (Text) +import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor) + +import qualified Prelude as P + + + +-- * Parameter newtypes + + +-- ** ConversationId +newtype ConversationId = ConversationId { unConversationId :: Text } deriving (P.Eq, P.Show) + +-- ** File +newtype File = File { unFile :: FilePath } deriving (P.Eq, P.Show) + +-- ** Filename +newtype Filename = Filename { unFilename :: AnyType } deriving (P.Eq, P.Show) + +-- ** FilenameText +newtype FilenameText = FilenameText { unFilenameText :: Text } deriving (P.Eq, P.Show) + +-- ** Files +newtype Files = Files { unFiles :: [FilePath] } deriving (P.Eq, P.Show) + +-- ** Model +newtype Model = Model { unModel :: Text } deriving (P.Eq, P.Show) + +-- ** ModelName +newtype ModelName = ModelName { unModelName :: Text } deriving (P.Eq, P.Show) + +-- ** PathProvider +newtype PathProvider = PathProvider { unPathProvider :: Text } deriving (P.Eq, P.Show) + +-- ** Prompt +newtype Prompt = Prompt { unPrompt :: Text } deriving (P.Eq, P.Show) + +-- ** Provider +newtype Provider = Provider { unProvider :: Text } deriving (P.Eq, P.Show) + +-- ** Thumbnail +newtype Thumbnail = Thumbnail { unThumbnail :: Bool } deriving (P.Eq, P.Show) + +-- ** XUser +newtype XUser = XUser { unXUser :: Text } deriving (P.Eq, P.Show) + +-- * Models + + +-- ** ApiKey +-- | ApiKey +-- Api Key +-- +data ApiKey = ApiKey + { + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ApiKey +instance A.FromJSON ApiKey where + parseJSON = A.withObject "ApiKey" $ \o -> + pure ApiKey + + +-- | ToJSON ApiKey +instance A.ToJSON ApiKey where + toJSON ApiKey = + _omitNulls + [ + ] + + +-- | Construct a value of type 'ApiKey' (by applying it's required fields, if any) +mkApiKey + :: ApiKey +mkApiKey = + ApiKey + { + } + +-- ** AudioResponseModel +-- | AudioResponseModel +-- AudioResponseModel +-- +data AudioResponseModel = AudioResponseModel + { audioResponseModelData :: !(Text) -- ^ /Required/ "data" + , audioResponseModelTranscript :: !(Maybe Text) -- ^ "transcript" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON AudioResponseModel +instance A.FromJSON AudioResponseModel where + parseJSON = A.withObject "AudioResponseModel" $ \o -> + AudioResponseModel + <$> (o .: "data") + <*> (o .:? "transcript") + +-- | ToJSON AudioResponseModel +instance A.ToJSON AudioResponseModel where + toJSON AudioResponseModel {..} = + _omitNulls + [ "data" .= audioResponseModelData + , "transcript" .= audioResponseModelTranscript + ] + + +-- | Construct a value of type 'AudioResponseModel' (by applying it's required fields, if any) +mkAudioResponseModel + :: Text -- ^ 'audioResponseModelData' + -> AudioResponseModel +mkAudioResponseModel audioResponseModelData = + AudioResponseModel + { audioResponseModelData + , audioResponseModelTranscript = Nothing + } + +-- ** AudioSpeechConfig +-- | AudioSpeechConfig +-- AudioSpeechConfig +-- +data AudioSpeechConfig = AudioSpeechConfig + { audioSpeechConfigInput :: !(Text) -- ^ /Required/ "input" + , audioSpeechConfigModel :: !(Maybe Text) -- ^ "model" + , audioSpeechConfigProvider :: !(Maybe Text) -- ^ "provider" + , audioSpeechConfigVoice :: !(Maybe Text) -- ^ "voice" + , audioSpeechConfigInstrcutions :: !(Maybe Text) -- ^ "instrcutions" + , audioSpeechConfigResponseFormat :: !(Maybe Text) -- ^ "response_format" + , audioSpeechConfigLanguage :: !(Maybe Text) -- ^ "language" + , audioSpeechConfigDownloadMedia :: !(Maybe Bool) -- ^ "download_media" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON AudioSpeechConfig +instance A.FromJSON AudioSpeechConfig where + parseJSON = A.withObject "AudioSpeechConfig" $ \o -> + AudioSpeechConfig + <$> (o .: "input") + <*> (o .:? "model") + <*> (o .:? "provider") + <*> (o .:? "voice") + <*> (o .:? "instrcutions") + <*> (o .:? "response_format") + <*> (o .:? "language") + <*> (o .:? "download_media") + +-- | ToJSON AudioSpeechConfig +instance A.ToJSON AudioSpeechConfig where + toJSON AudioSpeechConfig {..} = + _omitNulls + [ "input" .= audioSpeechConfigInput + , "model" .= audioSpeechConfigModel + , "provider" .= audioSpeechConfigProvider + , "voice" .= audioSpeechConfigVoice + , "instrcutions" .= audioSpeechConfigInstrcutions + , "response_format" .= audioSpeechConfigResponseFormat + , "language" .= audioSpeechConfigLanguage + , "download_media" .= audioSpeechConfigDownloadMedia + ] + + +-- | Construct a value of type 'AudioSpeechConfig' (by applying it's required fields, if any) +mkAudioSpeechConfig + :: Text -- ^ 'audioSpeechConfigInput' + -> AudioSpeechConfig +mkAudioSpeechConfig audioSpeechConfigInput = + AudioSpeechConfig + { audioSpeechConfigInput + , audioSpeechConfigModel = Nothing + , audioSpeechConfigProvider = Nothing + , audioSpeechConfigVoice = Nothing + , audioSpeechConfigInstrcutions = Nothing + , audioSpeechConfigResponseFormat = Nothing + , audioSpeechConfigLanguage = Nothing + , audioSpeechConfigDownloadMedia = Nothing + } + +-- ** ChatCompletion +-- | ChatCompletion +-- ChatCompletion +-- +data ChatCompletion = ChatCompletion + { chatCompletionId :: !(Text) -- ^ /Required/ "id" + , chatCompletionObject :: !(Text) -- ^ /Required/ "object" + , chatCompletionCreated :: !(Int) -- ^ /Required/ "created" + , chatCompletionModel :: !(Text) -- ^ /Required/ "model" + , chatCompletionProvider :: !(Text) -- ^ /Required/ "provider" + , chatCompletionChoices :: !([ChatCompletionChoice]) -- ^ /Required/ "choices" + , chatCompletionUsage :: !(UsageModel) -- ^ /Required/ "usage" + , chatCompletionConversation :: !((Map.Map String AnyType)) -- ^ /Required/ "conversation" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ChatCompletion +instance A.FromJSON ChatCompletion where + parseJSON = A.withObject "ChatCompletion" $ \o -> + ChatCompletion + <$> (o .: "id") + <*> (o .: "object") + <*> (o .: "created") + <*> (o .: "model") + <*> (o .: "provider") + <*> (o .: "choices") + <*> (o .: "usage") + <*> (o .: "conversation") + +-- | ToJSON ChatCompletion +instance A.ToJSON ChatCompletion where + toJSON ChatCompletion {..} = + _omitNulls + [ "id" .= chatCompletionId + , "object" .= chatCompletionObject + , "created" .= chatCompletionCreated + , "model" .= chatCompletionModel + , "provider" .= chatCompletionProvider + , "choices" .= chatCompletionChoices + , "usage" .= chatCompletionUsage + , "conversation" .= chatCompletionConversation + ] + + +-- | Construct a value of type 'ChatCompletion' (by applying it's required fields, if any) +mkChatCompletion + :: Text -- ^ 'chatCompletionId' + -> Text -- ^ 'chatCompletionObject' + -> Int -- ^ 'chatCompletionCreated' + -> Text -- ^ 'chatCompletionModel' + -> Text -- ^ 'chatCompletionProvider' + -> [ChatCompletionChoice] -- ^ 'chatCompletionChoices' + -> UsageModel -- ^ 'chatCompletionUsage' + -> (Map.Map String AnyType) -- ^ 'chatCompletionConversation' + -> ChatCompletion +mkChatCompletion chatCompletionId chatCompletionObject chatCompletionCreated chatCompletionModel chatCompletionProvider chatCompletionChoices chatCompletionUsage chatCompletionConversation = + ChatCompletion + { chatCompletionId + , chatCompletionObject + , chatCompletionCreated + , chatCompletionModel + , chatCompletionProvider + , chatCompletionChoices + , chatCompletionUsage + , chatCompletionConversation + } + +-- ** ChatCompletionChoice +-- | ChatCompletionChoice +-- ChatCompletionChoice +-- +data ChatCompletionChoice = ChatCompletionChoice + { chatCompletionChoiceIndex :: !(Int) -- ^ /Required/ "index" + , chatCompletionChoiceMessage :: !(ChatCompletionMessage) -- ^ /Required/ "message" + , chatCompletionChoiceFinishReason :: !(Text) -- ^ /Required/ "finish_reason" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ChatCompletionChoice +instance A.FromJSON ChatCompletionChoice where + parseJSON = A.withObject "ChatCompletionChoice" $ \o -> + ChatCompletionChoice + <$> (o .: "index") + <*> (o .: "message") + <*> (o .: "finish_reason") + +-- | ToJSON ChatCompletionChoice +instance A.ToJSON ChatCompletionChoice where + toJSON ChatCompletionChoice {..} = + _omitNulls + [ "index" .= chatCompletionChoiceIndex + , "message" .= chatCompletionChoiceMessage + , "finish_reason" .= chatCompletionChoiceFinishReason + ] + + +-- | Construct a value of type 'ChatCompletionChoice' (by applying it's required fields, if any) +mkChatCompletionChoice + :: Int -- ^ 'chatCompletionChoiceIndex' + -> ChatCompletionMessage -- ^ 'chatCompletionChoiceMessage' + -> Text -- ^ 'chatCompletionChoiceFinishReason' + -> ChatCompletionChoice +mkChatCompletionChoice chatCompletionChoiceIndex chatCompletionChoiceMessage chatCompletionChoiceFinishReason = + ChatCompletionChoice + { chatCompletionChoiceIndex + , chatCompletionChoiceMessage + , chatCompletionChoiceFinishReason + } + +-- ** ChatCompletionMessage +-- | ChatCompletionMessage +-- ChatCompletionMessage +-- +data ChatCompletionMessage = ChatCompletionMessage + { chatCompletionMessageRole :: !(Text) -- ^ /Required/ "role" + , chatCompletionMessageContent :: !(Text) -- ^ /Required/ "content" + , chatCompletionMessageReasoning :: !(Maybe Text) -- ^ "reasoning" + , chatCompletionMessageToolCalls :: !(Maybe [ToolCallModel]) -- ^ "tool_calls" + , chatCompletionMessageAudio :: !(Maybe AudioResponseModel) -- ^ "audio" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ChatCompletionMessage +instance A.FromJSON ChatCompletionMessage where + parseJSON = A.withObject "ChatCompletionMessage" $ \o -> + ChatCompletionMessage + <$> (o .: "role") + <*> (o .: "content") + <*> (o .:? "reasoning") + <*> (o .:? "tool_calls") + <*> (o .:? "audio") + +-- | ToJSON ChatCompletionMessage +instance A.ToJSON ChatCompletionMessage where + toJSON ChatCompletionMessage {..} = + _omitNulls + [ "role" .= chatCompletionMessageRole + , "content" .= chatCompletionMessageContent + , "reasoning" .= chatCompletionMessageReasoning + , "tool_calls" .= chatCompletionMessageToolCalls + , "audio" .= chatCompletionMessageAudio + ] + + +-- | Construct a value of type 'ChatCompletionMessage' (by applying it's required fields, if any) +mkChatCompletionMessage + :: Text -- ^ 'chatCompletionMessageRole' + -> Text -- ^ 'chatCompletionMessageContent' + -> ChatCompletionMessage +mkChatCompletionMessage chatCompletionMessageRole chatCompletionMessageContent = + ChatCompletionMessage + { chatCompletionMessageRole + , chatCompletionMessageContent + , chatCompletionMessageReasoning = Nothing + , chatCompletionMessageToolCalls = Nothing + , chatCompletionMessageAudio = Nothing + } + +-- ** ChatCompletionsConfig +-- | ChatCompletionsConfig +-- ChatCompletionsConfig +-- +data ChatCompletionsConfig = ChatCompletionsConfig + { chatCompletionsConfigModel :: !(Maybe Text) -- ^ "model" + , chatCompletionsConfigProvider :: !(Maybe Text) -- ^ "provider" + , chatCompletionsConfigMedia :: !(Maybe [[AnyType]]) -- ^ "media" + , chatCompletionsConfigModalities :: !(Maybe [Text]) -- ^ "modalities" + , chatCompletionsConfigTemperature :: !(Maybe Double) -- ^ "temperature" + , chatCompletionsConfigPresencePenalty :: !(Maybe Double) -- ^ "presence_penalty" + , chatCompletionsConfigFrequencyPenalty :: !(Maybe Double) -- ^ "frequency_penalty" + , chatCompletionsConfigTopP :: !(Maybe Double) -- ^ "top_p" + , chatCompletionsConfigMaxTokens :: !(Maybe Int) -- ^ "max_tokens" + , chatCompletionsConfigStop :: !(Maybe Stop) -- ^ "stop" + , chatCompletionsConfigApiKey :: !(Maybe ApiKey) -- ^ "api_key" + , chatCompletionsConfigBaseUrl :: !(Maybe Text) -- ^ "base_url" + , chatCompletionsConfigWebSearch :: !(Maybe Bool) -- ^ "web_search" + , chatCompletionsConfigProxy :: !(Maybe Text) -- ^ "proxy" + , chatCompletionsConfigConversation :: !(Maybe (Map.Map String AnyType)) -- ^ "conversation" + , chatCompletionsConfigTimeout :: !(Maybe Int) -- ^ "timeout" + , chatCompletionsConfigStreamTimeout :: !(Maybe Int) -- ^ "stream_timeout" + , chatCompletionsConfigToolCalls :: !(Maybe [AnyType]) -- ^ "tool_calls" + , chatCompletionsConfigReasoningEffort :: !(Maybe Text) -- ^ "reasoning_effort" + , chatCompletionsConfigLogitBias :: !(Maybe (Map.Map String AnyType)) -- ^ "logit_bias" + , chatCompletionsConfigAudio :: !(Maybe (Map.Map String AnyType)) -- ^ "audio" + , chatCompletionsConfigResponseFormat :: !(Maybe (Map.Map String AnyType)) -- ^ "response_format" + , chatCompletionsConfigDownloadMedia :: !(Maybe Bool) -- ^ "download_media" + , chatCompletionsConfigRaw :: !(Maybe Bool) -- ^ "raw" + , chatCompletionsConfigExtraBody :: !(Maybe (Map.Map String AnyType)) -- ^ "extra_body" + , chatCompletionsConfigToolEmulation :: !(Maybe Bool) -- ^ "tool_emulation" + , chatCompletionsConfigMessages :: !([Message]) -- ^ /Required/ "messages" + , chatCompletionsConfigStream :: !(Maybe Bool) -- ^ "stream" + , chatCompletionsConfigImage :: !(Maybe Text) -- ^ "image" + , chatCompletionsConfigImageName :: !(Maybe Text) -- ^ "image_name" + , chatCompletionsConfigImages :: !(Maybe [[AnyType]]) -- ^ "images" + , chatCompletionsConfigTools :: !(Maybe [AnyType]) -- ^ "tools" + , chatCompletionsConfigParallelToolCalls :: !(Maybe Bool) -- ^ "parallel_tool_calls" + , chatCompletionsConfigToolChoice :: !(Maybe Text) -- ^ "tool_choice" + , chatCompletionsConfigConversationId :: !(Maybe Text) -- ^ "conversation_id" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ChatCompletionsConfig +instance A.FromJSON ChatCompletionsConfig where + parseJSON = A.withObject "ChatCompletionsConfig" $ \o -> + ChatCompletionsConfig + <$> (o .:? "model") + <*> (o .:? "provider") + <*> (o .:? "media") + <*> (o .:? "modalities") + <*> (o .:? "temperature") + <*> (o .:? "presence_penalty") + <*> (o .:? "frequency_penalty") + <*> (o .:? "top_p") + <*> (o .:? "max_tokens") + <*> (o .:? "stop") + <*> (o .:? "api_key") + <*> (o .:? "base_url") + <*> (o .:? "web_search") + <*> (o .:? "proxy") + <*> (o .:? "conversation") + <*> (o .:? "timeout") + <*> (o .:? "stream_timeout") + <*> (o .:? "tool_calls") + <*> (o .:? "reasoning_effort") + <*> (o .:? "logit_bias") + <*> (o .:? "audio") + <*> (o .:? "response_format") + <*> (o .:? "download_media") + <*> (o .:? "raw") + <*> (o .:? "extra_body") + <*> (o .:? "tool_emulation") + <*> (o .: "messages") + <*> (o .:? "stream") + <*> (o .:? "image") + <*> (o .:? "image_name") + <*> (o .:? "images") + <*> (o .:? "tools") + <*> (o .:? "parallel_tool_calls") + <*> (o .:? "tool_choice") + <*> (o .:? "conversation_id") + +-- | ToJSON ChatCompletionsConfig +instance A.ToJSON ChatCompletionsConfig where + toJSON ChatCompletionsConfig {..} = + _omitNulls + [ "model" .= chatCompletionsConfigModel + , "provider" .= chatCompletionsConfigProvider + , "media" .= chatCompletionsConfigMedia + , "modalities" .= chatCompletionsConfigModalities + , "temperature" .= chatCompletionsConfigTemperature + , "presence_penalty" .= chatCompletionsConfigPresencePenalty + , "frequency_penalty" .= chatCompletionsConfigFrequencyPenalty + , "top_p" .= chatCompletionsConfigTopP + , "max_tokens" .= chatCompletionsConfigMaxTokens + , "stop" .= chatCompletionsConfigStop + , "api_key" .= chatCompletionsConfigApiKey + , "base_url" .= chatCompletionsConfigBaseUrl + , "web_search" .= chatCompletionsConfigWebSearch + , "proxy" .= chatCompletionsConfigProxy + , "conversation" .= chatCompletionsConfigConversation + , "timeout" .= chatCompletionsConfigTimeout + , "stream_timeout" .= chatCompletionsConfigStreamTimeout + , "tool_calls" .= chatCompletionsConfigToolCalls + , "reasoning_effort" .= chatCompletionsConfigReasoningEffort + , "logit_bias" .= chatCompletionsConfigLogitBias + , "audio" .= chatCompletionsConfigAudio + , "response_format" .= chatCompletionsConfigResponseFormat + , "download_media" .= chatCompletionsConfigDownloadMedia + , "raw" .= chatCompletionsConfigRaw + , "extra_body" .= chatCompletionsConfigExtraBody + , "tool_emulation" .= chatCompletionsConfigToolEmulation + , "messages" .= chatCompletionsConfigMessages + , "stream" .= chatCompletionsConfigStream + , "image" .= chatCompletionsConfigImage + , "image_name" .= chatCompletionsConfigImageName + , "images" .= chatCompletionsConfigImages + , "tools" .= chatCompletionsConfigTools + , "parallel_tool_calls" .= chatCompletionsConfigParallelToolCalls + , "tool_choice" .= chatCompletionsConfigToolChoice + , "conversation_id" .= chatCompletionsConfigConversationId + ] + + +-- | Construct a value of type 'ChatCompletionsConfig' (by applying it's required fields, if any) +mkChatCompletionsConfig + :: [Message] -- ^ 'chatCompletionsConfigMessages' + -> ChatCompletionsConfig +mkChatCompletionsConfig chatCompletionsConfigMessages = + ChatCompletionsConfig + { chatCompletionsConfigModel = Nothing + , chatCompletionsConfigProvider = Nothing + , chatCompletionsConfigMedia = Nothing + , chatCompletionsConfigModalities = Nothing + , chatCompletionsConfigTemperature = Nothing + , chatCompletionsConfigPresencePenalty = Nothing + , chatCompletionsConfigFrequencyPenalty = Nothing + , chatCompletionsConfigTopP = Nothing + , chatCompletionsConfigMaxTokens = Nothing + , chatCompletionsConfigStop = Nothing + , chatCompletionsConfigApiKey = Nothing + , chatCompletionsConfigBaseUrl = Nothing + , chatCompletionsConfigWebSearch = Nothing + , chatCompletionsConfigProxy = Nothing + , chatCompletionsConfigConversation = Nothing + , chatCompletionsConfigTimeout = Nothing + , chatCompletionsConfigStreamTimeout = Nothing + , chatCompletionsConfigToolCalls = Nothing + , chatCompletionsConfigReasoningEffort = Nothing + , chatCompletionsConfigLogitBias = Nothing + , chatCompletionsConfigAudio = Nothing + , chatCompletionsConfigResponseFormat = Nothing + , chatCompletionsConfigDownloadMedia = Nothing + , chatCompletionsConfigRaw = Nothing + , chatCompletionsConfigExtraBody = Nothing + , chatCompletionsConfigToolEmulation = Nothing + , chatCompletionsConfigMessages + , chatCompletionsConfigStream = Nothing + , chatCompletionsConfigImage = Nothing + , chatCompletionsConfigImageName = Nothing + , chatCompletionsConfigImages = Nothing + , chatCompletionsConfigTools = Nothing + , chatCompletionsConfigParallelToolCalls = Nothing + , chatCompletionsConfigToolChoice = Nothing + , chatCompletionsConfigConversationId = Nothing + } + +-- ** CompletionTokenDetails +-- | CompletionTokenDetails +-- CompletionTokenDetails +-- +data CompletionTokenDetails = CompletionTokenDetails + { completionTokenDetailsReasoningTokens :: !(Int) -- ^ /Required/ "reasoning_tokens" + , completionTokenDetailsImageTokens :: !(Int) -- ^ /Required/ "image_tokens" + , completionTokenDetailsAudioTokens :: !(Int) -- ^ /Required/ "audio_tokens" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON CompletionTokenDetails +instance A.FromJSON CompletionTokenDetails where + parseJSON = A.withObject "CompletionTokenDetails" $ \o -> + CompletionTokenDetails + <$> (o .: "reasoning_tokens") + <*> (o .: "image_tokens") + <*> (o .: "audio_tokens") + +-- | ToJSON CompletionTokenDetails +instance A.ToJSON CompletionTokenDetails where + toJSON CompletionTokenDetails {..} = + _omitNulls + [ "reasoning_tokens" .= completionTokenDetailsReasoningTokens + , "image_tokens" .= completionTokenDetailsImageTokens + , "audio_tokens" .= completionTokenDetailsAudioTokens + ] + + +-- | Construct a value of type 'CompletionTokenDetails' (by applying it's required fields, if any) +mkCompletionTokenDetails + :: Int -- ^ 'completionTokenDetailsReasoningTokens' + -> Int -- ^ 'completionTokenDetailsImageTokens' + -> Int -- ^ 'completionTokenDetailsAudioTokens' + -> CompletionTokenDetails +mkCompletionTokenDetails completionTokenDetailsReasoningTokens completionTokenDetailsImageTokens completionTokenDetailsAudioTokens = + CompletionTokenDetails + { completionTokenDetailsReasoningTokens + , completionTokenDetailsImageTokens + , completionTokenDetailsAudioTokens + } + +-- ** Content +-- | Content +-- Content +-- +data Content = Content + { + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON Content +instance A.FromJSON Content where + parseJSON = A.withObject "Content" $ \o -> + pure Content + + +-- | ToJSON Content +instance A.ToJSON Content where + toJSON Content = + _omitNulls + [ + ] + + +-- | Construct a value of type 'Content' (by applying it's required fields, if any) +mkContent + :: Content +mkContent = + Content + { + } + +-- ** ContentPart +-- | ContentPart +-- ContentPart +-- +data ContentPart = ContentPart + { contentPartType :: !(Maybe Text) -- ^ "type" + , contentPartText :: !(Maybe Text) -- ^ "text" + , contentPartImageUrl :: !(Maybe (Map.Map String Text)) -- ^ "image_url" + , contentPartInputAudio :: !(Maybe (Map.Map String Text)) -- ^ "input_audio" + , contentPartBucketId :: !(Maybe Text) -- ^ "bucket_id" + , contentPartName :: !(Maybe Text) -- ^ "name" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ContentPart +instance A.FromJSON ContentPart where + parseJSON = A.withObject "ContentPart" $ \o -> + ContentPart + <$> (o .:? "type") + <*> (o .:? "text") + <*> (o .:? "image_url") + <*> (o .:? "input_audio") + <*> (o .:? "bucket_id") + <*> (o .:? "name") + +-- | ToJSON ContentPart +instance A.ToJSON ContentPart where + toJSON ContentPart {..} = + _omitNulls + [ "type" .= contentPartType + , "text" .= contentPartText + , "image_url" .= contentPartImageUrl + , "input_audio" .= contentPartInputAudio + , "bucket_id" .= contentPartBucketId + , "name" .= contentPartName + ] + + +-- | Construct a value of type 'ContentPart' (by applying it's required fields, if any) +mkContentPart + :: ContentPart +mkContentPart = + ContentPart + { contentPartType = Nothing + , contentPartText = Nothing + , contentPartImageUrl = Nothing + , contentPartInputAudio = Nothing + , contentPartBucketId = Nothing + , contentPartName = Nothing + } + +-- ** ErrorResponseMessageModel +-- | ErrorResponseMessageModel +-- ErrorResponseMessageModel +-- +data ErrorResponseMessageModel = ErrorResponseMessageModel + { errorResponseMessageModelMessage :: !(Text) -- ^ /Required/ "message" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ErrorResponseMessageModel +instance A.FromJSON ErrorResponseMessageModel where + parseJSON = A.withObject "ErrorResponseMessageModel" $ \o -> + ErrorResponseMessageModel + <$> (o .: "message") + +-- | ToJSON ErrorResponseMessageModel +instance A.ToJSON ErrorResponseMessageModel where + toJSON ErrorResponseMessageModel {..} = + _omitNulls + [ "message" .= errorResponseMessageModelMessage + ] + + +-- | Construct a value of type 'ErrorResponseMessageModel' (by applying it's required fields, if any) +mkErrorResponseMessageModel + :: Text -- ^ 'errorResponseMessageModelMessage' + -> ErrorResponseMessageModel +mkErrorResponseMessageModel errorResponseMessageModelMessage = + ErrorResponseMessageModel + { errorResponseMessageModelMessage + } + +-- ** ErrorResponseModel +-- | ErrorResponseModel +-- ErrorResponseModel +-- +data ErrorResponseModel = ErrorResponseModel + { errorResponseModelError :: !(ErrorResponseMessageModel) -- ^ /Required/ "error" + , errorResponseModelModel :: !(Maybe Text) -- ^ "model" + , errorResponseModelProvider :: !(Maybe Text) -- ^ "provider" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ErrorResponseModel +instance A.FromJSON ErrorResponseModel where + parseJSON = A.withObject "ErrorResponseModel" $ \o -> + ErrorResponseModel + <$> (o .: "error") + <*> (o .:? "model") + <*> (o .:? "provider") + +-- | ToJSON ErrorResponseModel +instance A.ToJSON ErrorResponseModel where + toJSON ErrorResponseModel {..} = + _omitNulls + [ "error" .= errorResponseModelError + , "model" .= errorResponseModelModel + , "provider" .= errorResponseModelProvider + ] + + +-- | Construct a value of type 'ErrorResponseModel' (by applying it's required fields, if any) +mkErrorResponseModel + :: ErrorResponseMessageModel -- ^ 'errorResponseModelError' + -> ErrorResponseModel +mkErrorResponseModel errorResponseModelError = + ErrorResponseModel + { errorResponseModelError + , errorResponseModelModel = Nothing + , errorResponseModelProvider = Nothing + } + +-- ** FileResponseModel +-- | FileResponseModel +-- FileResponseModel +-- +data FileResponseModel = FileResponseModel + { fileResponseModelFilename :: !(Text) -- ^ /Required/ "filename" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON FileResponseModel +instance A.FromJSON FileResponseModel where + parseJSON = A.withObject "FileResponseModel" $ \o -> + FileResponseModel + <$> (o .: "filename") + +-- | ToJSON FileResponseModel +instance A.ToJSON FileResponseModel where + toJSON FileResponseModel {..} = + _omitNulls + [ "filename" .= fileResponseModelFilename + ] + + +-- | Construct a value of type 'FileResponseModel' (by applying it's required fields, if any) +mkFileResponseModel + :: Text -- ^ 'fileResponseModelFilename' + -> FileResponseModel +mkFileResponseModel fileResponseModelFilename = + FileResponseModel + { fileResponseModelFilename + } + +-- ** HTTPValidationError +-- | HTTPValidationError +-- HTTPValidationError +-- +data HTTPValidationError = HTTPValidationError + { hTTPValidationErrorDetail :: !(Maybe [ValidationError]) -- ^ "detail" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON HTTPValidationError +instance A.FromJSON HTTPValidationError where + parseJSON = A.withObject "HTTPValidationError" $ \o -> + HTTPValidationError + <$> (o .:? "detail") + +-- | ToJSON HTTPValidationError +instance A.ToJSON HTTPValidationError where + toJSON HTTPValidationError {..} = + _omitNulls + [ "detail" .= hTTPValidationErrorDetail + ] + + +-- | Construct a value of type 'HTTPValidationError' (by applying it's required fields, if any) +mkHTTPValidationError + :: HTTPValidationError +mkHTTPValidationError = + HTTPValidationError + { hTTPValidationErrorDetail = Nothing + } + +-- ** Image +-- | Image +-- Image +-- +data Image = Image + { imageUrl :: !(Text) -- ^ /Required/ "url" + , imageB64Json :: !(Text) -- ^ /Required/ "b64_json" + , imageRevisedPrompt :: !(Text) -- ^ /Required/ "revised_prompt" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON Image +instance A.FromJSON Image where + parseJSON = A.withObject "Image" $ \o -> + Image + <$> (o .: "url") + <*> (o .: "b64_json") + <*> (o .: "revised_prompt") + +-- | ToJSON Image +instance A.ToJSON Image where + toJSON Image {..} = + _omitNulls + [ "url" .= imageUrl + , "b64_json" .= imageB64Json + , "revised_prompt" .= imageRevisedPrompt + ] + + +-- | Construct a value of type 'Image' (by applying it's required fields, if any) +mkImage + :: Text -- ^ 'imageUrl' + -> Text -- ^ 'imageB64Json' + -> Text -- ^ 'imageRevisedPrompt' + -> Image +mkImage imageUrl imageB64Json imageRevisedPrompt = + Image + { imageUrl + , imageB64Json + , imageRevisedPrompt + } + +-- ** ImageGenerationConfig +-- | ImageGenerationConfig +-- ImageGenerationConfig +-- +data ImageGenerationConfig = ImageGenerationConfig + { imageGenerationConfigPrompt :: !(Text) -- ^ /Required/ "prompt" + , imageGenerationConfigModel :: !(Maybe Text) -- ^ "model" + , imageGenerationConfigProvider :: !(Maybe Text) -- ^ "provider" + , imageGenerationConfigResponseFormat :: !(Maybe Text) -- ^ "response_format" + , imageGenerationConfigApiKey :: !(Maybe Text) -- ^ "api_key" + , imageGenerationConfigProxy :: !(Maybe Text) -- ^ "proxy" + , imageGenerationConfigWidth :: !(Maybe Int) -- ^ "width" + , imageGenerationConfigHeight :: !(Maybe Int) -- ^ "height" + , imageGenerationConfigNumInferenceSteps :: !(Maybe Int) -- ^ "num_inference_steps" + , imageGenerationConfigSeed :: !(Maybe Int) -- ^ "seed" + , imageGenerationConfigGuidanceScale :: !(Maybe Int) -- ^ "guidance_scale" + , imageGenerationConfigAspectRatio :: !(Maybe Text) -- ^ "aspect_ratio" + , imageGenerationConfigN :: !(Maybe Int) -- ^ "n" + , imageGenerationConfigNegativePrompt :: !(Maybe Text) -- ^ "negative_prompt" + , imageGenerationConfigResolution :: !(Maybe Text) -- ^ "resolution" + , imageGenerationConfigAudio :: !(Maybe (Map.Map String AnyType)) -- ^ "audio" + , imageGenerationConfigDownloadMedia :: !(Maybe Bool) -- ^ "download_media" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ImageGenerationConfig +instance A.FromJSON ImageGenerationConfig where + parseJSON = A.withObject "ImageGenerationConfig" $ \o -> + ImageGenerationConfig + <$> (o .: "prompt") + <*> (o .:? "model") + <*> (o .:? "provider") + <*> (o .:? "response_format") + <*> (o .:? "api_key") + <*> (o .:? "proxy") + <*> (o .:? "width") + <*> (o .:? "height") + <*> (o .:? "num_inference_steps") + <*> (o .:? "seed") + <*> (o .:? "guidance_scale") + <*> (o .:? "aspect_ratio") + <*> (o .:? "n") + <*> (o .:? "negative_prompt") + <*> (o .:? "resolution") + <*> (o .:? "audio") + <*> (o .:? "download_media") + +-- | ToJSON ImageGenerationConfig +instance A.ToJSON ImageGenerationConfig where + toJSON ImageGenerationConfig {..} = + _omitNulls + [ "prompt" .= imageGenerationConfigPrompt + , "model" .= imageGenerationConfigModel + , "provider" .= imageGenerationConfigProvider + , "response_format" .= imageGenerationConfigResponseFormat + , "api_key" .= imageGenerationConfigApiKey + , "proxy" .= imageGenerationConfigProxy + , "width" .= imageGenerationConfigWidth + , "height" .= imageGenerationConfigHeight + , "num_inference_steps" .= imageGenerationConfigNumInferenceSteps + , "seed" .= imageGenerationConfigSeed + , "guidance_scale" .= imageGenerationConfigGuidanceScale + , "aspect_ratio" .= imageGenerationConfigAspectRatio + , "n" .= imageGenerationConfigN + , "negative_prompt" .= imageGenerationConfigNegativePrompt + , "resolution" .= imageGenerationConfigResolution + , "audio" .= imageGenerationConfigAudio + , "download_media" .= imageGenerationConfigDownloadMedia + ] + + +-- | Construct a value of type 'ImageGenerationConfig' (by applying it's required fields, if any) +mkImageGenerationConfig + :: Text -- ^ 'imageGenerationConfigPrompt' + -> ImageGenerationConfig +mkImageGenerationConfig imageGenerationConfigPrompt = + ImageGenerationConfig + { imageGenerationConfigPrompt + , imageGenerationConfigModel = Nothing + , imageGenerationConfigProvider = Nothing + , imageGenerationConfigResponseFormat = Nothing + , imageGenerationConfigApiKey = Nothing + , imageGenerationConfigProxy = Nothing + , imageGenerationConfigWidth = Nothing + , imageGenerationConfigHeight = Nothing + , imageGenerationConfigNumInferenceSteps = Nothing + , imageGenerationConfigSeed = Nothing + , imageGenerationConfigGuidanceScale = Nothing + , imageGenerationConfigAspectRatio = Nothing + , imageGenerationConfigN = Nothing + , imageGenerationConfigNegativePrompt = Nothing + , imageGenerationConfigResolution = Nothing + , imageGenerationConfigAudio = Nothing + , imageGenerationConfigDownloadMedia = Nothing + } + +-- ** ImagesResponse +-- | ImagesResponse +-- ImagesResponse +-- +data ImagesResponse = ImagesResponse + { imagesResponseData :: !([Image]) -- ^ /Required/ "data" + , imagesResponseModel :: !(Text) -- ^ /Required/ "model" + , imagesResponseProvider :: !(Text) -- ^ /Required/ "provider" + , imagesResponseCreated :: !(Int) -- ^ /Required/ "created" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ImagesResponse +instance A.FromJSON ImagesResponse where + parseJSON = A.withObject "ImagesResponse" $ \o -> + ImagesResponse + <$> (o .: "data") + <*> (o .: "model") + <*> (o .: "provider") + <*> (o .: "created") + +-- | ToJSON ImagesResponse +instance A.ToJSON ImagesResponse where + toJSON ImagesResponse {..} = + _omitNulls + [ "data" .= imagesResponseData + , "model" .= imagesResponseModel + , "provider" .= imagesResponseProvider + , "created" .= imagesResponseCreated + ] + + +-- | Construct a value of type 'ImagesResponse' (by applying it's required fields, if any) +mkImagesResponse + :: [Image] -- ^ 'imagesResponseData' + -> Text -- ^ 'imagesResponseModel' + -> Text -- ^ 'imagesResponseProvider' + -> Int -- ^ 'imagesResponseCreated' + -> ImagesResponse +mkImagesResponse imagesResponseData imagesResponseModel imagesResponseProvider imagesResponseCreated = + ImagesResponse + { imagesResponseData + , imagesResponseModel + , imagesResponseProvider + , imagesResponseCreated + } + +-- ** Message +-- | Message +-- Message +-- +data Message = Message + { messageRole :: !(Text) -- ^ /Required/ "role" + , messageContent :: !(Content) -- ^ /Required/ "content" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON Message +instance A.FromJSON Message where + parseJSON = A.withObject "Message" $ \o -> + Message + <$> (o .: "role") + <*> (o .: "content") + +-- | ToJSON Message +instance A.ToJSON Message where + toJSON Message {..} = + _omitNulls + [ "role" .= messageRole + , "content" .= messageContent + ] + + +-- | Construct a value of type 'Message' (by applying it's required fields, if any) +mkMessage + :: Text -- ^ 'messageRole' + -> Content -- ^ 'messageContent' + -> Message +mkMessage messageRole messageContent = + Message + { messageRole + , messageContent + } + +-- ** ModelResponseModel +-- | ModelResponseModel +-- ModelResponseModel +-- +data ModelResponseModel = ModelResponseModel + { modelResponseModelId :: !(Text) -- ^ /Required/ "id" + , modelResponseModelObject :: !(Maybe Text) -- ^ "object" + , modelResponseModelCreated :: !(Int) -- ^ /Required/ "created" + , modelResponseModelOwnedBy :: !(Text) -- ^ /Required/ "owned_by" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ModelResponseModel +instance A.FromJSON ModelResponseModel where + parseJSON = A.withObject "ModelResponseModel" $ \o -> + ModelResponseModel + <$> (o .: "id") + <*> (o .:? "object") + <*> (o .: "created") + <*> (o .: "owned_by") + +-- | ToJSON ModelResponseModel +instance A.ToJSON ModelResponseModel where + toJSON ModelResponseModel {..} = + _omitNulls + [ "id" .= modelResponseModelId + , "object" .= modelResponseModelObject + , "created" .= modelResponseModelCreated + , "owned_by" .= modelResponseModelOwnedBy + ] + + +-- | Construct a value of type 'ModelResponseModel' (by applying it's required fields, if any) +mkModelResponseModel + :: Text -- ^ 'modelResponseModelId' + -> Int -- ^ 'modelResponseModelCreated' + -> Text -- ^ 'modelResponseModelOwnedBy' + -> ModelResponseModel +mkModelResponseModel modelResponseModelId modelResponseModelCreated modelResponseModelOwnedBy = + ModelResponseModel + { modelResponseModelId + , modelResponseModelObject = Nothing + , modelResponseModelCreated + , modelResponseModelOwnedBy + } + +-- ** PromptTokenDetails +-- | PromptTokenDetails +-- PromptTokenDetails +-- +data PromptTokenDetails = PromptTokenDetails + { promptTokenDetailsCachedTokens :: !(Int) -- ^ /Required/ "cached_tokens" + , promptTokenDetailsAudioTokens :: !(Int) -- ^ /Required/ "audio_tokens" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON PromptTokenDetails +instance A.FromJSON PromptTokenDetails where + parseJSON = A.withObject "PromptTokenDetails" $ \o -> + PromptTokenDetails + <$> (o .: "cached_tokens") + <*> (o .: "audio_tokens") + +-- | ToJSON PromptTokenDetails +instance A.ToJSON PromptTokenDetails where + toJSON PromptTokenDetails {..} = + _omitNulls + [ "cached_tokens" .= promptTokenDetailsCachedTokens + , "audio_tokens" .= promptTokenDetailsAudioTokens + ] + + +-- | Construct a value of type 'PromptTokenDetails' (by applying it's required fields, if any) +mkPromptTokenDetails + :: Int -- ^ 'promptTokenDetailsCachedTokens' + -> Int -- ^ 'promptTokenDetailsAudioTokens' + -> PromptTokenDetails +mkPromptTokenDetails promptTokenDetailsCachedTokens promptTokenDetailsAudioTokens = + PromptTokenDetails + { promptTokenDetailsCachedTokens + , promptTokenDetailsAudioTokens + } + +-- ** ProviderResponseDetailModel +-- | ProviderResponseDetailModel +-- ProviderResponseDetailModel +-- +data ProviderResponseDetailModel = ProviderResponseDetailModel + { providerResponseDetailModelId :: !(Text) -- ^ /Required/ "id" + , providerResponseDetailModelObject :: !(Maybe Text) -- ^ "object" + , providerResponseDetailModelCreated :: !(Int) -- ^ /Required/ "created" + , providerResponseDetailModelUrl :: !(Text) -- ^ /Required/ "url" + , providerResponseDetailModelLabel :: !(Text) -- ^ /Required/ "label" + , providerResponseDetailModelModels :: !([Text]) -- ^ /Required/ "models" + , providerResponseDetailModelImageModels :: !([Text]) -- ^ /Required/ "image_models" + , providerResponseDetailModelVisionModels :: !([Text]) -- ^ /Required/ "vision_models" + , providerResponseDetailModelParams :: !([Text]) -- ^ /Required/ "params" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ProviderResponseDetailModel +instance A.FromJSON ProviderResponseDetailModel where + parseJSON = A.withObject "ProviderResponseDetailModel" $ \o -> + ProviderResponseDetailModel + <$> (o .: "id") + <*> (o .:? "object") + <*> (o .: "created") + <*> (o .: "url") + <*> (o .: "label") + <*> (o .: "models") + <*> (o .: "image_models") + <*> (o .: "vision_models") + <*> (o .: "params") + +-- | ToJSON ProviderResponseDetailModel +instance A.ToJSON ProviderResponseDetailModel where + toJSON ProviderResponseDetailModel {..} = + _omitNulls + [ "id" .= providerResponseDetailModelId + , "object" .= providerResponseDetailModelObject + , "created" .= providerResponseDetailModelCreated + , "url" .= providerResponseDetailModelUrl + , "label" .= providerResponseDetailModelLabel + , "models" .= providerResponseDetailModelModels + , "image_models" .= providerResponseDetailModelImageModels + , "vision_models" .= providerResponseDetailModelVisionModels + , "params" .= providerResponseDetailModelParams + ] + + +-- | Construct a value of type 'ProviderResponseDetailModel' (by applying it's required fields, if any) +mkProviderResponseDetailModel + :: Text -- ^ 'providerResponseDetailModelId' + -> Int -- ^ 'providerResponseDetailModelCreated' + -> Text -- ^ 'providerResponseDetailModelUrl' + -> Text -- ^ 'providerResponseDetailModelLabel' + -> [Text] -- ^ 'providerResponseDetailModelModels' + -> [Text] -- ^ 'providerResponseDetailModelImageModels' + -> [Text] -- ^ 'providerResponseDetailModelVisionModels' + -> [Text] -- ^ 'providerResponseDetailModelParams' + -> ProviderResponseDetailModel +mkProviderResponseDetailModel providerResponseDetailModelId providerResponseDetailModelCreated providerResponseDetailModelUrl providerResponseDetailModelLabel providerResponseDetailModelModels providerResponseDetailModelImageModels providerResponseDetailModelVisionModels providerResponseDetailModelParams = + ProviderResponseDetailModel + { providerResponseDetailModelId + , providerResponseDetailModelObject = Nothing + , providerResponseDetailModelCreated + , providerResponseDetailModelUrl + , providerResponseDetailModelLabel + , providerResponseDetailModelModels + , providerResponseDetailModelImageModels + , providerResponseDetailModelVisionModels + , providerResponseDetailModelParams + } + +-- ** ProviderResponseModel +-- | ProviderResponseModel +-- ProviderResponseModel +-- +data ProviderResponseModel = ProviderResponseModel + { providerResponseModelId :: !(Text) -- ^ /Required/ "id" + , providerResponseModelObject :: !(Maybe Text) -- ^ "object" + , providerResponseModelCreated :: !(Int) -- ^ /Required/ "created" + , providerResponseModelUrl :: !(Text) -- ^ /Required/ "url" + , providerResponseModelLabel :: !(Text) -- ^ /Required/ "label" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ProviderResponseModel +instance A.FromJSON ProviderResponseModel where + parseJSON = A.withObject "ProviderResponseModel" $ \o -> + ProviderResponseModel + <$> (o .: "id") + <*> (o .:? "object") + <*> (o .: "created") + <*> (o .: "url") + <*> (o .: "label") + +-- | ToJSON ProviderResponseModel +instance A.ToJSON ProviderResponseModel where + toJSON ProviderResponseModel {..} = + _omitNulls + [ "id" .= providerResponseModelId + , "object" .= providerResponseModelObject + , "created" .= providerResponseModelCreated + , "url" .= providerResponseModelUrl + , "label" .= providerResponseModelLabel + ] + + +-- | Construct a value of type 'ProviderResponseModel' (by applying it's required fields, if any) +mkProviderResponseModel + :: Text -- ^ 'providerResponseModelId' + -> Int -- ^ 'providerResponseModelCreated' + -> Text -- ^ 'providerResponseModelUrl' + -> Text -- ^ 'providerResponseModelLabel' + -> ProviderResponseModel +mkProviderResponseModel providerResponseModelId providerResponseModelCreated providerResponseModelUrl providerResponseModelLabel = + ProviderResponseModel + { providerResponseModelId + , providerResponseModelObject = Nothing + , providerResponseModelCreated + , providerResponseModelUrl + , providerResponseModelLabel + } + +-- ** Stop +-- | Stop +-- Stop +-- +data Stop = Stop + { + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON Stop +instance A.FromJSON Stop where + parseJSON = A.withObject "Stop" $ \o -> + pure Stop + + +-- | ToJSON Stop +instance A.ToJSON Stop where + toJSON Stop = + _omitNulls + [ + ] + + +-- | Construct a value of type 'Stop' (by applying it's required fields, if any) +mkStop + :: Stop +mkStop = + Stop + { + } + +-- ** ToolCallModel +-- | ToolCallModel +-- ToolCallModel +-- +data ToolCallModel = ToolCallModel + { toolCallModelId :: !(Text) -- ^ /Required/ "id" + , toolCallModelType :: !(Text) -- ^ /Required/ "type" + , toolCallModelFunction :: !(ToolFunctionModel) -- ^ /Required/ "function" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ToolCallModel +instance A.FromJSON ToolCallModel where + parseJSON = A.withObject "ToolCallModel" $ \o -> + ToolCallModel + <$> (o .: "id") + <*> (o .: "type") + <*> (o .: "function") + +-- | ToJSON ToolCallModel +instance A.ToJSON ToolCallModel where + toJSON ToolCallModel {..} = + _omitNulls + [ "id" .= toolCallModelId + , "type" .= toolCallModelType + , "function" .= toolCallModelFunction + ] + + +-- | Construct a value of type 'ToolCallModel' (by applying it's required fields, if any) +mkToolCallModel + :: Text -- ^ 'toolCallModelId' + -> Text -- ^ 'toolCallModelType' + -> ToolFunctionModel -- ^ 'toolCallModelFunction' + -> ToolCallModel +mkToolCallModel toolCallModelId toolCallModelType toolCallModelFunction = + ToolCallModel + { toolCallModelId + , toolCallModelType + , toolCallModelFunction + } + +-- ** ToolFunctionModel +-- | ToolFunctionModel +-- ToolFunctionModel +-- +data ToolFunctionModel = ToolFunctionModel + { toolFunctionModelName :: !(Text) -- ^ /Required/ "name" + , toolFunctionModelArguments :: !(Text) -- ^ /Required/ "arguments" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ToolFunctionModel +instance A.FromJSON ToolFunctionModel where + parseJSON = A.withObject "ToolFunctionModel" $ \o -> + ToolFunctionModel + <$> (o .: "name") + <*> (o .: "arguments") + +-- | ToJSON ToolFunctionModel +instance A.ToJSON ToolFunctionModel where + toJSON ToolFunctionModel {..} = + _omitNulls + [ "name" .= toolFunctionModelName + , "arguments" .= toolFunctionModelArguments + ] + + +-- | Construct a value of type 'ToolFunctionModel' (by applying it's required fields, if any) +mkToolFunctionModel + :: Text -- ^ 'toolFunctionModelName' + -> Text -- ^ 'toolFunctionModelArguments' + -> ToolFunctionModel +mkToolFunctionModel toolFunctionModelName toolFunctionModelArguments = + ToolFunctionModel + { toolFunctionModelName + , toolFunctionModelArguments + } + +-- ** TranscriptionResponseModel +-- | TranscriptionResponseModel +-- TranscriptionResponseModel +-- +data TranscriptionResponseModel = TranscriptionResponseModel + { transcriptionResponseModelText :: !(Text) -- ^ /Required/ "text" + , transcriptionResponseModelModel :: !(Text) -- ^ /Required/ "model" + , transcriptionResponseModelProvider :: !(Text) -- ^ /Required/ "provider" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON TranscriptionResponseModel +instance A.FromJSON TranscriptionResponseModel where + parseJSON = A.withObject "TranscriptionResponseModel" $ \o -> + TranscriptionResponseModel + <$> (o .: "text") + <*> (o .: "model") + <*> (o .: "provider") + +-- | ToJSON TranscriptionResponseModel +instance A.ToJSON TranscriptionResponseModel where + toJSON TranscriptionResponseModel {..} = + _omitNulls + [ "text" .= transcriptionResponseModelText + , "model" .= transcriptionResponseModelModel + , "provider" .= transcriptionResponseModelProvider + ] + + +-- | Construct a value of type 'TranscriptionResponseModel' (by applying it's required fields, if any) +mkTranscriptionResponseModel + :: Text -- ^ 'transcriptionResponseModelText' + -> Text -- ^ 'transcriptionResponseModelModel' + -> Text -- ^ 'transcriptionResponseModelProvider' + -> TranscriptionResponseModel +mkTranscriptionResponseModel transcriptionResponseModelText transcriptionResponseModelModel transcriptionResponseModelProvider = + TranscriptionResponseModel + { transcriptionResponseModelText + , transcriptionResponseModelModel + , transcriptionResponseModelProvider + } + +-- ** UsageModel +-- | UsageModel +-- UsageModel +-- +data UsageModel = UsageModel + { usageModelPromptTokens :: !(Int) -- ^ /Required/ "prompt_tokens" + , usageModelCompletionTokens :: !(Int) -- ^ /Required/ "completion_tokens" + , usageModelTotalTokens :: !(Int) -- ^ /Required/ "total_tokens" + , usageModelPromptTokensDetails :: !(PromptTokenDetails) -- ^ /Required/ "prompt_tokens_details" + , usageModelCompletionTokensDetails :: !(CompletionTokenDetails) -- ^ /Required/ "completion_tokens_details" + , usageModelCache :: !(Maybe Text) -- ^ "cache" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON UsageModel +instance A.FromJSON UsageModel where + parseJSON = A.withObject "UsageModel" $ \o -> + UsageModel + <$> (o .: "prompt_tokens") + <*> (o .: "completion_tokens") + <*> (o .: "total_tokens") + <*> (o .: "prompt_tokens_details") + <*> (o .: "completion_tokens_details") + <*> (o .:? "cache") + +-- | ToJSON UsageModel +instance A.ToJSON UsageModel where + toJSON UsageModel {..} = + _omitNulls + [ "prompt_tokens" .= usageModelPromptTokens + , "completion_tokens" .= usageModelCompletionTokens + , "total_tokens" .= usageModelTotalTokens + , "prompt_tokens_details" .= usageModelPromptTokensDetails + , "completion_tokens_details" .= usageModelCompletionTokensDetails + , "cache" .= usageModelCache + ] + + +-- | Construct a value of type 'UsageModel' (by applying it's required fields, if any) +mkUsageModel + :: Int -- ^ 'usageModelPromptTokens' + -> Int -- ^ 'usageModelCompletionTokens' + -> Int -- ^ 'usageModelTotalTokens' + -> PromptTokenDetails -- ^ 'usageModelPromptTokensDetails' + -> CompletionTokenDetails -- ^ 'usageModelCompletionTokensDetails' + -> UsageModel +mkUsageModel usageModelPromptTokens usageModelCompletionTokens usageModelTotalTokens usageModelPromptTokensDetails usageModelCompletionTokensDetails = + UsageModel + { usageModelPromptTokens + , usageModelCompletionTokens + , usageModelTotalTokens + , usageModelPromptTokensDetails + , usageModelCompletionTokensDetails + , usageModelCache = Nothing + } + +-- ** ValidationError +-- | ValidationError +-- ValidationError +-- +data ValidationError = ValidationError + { validationErrorLoc :: !([ValidationErrorLocInner]) -- ^ /Required/ "loc" + , validationErrorMsg :: !(Text) -- ^ /Required/ "msg" + , validationErrorType :: !(Text) -- ^ /Required/ "type" + , validationErrorInput :: !(AnyType) -- ^ /Required/ "input" + , validationErrorCtx :: !(AnyType) -- ^ /Required/ "ctx" + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ValidationError +instance A.FromJSON ValidationError where + parseJSON = A.withObject "ValidationError" $ \o -> + ValidationError + <$> (o .: "loc") + <*> (o .: "msg") + <*> (o .: "type") + <*> (o .: "input") + <*> (o .: "ctx") + +-- | ToJSON ValidationError +instance A.ToJSON ValidationError where + toJSON ValidationError {..} = + _omitNulls + [ "loc" .= validationErrorLoc + , "msg" .= validationErrorMsg + , "type" .= validationErrorType + , "input" .= validationErrorInput + , "ctx" .= validationErrorCtx + ] + + +-- | Construct a value of type 'ValidationError' (by applying it's required fields, if any) +mkValidationError + :: [ValidationErrorLocInner] -- ^ 'validationErrorLoc' + -> Text -- ^ 'validationErrorMsg' + -> Text -- ^ 'validationErrorType' + -> AnyType -- ^ 'validationErrorInput' + -> AnyType -- ^ 'validationErrorCtx' + -> ValidationError +mkValidationError validationErrorLoc validationErrorMsg validationErrorType validationErrorInput validationErrorCtx = + ValidationError + { validationErrorLoc + , validationErrorMsg + , validationErrorType + , validationErrorInput + , validationErrorCtx + } + +-- ** ValidationErrorLocInner +-- | ValidationErrorLocInner +data ValidationErrorLocInner = ValidationErrorLocInner + { + } deriving (P.Show, P.Eq, P.Typeable) + +-- | FromJSON ValidationErrorLocInner +instance A.FromJSON ValidationErrorLocInner where + parseJSON = A.withObject "ValidationErrorLocInner" $ \o -> + pure ValidationErrorLocInner + + +-- | ToJSON ValidationErrorLocInner +instance A.ToJSON ValidationErrorLocInner where + toJSON ValidationErrorLocInner = + _omitNulls + [ + ] + + +-- | Construct a value of type 'ValidationErrorLocInner' (by applying it's required fields, if any) +mkValidationErrorLocInner + :: ValidationErrorLocInner +mkValidationErrorLocInner = + ValidationErrorLocInner + { + } + + + + +-- * Auth Methods + + -- cgit v1.2.3