module Network.Hawk.Client.Types where
import Data.Text (Text)
import Data.ByteString (ByteString)
import Data.Time.Clock.POSIX (POSIXTime)
import GHC.Generics
import Network.HTTP.Types.Method (Method)
import Network.Hawk.Common
import Network.Hawk.Types
data Credentials = Credentials
{ ccId :: ClientId
, ccKey :: Key
, ccAlgorithm :: HawkAlgo
} deriving (Show, Generic)
data HeaderArtifacts = HeaderArtifacts
{ chaTimestamp :: POSIXTime
, chaNonce :: ByteString
, chaMethod :: Method
, chaHost :: ByteString
, chaPort :: Maybe Int
, chaResource :: ByteString
, chaHash :: Maybe ByteString
, chaExt :: Maybe ByteString
, chaApp :: Maybe Text
, chaDlg :: Maybe Text
} deriving Show
data Header = Header
{ hdrField :: Authorization
, hdrArtifacts :: HeaderArtifacts
} deriving (Show, Generic)
data SplitURL = SplitURL
{ urlHost :: ByteString
, urlPort :: Maybe Int
, urlPath :: ByteString
} deriving (Show, Generic)