content: {-
     CoinAPI Market Data REST API
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.4
     CoinAPI Market Data REST API API version: v1
     Contact: support@apibricks.io
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : CoinAPIMarketDataREST.API.OrderBookL3
  -}
  
  {-# LANGUAGE FlexibleContexts #-}
  {-# LANGUAGE FlexibleInstances #-}
  {-# LANGUAGE MonoLocalBinds #-}
  {-# LANGUAGE MultiParamTypeClasses #-}
  {-# LANGUAGE OverloadedStrings #-}
  {-# OPTIONS_GHC -fno-warn-name-shadowing -fno-warn-unused-binds -fno-warn-unused-imports #-}
  
  module CoinAPIMarketDataREST.API.OrderBookL3 where
  
  import CoinAPIMarketDataREST.Core
  import CoinAPIMarketDataREST.MimeTypes
  import CoinAPIMarketDataREST.Model as M
  
  import qualified Data.Aeson as A
  import qualified Data.ByteString as B
  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.Map as Map
  import qualified Data.Maybe as P
  import qualified Data.Proxy as P (Proxy(..))
  import qualified Data.Set as Set
  import qualified Data.String as P
  import qualified Data.Text as T
  import qualified Data.Text.Encoding as T
  import qualified Data.Text.Lazy as TL
  import qualified Data.Text.Lazy.Encoding as TL
  import qualified Data.Time as TI
  import qualified Network.HTTP.Client.MultipartFormData as NH
  import qualified Network.HTTP.Media as ME
  import qualified Network.HTTP.Types as NH
  import qualified Web.FormUrlEncoded as WH
  import qualified Web.HttpApiData as WH
  
  import Data.Text (Text)
  import GHC.Base ((<|>))
  
  import Prelude ((==),(/=),($), (.),(<$>),(<*>),(>>=),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)
  import qualified Prelude as P
  
  -- * Operations
  
  
  -- ** OrderBookL3
  
  -- *** v1Orderbooks3CurrentGet
  
  -- | @GET \/v1\/orderbooks3\/current@
  -- 
  -- Current order books
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1Orderbooks3CurrentGet
    :: Accept accept -- ^ request accept ('MimeType')
    -> CoinAPIMarketDataRESTRequest V1Orderbooks3CurrentGet MimeNoContent [V1OrderBookBase] accept
  v1Orderbooks3CurrentGet  _ =
    _mkRequest "GET" ["/v1/orderbooks3/current"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1Orderbooks3CurrentGet  
  
  -- | /Optional Param/ "filter_symbol_id" - Comma or semicolon delimited parts of symbol identifier used to filter the response.
  instance HasOptionalParam V1Orderbooks3CurrentGet FilterSymbolId where
    applyOptionalParam req (FilterSymbolId xs) =
      req `addQuery` toQuery ("filter_symbol_id", Just xs)
  
  -- | /Optional Param/ "limit_levels" - The maximum number of levels to include in the response.
  instance HasOptionalParam V1Orderbooks3CurrentGet LimitLevels where
    applyOptionalParam req (LimitLevels xs) =
      req `addQuery` toQuery ("limit_levels", Just xs)
  -- | @application/json@
  instance Produces V1Orderbooks3CurrentGet MimeJSON
  -- | @application/x-msgpack@
  instance Produces V1Orderbooks3CurrentGet MimeXMsgpack
  -- | @text/json@
  instance Produces V1Orderbooks3CurrentGet MimeTextJson
  -- | @text/plain@
  instance Produces V1Orderbooks3CurrentGet MimePlainText
  
  
  -- *** v1Orderbooks3SymbolIdCurrentGet
  
  -- | @GET \/v1\/orderbooks3\/{symbol_id}\/current@
  -- 
  -- Current order book by symbol_id
  -- 
  -- Retrieves the current order book for the specified symbol.
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1Orderbooks3SymbolIdCurrentGet
    :: Accept accept -- ^ request accept ('MimeType')
    -> SymbolId -- ^ "symbolId" -  The symbol ID (from the Metadata -> Symbols)
    -> CoinAPIMarketDataRESTRequest V1Orderbooks3SymbolIdCurrentGet MimeNoContent V1OrderBookBase accept
  v1Orderbooks3SymbolIdCurrentGet  _ (SymbolId symbolId) =
    _mkRequest "GET" ["/v1/orderbooks3/",toPath symbolId,"/current"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1Orderbooks3SymbolIdCurrentGet  
  
  -- | /Optional Param/ "limit_levels" - The maximum number of levels to include in the response.
  instance HasOptionalParam V1Orderbooks3SymbolIdCurrentGet LimitLevels where
    applyOptionalParam req (LimitLevels xs) =
      req `addQuery` toQuery ("limit_levels", Just xs)
  -- | @application/json@
  instance Produces V1Orderbooks3SymbolIdCurrentGet MimeJSON
  -- | @application/x-msgpack@
  instance Produces V1Orderbooks3SymbolIdCurrentGet MimeXMsgpack
  -- | @text/json@
  instance Produces V1Orderbooks3SymbolIdCurrentGet MimeTextJson
  -- | @text/plain@
  instance Produces V1Orderbooks3SymbolIdCurrentGet MimePlainText
  
  