content: {-
     FX Realtime REST API
  
     No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
  
     OpenAPI Version: 3.0.4
     FX Realtime REST API API version: v1
     Contact: support@apibricks.io
     Generated by OpenAPI Generator (https://openapi-generator.tech)
  -}
  
  {-|
  Module : FXRealtimeREST.API.Metadata
  -}
  
  {-# 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 FXRealtimeREST.API.Metadata where
  
  import FXRealtimeREST.Core
  import FXRealtimeREST.MimeTypes
  import FXRealtimeREST.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
  
  
  -- ** Metadata
  
  -- *** v1AssetsAssetIdGet
  
  -- | @GET \/v1\/assets\/{asset_id}@
  -- 
  -- List all assets by asset ID
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1AssetsAssetIdGet
    :: Accept accept -- ^ request accept ('MimeType')
    -> AssetId -- ^ "assetId" -  The asset ID.
    -> FXRealtimeRESTRequest V1AssetsAssetIdGet MimeNoContent [V1Asset] accept
  v1AssetsAssetIdGet  _ (AssetId assetId) =
    _mkRequest "GET" ["/v1/assets/",toPath assetId]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1AssetsAssetIdGet  
  -- | @application/json@
  instance Produces V1AssetsAssetIdGet MimeJSON
  -- | @application/x-msgpack@
  instance Produces V1AssetsAssetIdGet MimeXMsgpack
  -- | @text/json@
  instance Produces V1AssetsAssetIdGet MimeTextJson
  -- | @text/plain@
  instance Produces V1AssetsAssetIdGet MimePlainText
  
  
  -- *** v1AssetsGet
  
  -- | @GET \/v1\/assets@
  -- 
  -- List all assets
  -- 
  -- Retrieves all assets.              :::info Our asset identifiers are aligned with the ISO 4217 currency codes standard only for fiat money (government or law regulated currency). :::              :::info Properties of the output are providing aggregated information from across all symbols related to the specific asset. If you need to calculate your aggregation (e.g., limiting only the particular type of symbols), you should use /v1/symbols endpoint as a data source. :::
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1AssetsGet
    :: Accept accept -- ^ request accept ('MimeType')
    -> FXRealtimeRESTRequest V1AssetsGet MimeNoContent [V1Asset] accept
  v1AssetsGet  _ =
    _mkRequest "GET" ["/v1/assets"]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1AssetsGet  
  
  -- | /Optional Param/ "filter_asset_id" - Comma or semicolon delimited asset identifiers used to filter response. (optional, eg. `BTC;ETH`).
  instance HasOptionalParam V1AssetsGet FilterAssetId where
    applyOptionalParam req (FilterAssetId xs) =
      req `addQuery` toQuery ("filter_asset_id", Just xs)
  -- | @application/json@
  instance Produces V1AssetsGet MimeJSON
  -- | @application/x-msgpack@
  instance Produces V1AssetsGet MimeXMsgpack
  -- | @text/json@
  instance Produces V1AssetsGet MimeTextJson
  -- | @text/plain@
  instance Produces V1AssetsGet MimePlainText
  
  
  -- *** v1AssetsIconsSizeGet
  
  -- | @GET \/v1\/assets\/icons\/{size}@
  -- 
  -- List all asset icons
  -- 
  -- Gets the list of icons (of the given size) for all the assets.
  -- 
  -- AuthMethod: 'AuthApiKeyAPIKey', 'AuthBasicJWT'
  -- 
  v1AssetsIconsSizeGet
    :: Accept accept -- ^ request accept ('MimeType')
    -> Size -- ^ "size" -  The size of the icons.
    -> FXRealtimeRESTRequest V1AssetsIconsSizeGet MimeNoContent [V1Icon] accept
  v1AssetsIconsSizeGet  _ (Size size) =
    _mkRequest "GET" ["/v1/assets/icons/",toPath size]
      `_hasAuthType` (P.Proxy :: P.Proxy AuthApiKeyAPIKey)
      `_hasAuthType` (P.Proxy :: P.Proxy AuthBasicJWT)
  
  data V1AssetsIconsSizeGet  
  -- | @application/json@
  instance Produces V1AssetsIconsSizeGet MimeJSON
  -- | @application/x-msgpack@
  instance Produces V1AssetsIconsSizeGet MimeXMsgpack
  -- | @text/json@
  instance Produces V1AssetsIconsSizeGet MimeTextJson
  -- | @text/plain@
  instance Produces V1AssetsIconsSizeGet MimePlainText
  
  