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 $cfrom :: forall x. Permission -> Rep Permission x from :: forall x. Permission -> Rep Permission x $cto :: forall x. Rep Permission x -> Permission to :: forall x. Rep Permission x -> Permission 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 $cshowsPrec :: Int -> Permission -> ShowS showsPrec :: Int -> Permission -> ShowS $cshow :: Permission -> String show :: Permission -> String $cshowList :: [Permission] -> ShowS showList :: [Permission] -> ShowS Show, Maybe Permission Value -> Parser [Permission] Value -> Parser Permission (Value -> Parser Permission) -> (Value -> Parser [Permission]) -> Maybe Permission -> FromJSON Permission forall a. (Value -> Parser a) -> (Value -> Parser [a]) -> Maybe a -> FromJSON a $cparseJSON :: Value -> Parser Permission parseJSON :: Value -> Parser Permission $cparseJSONList :: Value -> Parser [Permission] parseJSONList :: Value -> Parser [Permission] $comittedField :: Maybe Permission omittedField :: Maybe Permission FromJSON, [Permission] -> Value [Permission] -> Encoding Permission -> Bool Permission -> Value Permission -> Encoding (Permission -> Value) -> (Permission -> Encoding) -> ([Permission] -> Value) -> ([Permission] -> Encoding) -> (Permission -> Bool) -> ToJSON Permission forall a. (a -> Value) -> (a -> Encoding) -> ([a] -> Value) -> ([a] -> Encoding) -> (a -> Bool) -> ToJSON a $ctoJSON :: Permission -> Value toJSON :: Permission -> Value $ctoEncoding :: Permission -> Encoding toEncoding :: Permission -> Encoding $ctoJSONList :: [Permission] -> Value toJSONList :: [Permission] -> Value $ctoEncodingList :: [Permission] -> Encoding toEncodingList :: [Permission] -> Encoding $comitField :: Permission -> Bool omitField :: Permission -> Bool 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 $cdeclareNamedSchema :: Proxy Permission -> Declare (Definitions Schema) NamedSchema declareNamedSchema :: Proxy Permission -> Declare (Definitions Schema) NamedSchema ToSchema, Permission -> () (Permission -> ()) -> NFData Permission forall a. (a -> ()) -> NFData a $crnf :: Permission -> () rnf :: Permission -> () NFData, Permission -> Permission -> Bool (Permission -> Permission -> Bool) -> (Permission -> Permission -> Bool) -> Eq Permission forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Permission -> Permission -> Bool == :: Permission -> Permission -> Bool $c/= :: Permission -> Permission -> Bool /= :: 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 $ccompare :: Permission -> Permission -> Ordering compare :: Permission -> Permission -> Ordering $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 >= :: Permission -> Permission -> Bool $cmax :: Permission -> Permission -> Permission max :: Permission -> Permission -> Permission $cmin :: Permission -> Permission -> Permission min :: Permission -> Permission -> Permission Ord)