module CoinbasePro.Authenticated.Headers ( CBAccessKey(..) , CBAccessSign(..) , CBAccessTimeStamp(..) , CBAccessPassphrase(..) ) where import Data.Aeson (ToJSON (..), Value (String)) import qualified Data.Aeson as A import Data.ByteString (ByteString) import Data.Text (Text) import Data.Text.Encoding (decodeUtf8) import Web.HttpApiData (ToHttpApiData (..)) newtype CBAccessKey = CBAccessKey Text deriving (CBAccessKey -> CBAccessKey -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CBAccessKey -> CBAccessKey -> Bool $c/= :: CBAccessKey -> CBAccessKey -> Bool == :: CBAccessKey -> CBAccessKey -> Bool $c== :: CBAccessKey -> CBAccessKey -> Bool Eq, Int -> CBAccessKey -> ShowS [CBAccessKey] -> ShowS CBAccessKey -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CBAccessKey] -> ShowS $cshowList :: [CBAccessKey] -> ShowS show :: CBAccessKey -> String $cshow :: CBAccessKey -> String showsPrec :: Int -> CBAccessKey -> ShowS $cshowsPrec :: Int -> CBAccessKey -> ShowS Show) instance ToHttpApiData CBAccessKey where toUrlPiece :: CBAccessKey -> Text toUrlPiece (CBAccessKey Text k) = Text k toQueryParam :: CBAccessKey -> Text toQueryParam (CBAccessKey Text k) = Text k instance ToJSON CBAccessKey where toJSON :: CBAccessKey -> Value toJSON (CBAccessKey Text k) = Text -> Value A.String Text k newtype CBAccessSign = CBAccessSign ByteString deriving (CBAccessSign -> CBAccessSign -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CBAccessSign -> CBAccessSign -> Bool $c/= :: CBAccessSign -> CBAccessSign -> Bool == :: CBAccessSign -> CBAccessSign -> Bool $c== :: CBAccessSign -> CBAccessSign -> Bool Eq, Int -> CBAccessSign -> ShowS [CBAccessSign] -> ShowS CBAccessSign -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CBAccessSign] -> ShowS $cshowList :: [CBAccessSign] -> ShowS show :: CBAccessSign -> String $cshow :: CBAccessSign -> String showsPrec :: Int -> CBAccessSign -> ShowS $cshowsPrec :: Int -> CBAccessSign -> ShowS Show) instance ToHttpApiData CBAccessSign where toUrlPiece :: CBAccessSign -> Text toUrlPiece (CBAccessSign ByteString s) = ByteString -> Text decodeUtf8 ByteString s toQueryParam :: CBAccessSign -> Text toQueryParam (CBAccessSign ByteString s) = ByteString -> Text decodeUtf8 ByteString s instance ToJSON CBAccessSign where toJSON :: CBAccessSign -> Value toJSON (CBAccessSign ByteString s) = Text -> Value A.String forall a b. (a -> b) -> a -> b $ ByteString -> Text decodeUtf8 ByteString s newtype CBAccessTimeStamp = CBAccessTimeStamp Text deriving (CBAccessTimeStamp -> CBAccessTimeStamp -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CBAccessTimeStamp -> CBAccessTimeStamp -> Bool $c/= :: CBAccessTimeStamp -> CBAccessTimeStamp -> Bool == :: CBAccessTimeStamp -> CBAccessTimeStamp -> Bool $c== :: CBAccessTimeStamp -> CBAccessTimeStamp -> Bool Eq, Int -> CBAccessTimeStamp -> ShowS [CBAccessTimeStamp] -> ShowS CBAccessTimeStamp -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CBAccessTimeStamp] -> ShowS $cshowList :: [CBAccessTimeStamp] -> ShowS show :: CBAccessTimeStamp -> String $cshow :: CBAccessTimeStamp -> String showsPrec :: Int -> CBAccessTimeStamp -> ShowS $cshowsPrec :: Int -> CBAccessTimeStamp -> ShowS Show) instance ToHttpApiData CBAccessTimeStamp where toUrlPiece :: CBAccessTimeStamp -> Text toUrlPiece (CBAccessTimeStamp Text ts) = Text ts toQueryParam :: CBAccessTimeStamp -> Text toQueryParam (CBAccessTimeStamp Text ts) = Text ts instance ToJSON CBAccessTimeStamp where toJSON :: CBAccessTimeStamp -> Value toJSON (CBAccessTimeStamp Text ts) = Text -> Value String Text ts newtype CBAccessPassphrase = CBAccessPassphrase Text deriving (CBAccessPassphrase -> CBAccessPassphrase -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CBAccessPassphrase -> CBAccessPassphrase -> Bool $c/= :: CBAccessPassphrase -> CBAccessPassphrase -> Bool == :: CBAccessPassphrase -> CBAccessPassphrase -> Bool $c== :: CBAccessPassphrase -> CBAccessPassphrase -> Bool Eq, Int -> CBAccessPassphrase -> ShowS [CBAccessPassphrase] -> ShowS CBAccessPassphrase -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [CBAccessPassphrase] -> ShowS $cshowList :: [CBAccessPassphrase] -> ShowS show :: CBAccessPassphrase -> String $cshow :: CBAccessPassphrase -> String showsPrec :: Int -> CBAccessPassphrase -> ShowS $cshowsPrec :: Int -> CBAccessPassphrase -> ShowS Show) instance ToJSON CBAccessPassphrase where toJSON :: CBAccessPassphrase -> Value toJSON (CBAccessPassphrase Text p) = Text -> Value A.String Text p instance ToHttpApiData CBAccessPassphrase where toUrlPiece :: CBAccessPassphrase -> Text toUrlPiece (CBAccessPassphrase Text p) = Text p toQueryParam :: CBAccessPassphrase -> Text toQueryParam (CBAccessPassphrase Text p) = Text p