module Cachix.Types.Permission where import Data.Aeson (FromJSON, ToJSON) import Data.Swagger (ToSchema) import Protolude data Permission = Read | Write | Admin deriving ((forall x. Permission -> Rep Permission x) -> (forall x. Rep Permission x -> Permission) -> Generic Permission forall x. Rep Permission x -> Permission forall x. Permission -> Rep Permission x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep Permission x -> Permission $cfrom :: forall x. Permission -> Rep Permission x Generic, Int -> Permission -> ShowS [Permission] -> ShowS Permission -> String (Int -> Permission -> ShowS) -> (Permission -> String) -> ([Permission] -> ShowS) -> Show Permission forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [Permission] -> ShowS $cshowList :: [Permission] -> ShowS show :: Permission -> String $cshow :: Permission -> String showsPrec :: Int -> Permission -> ShowS $cshowsPrec :: Int -> Permission -> ShowS Show, Value -> Parser [Permission] Value -> Parser Permission (Value -> Parser Permission) -> (Value -> Parser [Permission]) -> FromJSON Permission forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a parseJSONList :: Value -> Parser [Permission] $cparseJSONList :: Value -> Parser [Permission] parseJSON :: Value -> Parser Permission $cparseJSON :: Value -> Parser Permission FromJSON, [Permission] -> Encoding [Permission] -> Value Permission -> Encoding Permission -> Value (Permission -> Value) -> (Permission -> Encoding) -> ([Permission] -> Value) -> ([Permission] -> Encoding) -> ToJSON Permission forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> ToJSON a toEncodingList :: [Permission] -> Encoding $ctoEncodingList :: [Permission] -> Encoding toJSONList :: [Permission] -> Value $ctoJSONList :: [Permission] -> Value toEncoding :: Permission -> Encoding $ctoEncoding :: Permission -> Encoding toJSON :: Permission -> Value $ctoJSON :: Permission -> Value ToJSON, Proxy Permission -> Declare (Definitions Schema) NamedSchema (Proxy Permission -> Declare (Definitions Schema) NamedSchema) -> ToSchema Permission forall a. (Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a declareNamedSchema :: Proxy Permission -> Declare (Definitions Schema) NamedSchema $cdeclareNamedSchema :: Proxy Permission -> Declare (Definitions Schema) NamedSchema ToSchema, Permission -> () (Permission -> ()) -> NFData Permission forall a. (a -> ()) -> NFData a rnf :: Permission -> () $crnf :: Permission -> () NFData, Permission -> Permission -> Bool (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> Eq Permission forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: Permission -> Permission -> Bool $c/= :: Permission -> Permission -> Bool == :: Permission -> Permission -> Bool $c== :: Permission -> Permission -> Bool Eq, Eq Permission Eq Permission -> (Permission -> Permission -> Ordering) -> (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> (Permission -> Permission -> Permission) -> (Permission -> Permission -> Permission) -> Ord Permission Permission -> Permission -> Bool Permission -> Permission -> Ordering Permission -> Permission -> Permission forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: Permission -> Permission -> Permission $cmin :: Permission -> Permission -> Permission max :: Permission -> Permission -> Permission $cmax :: Permission -> Permission -> Permission >= :: Permission -> Permission -> Bool $c>= :: Permission -> Permission -> Bool > :: Permission -> Permission -> Bool $c> :: Permission -> Permission -> Bool <= :: Permission -> Permission -> Bool $c<= :: Permission -> Permission -> Bool < :: Permission -> Permission -> Bool $c< :: Permission -> Permission -> Bool compare :: Permission -> Permission -> Ordering $ccompare :: Permission -> Permission -> Ordering $cp1Ord :: Eq Permission Ord)