content: {-
     FinFeedAPI Stock REST API
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.4
     FinFeedAPI Stock REST API API version: v1
     Contact: support@apibricks.io
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : FinFeedAPIStockREST.API.NativeIEX
  -}
  
  {-# 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 FinFeedAPIStockREST.API.NativeIEX where
  
  import FinFeedAPIStockREST.Core
  import FinFeedAPIStockREST.MimeTypes
  import FinFeedAPIStockREST.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
  
  
  -- ** NativeIEX
  
  -- *** v1NativeIexAdminMessagesSymbolGet
  
  -- | @GET \/v1\/native\/iex\/admin\/messages\/{symbol}@
  -- 
  -- Get Admin Messages
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexAdminMessagesSymbolGet
    :: Symbol -- ^ "symbol" -  The symbol identifier
    -> ParamDate -- ^ "date" -  Optional date in format YYYY-MM-DD (defaults to latest available data)
    -> FinFeedAPIStockRESTRequest V1NativeIexAdminMessagesSymbolGet MimeNoContent [AdminAdminMessageModel] MimeJSON
  v1NativeIexAdminMessagesSymbolGet (Symbol symbol) (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/admin/messages/",toPath symbol]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexAdminMessagesSymbolGet  
  -- | @application/json@
  instance Produces V1NativeIexAdminMessagesSymbolGet MimeJSON
  
  
  -- *** v1NativeIexAdminSystemEventGet
  
  -- | @GET \/v1\/native\/iex\/admin\/system-event@
  -- 
  -- Get System Events
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexAdminSystemEventGet
    :: ParamDate -- ^ "date" -  Date in format YYYY-MM-DD
    -> FinFeedAPIStockRESTRequest V1NativeIexAdminSystemEventGet MimeNoContent [AdminSystemEventModel] MimeJSON
  v1NativeIexAdminSystemEventGet (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/admin/system-event"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexAdminSystemEventGet  
  -- | @application/json@
  instance Produces V1NativeIexAdminSystemEventGet MimeJSON
  
  
  -- *** v1NativeIexLevel1QuoteSymbolGet
  
  -- | @GET \/v1\/native\/iex\/level1-quote\/{symbol}@
  -- 
  -- Get Level-1 Quotes
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexLevel1QuoteSymbolGet
    :: Symbol -- ^ "symbol" -  The symbol identifier
    -> ParamDate -- ^ "date" -  Optional date in format YYYY-MM-DD (defaults to latest available data)
    -> FinFeedAPIStockRESTRequest V1NativeIexLevel1QuoteSymbolGet MimeNoContent [Level1QuoteUpdateModel] MimeJSON
  v1NativeIexLevel1QuoteSymbolGet (Symbol symbol) (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/level1-quote/",toPath symbol]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexLevel1QuoteSymbolGet  
  -- | @application/json@
  instance Produces V1NativeIexLevel1QuoteSymbolGet MimeJSON
  
  
  -- *** v1NativeIexLevel2PriceLevelUpdateSymbolGet
  
  -- | @GET \/v1\/native\/iex\/level2-price-level-update\/{symbol}@
  -- 
  -- Get Level-2 Price Level Book
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexLevel2PriceLevelUpdateSymbolGet
    :: Symbol -- ^ "symbol" -  The symbol identifier
    -> ParamDate -- ^ "date" -  Optional date in format YYYY-MM-DD (defaults to latest available data)
    -> FinFeedAPIStockRESTRequest V1NativeIexLevel2PriceLevelUpdateSymbolGet MimeNoContent [Level2PriceLevelUpdateModel] MimeJSON
  v1NativeIexLevel2PriceLevelUpdateSymbolGet (Symbol symbol) (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/level2-price-level-update/",toPath symbol]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexLevel2PriceLevelUpdateSymbolGet  
  -- | @application/json@
  instance Produces V1NativeIexLevel2PriceLevelUpdateSymbolGet MimeJSON
  
  
  -- *** v1NativeIexLevel3OrderBookSymbolGet
  
  -- | @GET \/v1\/native\/iex\/level3-order-book\/{symbol}@
  -- 
  -- Get Level-3 Order Book
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexLevel3OrderBookSymbolGet
    :: Symbol -- ^ "symbol" -  The symbol identifier
    -> ParamDate -- ^ "date" -  Optional date in format YYYY-MM-DD (defaults to latest available data)
    -> FinFeedAPIStockRESTRequest V1NativeIexLevel3OrderBookSymbolGet MimeNoContent [Level3OrderBookModel] MimeJSON
  v1NativeIexLevel3OrderBookSymbolGet (Symbol symbol) (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/level3-order-book/",toPath symbol]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexLevel3OrderBookSymbolGet  
  -- | @application/json@
  instance Produces V1NativeIexLevel3OrderBookSymbolGet MimeJSON
  
  
  -- *** v1NativeIexTradeSymbolGet
  
  -- | @GET \/v1\/native\/iex\/trade\/{symbol}@
  -- 
  -- Get Trades
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1NativeIexTradeSymbolGet
    :: Symbol -- ^ "symbol" -  The symbol identifier
    -> ParamDate -- ^ "date" -  Optional date in format YYYY-MM-DD (defaults to latest available data)
    -> FinFeedAPIStockRESTRequest V1NativeIexTradeSymbolGet MimeNoContent [TradeTradeModel] MimeJSON
  v1NativeIexTradeSymbolGet (Symbol symbol) (ParamDate date) =
    _mkRequest "GET" ["/v1/native/iex/trade/",toPath symbol]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
      `addQuery` toQuery ("date", Just date)
  
  data V1NativeIexTradeSymbolGet  
  -- | @application/json@
  instance Produces V1NativeIexTradeSymbolGet MimeJSON
  
  