module Cachix.Types.Permission where import Data.Aeson (FromJSON, ToJSON) import Data.Swagger (ToSchema) import Protolude data Permission = Read | Write | Admin deriving (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 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 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 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 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 -> () forall a. (a -> ()) -> NFData a rnf :: Permission -> () $crnf :: Permission -> () NFData, Permission -> Permission -> Bool 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 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 Ord)