diff options
Diffstat (limited to 'lib/G4fClient/Model.hs')
| -rw-r--r-- | lib/G4fClient/Model.hs | 1513 |
1 files changed, 1513 insertions, 0 deletions
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" |
