{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE OverloadedStrings #-}
module SDJWT.Internal.Issuance.Types
( ProcessConfig(..)
, PathProcessConfig(..)
, ObjectPathConfig(..)
, ArrayPathConfig(..)
, TopLevelClaimsConfig(..)
, TopLevelClaimsResult(..)
, CreateSDJWTConfig(..)
, CreateSDJWTWithDecoysConfig(..)
, BuildSDJWTPayloadConfig(..)
, BuildSDJWTPayloadResult(..)
) where
import SDJWT.Internal.Types (HashAlgorithm, Digest(..), EncodedDisclosure(..))
import qualified Data.Aeson as Aeson
import qualified Data.Aeson.KeyMap as KeyMap
import qualified Data.Vector as V
import qualified Data.Text as T
import qualified Data.Set as Set
data ProcessConfig = ProcessConfig
{ ProcessConfig -> HashAlgorithm
processHashAlg :: HashAlgorithm
, ProcessConfig -> [[Text]]
processPaths :: [[T.Text]]
, ProcessConfig -> Object
processClaims :: Aeson.Object
}
deriving stock (ProcessConfig -> ProcessConfig -> Bool
(ProcessConfig -> ProcessConfig -> Bool)
-> (ProcessConfig -> ProcessConfig -> Bool) -> Eq ProcessConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ProcessConfig -> ProcessConfig -> Bool
== :: ProcessConfig -> ProcessConfig -> Bool
$c/= :: ProcessConfig -> ProcessConfig -> Bool
/= :: ProcessConfig -> ProcessConfig -> Bool
Eq, Int -> ProcessConfig -> ShowS
[ProcessConfig] -> ShowS
ProcessConfig -> String
(Int -> ProcessConfig -> ShowS)
-> (ProcessConfig -> String)
-> ([ProcessConfig] -> ShowS)
-> Show ProcessConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ProcessConfig -> ShowS
showsPrec :: Int -> ProcessConfig -> ShowS
$cshow :: ProcessConfig -> String
show :: ProcessConfig -> String
$cshowList :: [ProcessConfig] -> ShowS
showList :: [ProcessConfig] -> ShowS
Show)
data PathProcessConfig = PathProcessConfig
{ PathProcessConfig -> HashAlgorithm
pathHashAlg :: HashAlgorithm
, PathProcessConfig -> [[Text]]
pathSegments :: [[T.Text]]
, PathProcessConfig -> Value
pathValue :: Aeson.Value
}
deriving stock (PathProcessConfig -> PathProcessConfig -> Bool
(PathProcessConfig -> PathProcessConfig -> Bool)
-> (PathProcessConfig -> PathProcessConfig -> Bool)
-> Eq PathProcessConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PathProcessConfig -> PathProcessConfig -> Bool
== :: PathProcessConfig -> PathProcessConfig -> Bool
$c/= :: PathProcessConfig -> PathProcessConfig -> Bool
/= :: PathProcessConfig -> PathProcessConfig -> Bool
Eq, Int -> PathProcessConfig -> ShowS
[PathProcessConfig] -> ShowS
PathProcessConfig -> String
(Int -> PathProcessConfig -> ShowS)
-> (PathProcessConfig -> String)
-> ([PathProcessConfig] -> ShowS)
-> Show PathProcessConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> PathProcessConfig -> ShowS
showsPrec :: Int -> PathProcessConfig -> ShowS
$cshow :: PathProcessConfig -> String
show :: PathProcessConfig -> String
$cshowList :: [PathProcessConfig] -> ShowS
showList :: [PathProcessConfig] -> ShowS
Show)
data ObjectPathConfig = ObjectPathConfig
{ ObjectPathConfig -> HashAlgorithm
objHashAlg :: HashAlgorithm
, ObjectPathConfig -> [[Text]]
objPaths :: [[T.Text]]
, ObjectPathConfig -> Object
objObject :: KeyMap.KeyMap Aeson.Value
}
deriving stock (ObjectPathConfig -> ObjectPathConfig -> Bool
(ObjectPathConfig -> ObjectPathConfig -> Bool)
-> (ObjectPathConfig -> ObjectPathConfig -> Bool)
-> Eq ObjectPathConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ObjectPathConfig -> ObjectPathConfig -> Bool
== :: ObjectPathConfig -> ObjectPathConfig -> Bool
$c/= :: ObjectPathConfig -> ObjectPathConfig -> Bool
/= :: ObjectPathConfig -> ObjectPathConfig -> Bool
Eq, Int -> ObjectPathConfig -> ShowS
[ObjectPathConfig] -> ShowS
ObjectPathConfig -> String
(Int -> ObjectPathConfig -> ShowS)
-> (ObjectPathConfig -> String)
-> ([ObjectPathConfig] -> ShowS)
-> Show ObjectPathConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ObjectPathConfig -> ShowS
showsPrec :: Int -> ObjectPathConfig -> ShowS
$cshow :: ObjectPathConfig -> String
show :: ObjectPathConfig -> String
$cshowList :: [ObjectPathConfig] -> ShowS
showList :: [ObjectPathConfig] -> ShowS
Show)
data ArrayPathConfig = ArrayPathConfig
{ ArrayPathConfig -> HashAlgorithm
arrHashAlg :: HashAlgorithm
, ArrayPathConfig -> [[Text]]
arrPaths :: [[T.Text]]
, ArrayPathConfig -> Vector Value
arrArray :: V.Vector Aeson.Value
}
deriving stock (ArrayPathConfig -> ArrayPathConfig -> Bool
(ArrayPathConfig -> ArrayPathConfig -> Bool)
-> (ArrayPathConfig -> ArrayPathConfig -> Bool)
-> Eq ArrayPathConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ArrayPathConfig -> ArrayPathConfig -> Bool
== :: ArrayPathConfig -> ArrayPathConfig -> Bool
$c/= :: ArrayPathConfig -> ArrayPathConfig -> Bool
/= :: ArrayPathConfig -> ArrayPathConfig -> Bool
Eq, Int -> ArrayPathConfig -> ShowS
[ArrayPathConfig] -> ShowS
ArrayPathConfig -> String
(Int -> ArrayPathConfig -> ShowS)
-> (ArrayPathConfig -> String)
-> ([ArrayPathConfig] -> ShowS)
-> Show ArrayPathConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ArrayPathConfig -> ShowS
showsPrec :: Int -> ArrayPathConfig -> ShowS
$cshow :: ArrayPathConfig -> String
show :: ArrayPathConfig -> String
$cshowList :: [ArrayPathConfig] -> ShowS
showList :: [ArrayPathConfig] -> ShowS
Show)
data TopLevelClaimsConfig = TopLevelClaimsConfig
{ TopLevelClaimsConfig -> HashAlgorithm
topLevelHashAlg :: HashAlgorithm
, TopLevelClaimsConfig -> Set Text
topLevelRecursiveParents :: Set.Set T.Text
, TopLevelClaimsConfig -> [Text]
topLevelClaimNames :: [T.Text]
, TopLevelClaimsConfig -> Object
topLevelRemainingClaims :: Aeson.Object
}
deriving stock (TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool
(TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool)
-> (TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool)
-> Eq TopLevelClaimsConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool
== :: TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool
$c/= :: TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool
/= :: TopLevelClaimsConfig -> TopLevelClaimsConfig -> Bool
Eq, Int -> TopLevelClaimsConfig -> ShowS
[TopLevelClaimsConfig] -> ShowS
TopLevelClaimsConfig -> String
(Int -> TopLevelClaimsConfig -> ShowS)
-> (TopLevelClaimsConfig -> String)
-> ([TopLevelClaimsConfig] -> ShowS)
-> Show TopLevelClaimsConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TopLevelClaimsConfig -> ShowS
showsPrec :: Int -> TopLevelClaimsConfig -> ShowS
$cshow :: TopLevelClaimsConfig -> String
show :: TopLevelClaimsConfig -> String
$cshowList :: [TopLevelClaimsConfig] -> ShowS
showList :: [TopLevelClaimsConfig] -> ShowS
Show)
data TopLevelClaimsResult = TopLevelClaimsResult
{ TopLevelClaimsResult -> [Digest]
resultDigests :: [Digest]
, TopLevelClaimsResult -> [EncodedDisclosure]
resultDisclosures :: [EncodedDisclosure]
, TopLevelClaimsResult -> Object
resultRegularClaims :: Aeson.Object
}
deriving stock (TopLevelClaimsResult -> TopLevelClaimsResult -> Bool
(TopLevelClaimsResult -> TopLevelClaimsResult -> Bool)
-> (TopLevelClaimsResult -> TopLevelClaimsResult -> Bool)
-> Eq TopLevelClaimsResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: TopLevelClaimsResult -> TopLevelClaimsResult -> Bool
== :: TopLevelClaimsResult -> TopLevelClaimsResult -> Bool
$c/= :: TopLevelClaimsResult -> TopLevelClaimsResult -> Bool
/= :: TopLevelClaimsResult -> TopLevelClaimsResult -> Bool
Eq, Int -> TopLevelClaimsResult -> ShowS
[TopLevelClaimsResult] -> ShowS
TopLevelClaimsResult -> String
(Int -> TopLevelClaimsResult -> ShowS)
-> (TopLevelClaimsResult -> String)
-> ([TopLevelClaimsResult] -> ShowS)
-> Show TopLevelClaimsResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> TopLevelClaimsResult -> ShowS
showsPrec :: Int -> TopLevelClaimsResult -> ShowS
$cshow :: TopLevelClaimsResult -> String
show :: TopLevelClaimsResult -> String
$cshowList :: [TopLevelClaimsResult] -> ShowS
showList :: [TopLevelClaimsResult] -> ShowS
Show)
data CreateSDJWTConfig jwk = CreateSDJWTConfig
{ forall jwk. CreateSDJWTConfig jwk -> Maybe Text
createTyp :: Maybe T.Text
, forall jwk. CreateSDJWTConfig jwk -> Maybe Text
createKid :: Maybe T.Text
, forall jwk. CreateSDJWTConfig jwk -> HashAlgorithm
createHashAlg :: HashAlgorithm
, forall jwk. CreateSDJWTConfig jwk -> jwk
createIssuerKey :: jwk
, forall jwk. CreateSDJWTConfig jwk -> [Text]
createSelectiveClaimNames :: [T.Text]
, forall jwk. CreateSDJWTConfig jwk -> Object
createClaims :: Aeson.Object
}
deriving stock (CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
(CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool)
-> (CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool)
-> Eq (CreateSDJWTConfig jwk)
forall jwk.
Eq jwk =>
CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall jwk.
Eq jwk =>
CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
== :: CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
$c/= :: forall jwk.
Eq jwk =>
CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
/= :: CreateSDJWTConfig jwk -> CreateSDJWTConfig jwk -> Bool
Eq, Int -> CreateSDJWTConfig jwk -> ShowS
[CreateSDJWTConfig jwk] -> ShowS
CreateSDJWTConfig jwk -> String
(Int -> CreateSDJWTConfig jwk -> ShowS)
-> (CreateSDJWTConfig jwk -> String)
-> ([CreateSDJWTConfig jwk] -> ShowS)
-> Show (CreateSDJWTConfig jwk)
forall jwk. Show jwk => Int -> CreateSDJWTConfig jwk -> ShowS
forall jwk. Show jwk => [CreateSDJWTConfig jwk] -> ShowS
forall jwk. Show jwk => CreateSDJWTConfig jwk -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall jwk. Show jwk => Int -> CreateSDJWTConfig jwk -> ShowS
showsPrec :: Int -> CreateSDJWTConfig jwk -> ShowS
$cshow :: forall jwk. Show jwk => CreateSDJWTConfig jwk -> String
show :: CreateSDJWTConfig jwk -> String
$cshowList :: forall jwk. Show jwk => [CreateSDJWTConfig jwk] -> ShowS
showList :: [CreateSDJWTConfig jwk] -> ShowS
Show)
data CreateSDJWTWithDecoysConfig jwk = CreateSDJWTWithDecoysConfig
{ forall jwk. CreateSDJWTWithDecoysConfig jwk -> Maybe Text
createDecoysTyp :: Maybe T.Text
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> Maybe Text
createDecoysKid :: Maybe T.Text
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> HashAlgorithm
createDecoysHashAlg :: HashAlgorithm
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> jwk
createDecoysIssuerKey :: jwk
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> [Text]
createDecoysSelectiveClaimNames :: [T.Text]
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> Object
createDecoysClaims :: Aeson.Object
, forall jwk. CreateSDJWTWithDecoysConfig jwk -> Int
createDecoysCount :: Int
}
deriving stock (CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
(CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool)
-> (CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool)
-> Eq (CreateSDJWTWithDecoysConfig jwk)
forall jwk.
Eq jwk =>
CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall jwk.
Eq jwk =>
CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
== :: CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
$c/= :: forall jwk.
Eq jwk =>
CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
/= :: CreateSDJWTWithDecoysConfig jwk
-> CreateSDJWTWithDecoysConfig jwk -> Bool
Eq, Int -> CreateSDJWTWithDecoysConfig jwk -> ShowS
[CreateSDJWTWithDecoysConfig jwk] -> ShowS
CreateSDJWTWithDecoysConfig jwk -> String
(Int -> CreateSDJWTWithDecoysConfig jwk -> ShowS)
-> (CreateSDJWTWithDecoysConfig jwk -> String)
-> ([CreateSDJWTWithDecoysConfig jwk] -> ShowS)
-> Show (CreateSDJWTWithDecoysConfig jwk)
forall jwk.
Show jwk =>
Int -> CreateSDJWTWithDecoysConfig jwk -> ShowS
forall jwk. Show jwk => [CreateSDJWTWithDecoysConfig jwk] -> ShowS
forall jwk. Show jwk => CreateSDJWTWithDecoysConfig jwk -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall jwk.
Show jwk =>
Int -> CreateSDJWTWithDecoysConfig jwk -> ShowS
showsPrec :: Int -> CreateSDJWTWithDecoysConfig jwk -> ShowS
$cshow :: forall jwk. Show jwk => CreateSDJWTWithDecoysConfig jwk -> String
show :: CreateSDJWTWithDecoysConfig jwk -> String
$cshowList :: forall jwk. Show jwk => [CreateSDJWTWithDecoysConfig jwk] -> ShowS
showList :: [CreateSDJWTWithDecoysConfig jwk] -> ShowS
Show)
data BuildSDJWTPayloadConfig = BuildSDJWTPayloadConfig
{ BuildSDJWTPayloadConfig -> HashAlgorithm
buildHashAlg :: HashAlgorithm
, BuildSDJWTPayloadConfig -> [Text]
buildSelectiveClaimNames :: [T.Text]
, BuildSDJWTPayloadConfig -> Object
buildClaims :: Aeson.Object
}
deriving stock (BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool
(BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool)
-> (BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool)
-> Eq BuildSDJWTPayloadConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool
== :: BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool
$c/= :: BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool
/= :: BuildSDJWTPayloadConfig -> BuildSDJWTPayloadConfig -> Bool
Eq, Int -> BuildSDJWTPayloadConfig -> ShowS
[BuildSDJWTPayloadConfig] -> ShowS
BuildSDJWTPayloadConfig -> String
(Int -> BuildSDJWTPayloadConfig -> ShowS)
-> (BuildSDJWTPayloadConfig -> String)
-> ([BuildSDJWTPayloadConfig] -> ShowS)
-> Show BuildSDJWTPayloadConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BuildSDJWTPayloadConfig -> ShowS
showsPrec :: Int -> BuildSDJWTPayloadConfig -> ShowS
$cshow :: BuildSDJWTPayloadConfig -> String
show :: BuildSDJWTPayloadConfig -> String
$cshowList :: [BuildSDJWTPayloadConfig] -> ShowS
showList :: [BuildSDJWTPayloadConfig] -> ShowS
Show)
data BuildSDJWTPayloadResult = BuildSDJWTPayloadResult
{ BuildSDJWTPayloadResult -> Value
buildPayload :: Aeson.Value
, BuildSDJWTPayloadResult -> [EncodedDisclosure]
buildDisclosures :: [EncodedDisclosure]
}
deriving stock (BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool
(BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool)
-> (BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool)
-> Eq BuildSDJWTPayloadResult
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool
== :: BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool
$c/= :: BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool
/= :: BuildSDJWTPayloadResult -> BuildSDJWTPayloadResult -> Bool
Eq, Int -> BuildSDJWTPayloadResult -> ShowS
[BuildSDJWTPayloadResult] -> ShowS
BuildSDJWTPayloadResult -> String
(Int -> BuildSDJWTPayloadResult -> ShowS)
-> (BuildSDJWTPayloadResult -> String)
-> ([BuildSDJWTPayloadResult] -> ShowS)
-> Show BuildSDJWTPayloadResult
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> BuildSDJWTPayloadResult -> ShowS
showsPrec :: Int -> BuildSDJWTPayloadResult -> ShowS
$cshow :: BuildSDJWTPayloadResult -> String
show :: BuildSDJWTPayloadResult -> String
$cshowList :: [BuildSDJWTPayloadResult] -> ShowS
showList :: [BuildSDJWTPayloadResult] -> ShowS
Show)