{- 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 -- ** AnyType newtype AnyType = AnyType A.Value deriving (P.Eq, P.Show) instance A.FromJSON AnyType where parseJSON v = pure (AnyType v) instance A.ToJSON AnyType where toJSON (AnyType v) = v instance WH.ToHttpApiData AnyType where toUrlPiece _ = "" toQueryParam _ = "" toHeader _ = "" -- ** 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 -- type Content = Text -- | Construct a value of type 'Content' (by applying it's required fields, if any) mkContent :: Content mkContent = "" -- ** 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