vault-tool-0.0.0.1: src/Network/VaultTool/Types.hs
module Network.VaultTool.Types where
import Control.Exception (Exception)
import Data.Aeson
import Data.ByteString (ByteString)
import Data.Text (Text)
import qualified Data.ByteString.Lazy as BL
import qualified Data.Text.Encoding as T
newtype VaultAddress = VaultAddress { unVaultAddress :: Text }
deriving (Show, Eq, Ord)
newtype VaultUnsealKey = VaultUnsealKey { unVaultUnsealKey :: Text }
deriving (Show, Eq, Ord)
newtype VaultAuthToken = VaultAuthToken { unVaultAuthToken :: ByteString }
deriving (Show, Eq, Ord)
instance FromJSON VaultAuthToken where
parseJSON j = do
text <- parseJSON j
pure (VaultAuthToken (T.encodeUtf8 text))
newtype VaultSecretPath = VaultSecretPath { unVaultSecretPath :: Text }
deriving (Show, Eq, Ord)
data VaultException
= VaultException
| VaultException_InvalidAddress ByteString String
| VaultException_BadStatusCode ByteString String BL.ByteString Int BL.ByteString
| VaultException_ParseBodyError ByteString String BL.ByteString String
deriving (Show, Eq)
instance Exception VaultException