aboutsummaryrefslogtreecommitdiffstats
path: root/lib/G4fClient/Model.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/G4fClient/Model.hs')
-rw-r--r--lib/G4fClient/Model.hs1513
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"