module GitHub.App.Token.Permissions
( Permissions
, Read (..)
, Write (..)
, Admin (..)
, actions
, administration
, checks
, codespaces
, contents
, dependabot_secrets
, deployments
, environments
, issues
, metadata
, packages
, pages
, pull_requests
, repository_custom_properties
, repository_hooks
, repository_projects
, secret_scanning_alerts
, secrets
, security_events
, single_file
, statuses
, vulnerability_alerts
, workflows
, members
, organization_administration
, organization_custom_roles
, organization_custom_org_roles
, organization_custom_properties
, organization_copilot_seat_management
, organization_announcement_banners
, organization_events
, organization_hooks
, organization_personal_access_tokens
, organization_personal_access_token_requests
, organization_plan
, organization_projects
, organization_packages
, organization_secrets
, organization_self_hosted_runners
, organization_user_blocking
, team_discussions
, email_addresses
, followers
, git_ssh_keys
, gpg_keys
, interaction_limits
, profile
, starring
) where
import GitHub.App.Token.Prelude hiding (Read)
import Data.Aeson (ToJSON (..))
import Data.Map.Monoidal.Strict (MonoidalMap)
import Data.Map.Monoidal.Strict qualified as MonoidalMap
import Data.Semigroup (Max (..))
{-# ANN module ("HLint: ignore Use camelCase" :: String) #-}
newtype Permissions = Permissions
{ Permissions -> MonoidalMap Text Permission
_unwrap :: MonoidalMap Text Permission
}
deriving stock (Permissions -> Permissions -> Bool
(Permissions -> Permissions -> Bool)
-> (Permissions -> Permissions -> Bool) -> Eq Permissions
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Permissions -> Permissions -> Bool
== :: Permissions -> Permissions -> Bool
$c/= :: Permissions -> Permissions -> Bool
/= :: Permissions -> Permissions -> Bool
Eq, Int -> Permissions -> ShowS
[Permissions] -> ShowS
Permissions -> String
(Int -> Permissions -> ShowS)
-> (Permissions -> String)
-> ([Permissions] -> ShowS)
-> Show Permissions
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Permissions -> ShowS
showsPrec :: Int -> Permissions -> ShowS
$cshow :: Permissions -> String
show :: Permissions -> String
$cshowList :: [Permissions] -> ShowS
showList :: [Permissions] -> ShowS
Show)
deriving newtype (NonEmpty Permissions -> Permissions
Permissions -> Permissions -> Permissions
(Permissions -> Permissions -> Permissions)
-> (NonEmpty Permissions -> Permissions)
-> (forall b. Integral b => b -> Permissions -> Permissions)
-> Semigroup Permissions
forall b. Integral b => b -> Permissions -> Permissions
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
$c<> :: Permissions -> Permissions -> Permissions
<> :: Permissions -> Permissions -> Permissions
$csconcat :: NonEmpty Permissions -> Permissions
sconcat :: NonEmpty Permissions -> Permissions
$cstimes :: forall b. Integral b => b -> Permissions -> Permissions
stimes :: forall b. Integral b => b -> Permissions -> Permissions
Semigroup, Semigroup Permissions
Permissions
Semigroup Permissions =>
Permissions
-> (Permissions -> Permissions -> Permissions)
-> ([Permissions] -> Permissions)
-> Monoid Permissions
[Permissions] -> Permissions
Permissions -> Permissions -> Permissions
forall a.
Semigroup a =>
a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
$cmempty :: Permissions
mempty :: Permissions
$cmappend :: Permissions -> Permissions -> Permissions
mappend :: Permissions -> Permissions -> Permissions
$cmconcat :: [Permissions] -> Permissions
mconcat :: [Permissions] -> Permissions
Monoid, [Permissions] -> Value
[Permissions] -> Encoding
Permissions -> Bool
Permissions -> Value
Permissions -> Encoding
(Permissions -> Value)
-> (Permissions -> Encoding)
-> ([Permissions] -> Value)
-> ([Permissions] -> Encoding)
-> (Permissions -> Bool)
-> ToJSON Permissions
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
$ctoJSON :: Permissions -> Value
toJSON :: Permissions -> Value
$ctoEncoding :: Permissions -> Encoding
toEncoding :: Permissions -> Encoding
$ctoJSONList :: [Permissions] -> Value
toJSONList :: [Permissions] -> Value
$ctoEncodingList :: [Permissions] -> Encoding
toEncodingList :: [Permissions] -> Encoding
$comitField :: Permissions -> Bool
omitField :: Permissions -> Bool
ToJSON)
data Permission
= PermissionRead
| PermissionWrite
| PermissionAdmin
deriving stock (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, 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)
deriving (NonEmpty Permission -> Permission
Permission -> Permission -> Permission
(Permission -> Permission -> Permission)
-> (NonEmpty Permission -> Permission)
-> (forall b. Integral b => b -> Permission -> Permission)
-> Semigroup Permission
forall b. Integral b => b -> Permission -> Permission
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
$c<> :: Permission -> Permission -> Permission
<> :: Permission -> Permission -> Permission
$csconcat :: NonEmpty Permission -> Permission
sconcat :: NonEmpty Permission -> Permission
$cstimes :: forall b. Integral b => b -> Permission -> Permission
stimes :: forall b. Integral b => b -> Permission -> Permission
Semigroup) via (Max Permission)
instance ToJSON Permission where
toJSON :: Permission -> Value
toJSON =
forall a. ToJSON a => a -> Value
toJSON @Text (Text -> Value) -> (Permission -> Text) -> Permission -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
Permission
PermissionRead -> Text
"read"
Permission
PermissionWrite -> Text
"write"
Permission
PermissionAdmin -> Text
"admin"
class AsReadWrite a where
toReadWritePermission :: a -> Permission
class AsReadWriteAdmin a where
toReadWriteAdminPermission :: a -> Permission
data Read = Read
instance AsReadWrite Read where
toReadWritePermission :: Read -> Permission
toReadWritePermission Read
_ = Permission
PermissionRead
instance AsReadWriteAdmin Read where
toReadWriteAdminPermission :: Read -> Permission
toReadWriteAdminPermission Read
_ = Permission
PermissionRead
data Write = Write
instance AsReadWrite Write where
toReadWritePermission :: Write -> Permission
toReadWritePermission Write
_ = Permission
PermissionWrite
instance AsReadWriteAdmin Write where
toReadWriteAdminPermission :: Write -> Permission
toReadWriteAdminPermission Write
_ = Permission
PermissionWrite
data Admin = Admin
instance AsReadWriteAdmin Admin where
toReadWriteAdminPermission :: Admin -> Permission
toReadWriteAdminPermission Admin
_ = Permission
PermissionAdmin
actions :: AsReadWrite a => a -> Permissions
actions :: forall a. AsReadWrite a => a -> Permissions
actions = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"actions"
administration :: AsReadWrite a => a -> Permissions
administration :: forall a. AsReadWrite a => a -> Permissions
administration = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"administration"
checks :: AsReadWrite a => a -> Permissions
checks :: forall a. AsReadWrite a => a -> Permissions
checks = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"checks"
codespaces :: AsReadWrite a => a -> Permissions
codespaces :: forall a. AsReadWrite a => a -> Permissions
codespaces = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"codespaces"
contents :: AsReadWrite a => a -> Permissions
contents :: forall a. AsReadWrite a => a -> Permissions
contents = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"contents"
dependabot_secrets :: AsReadWrite a => a -> Permissions
dependabot_secrets :: forall a. AsReadWrite a => a -> Permissions
dependabot_secrets = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"dependabot_secrets"
deployments :: AsReadWrite a => a -> Permissions
deployments :: forall a. AsReadWrite a => a -> Permissions
deployments = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"deployments"
environments :: AsReadWrite a => a -> Permissions
environments :: forall a. AsReadWrite a => a -> Permissions
environments = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"environments"
issues :: AsReadWrite a => a -> Permissions
issues :: forall a. AsReadWrite a => a -> Permissions
issues = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"issues"
metadata :: AsReadWrite a => a -> Permissions
metadata :: forall a. AsReadWrite a => a -> Permissions
metadata = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"metadata"
packages :: AsReadWrite a => a -> Permissions
packages :: forall a. AsReadWrite a => a -> Permissions
packages = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"packages"
pages :: AsReadWrite a => a -> Permissions
pages :: forall a. AsReadWrite a => a -> Permissions
pages = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"pages"
pull_requests :: AsReadWrite a => a -> Permissions
pull_requests :: forall a. AsReadWrite a => a -> Permissions
pull_requests = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"pull_requests"
repository_custom_properties :: AsReadWrite a => a -> Permissions
repository_custom_properties :: forall a. AsReadWrite a => a -> Permissions
repository_custom_properties = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"repository_custom_properties"
repository_hooks :: AsReadWrite a => a -> Permissions
repository_hooks :: forall a. AsReadWrite a => a -> Permissions
repository_hooks = Text -> a -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"repository_hooks"
repository_projects :: AsReadWriteAdmin a => a -> Permissions
repository_projects :: forall a. AsReadWriteAdmin a => a -> Permissions
repository_projects = Text -> a -> Permissions
forall p. AsReadWriteAdmin p => Text -> p -> Permissions
mkReadWriteAdmin Text
"repository_projects"
secret_scanning_alerts :: AsReadWrite p => p -> Permissions
secret_scanning_alerts :: forall a. AsReadWrite a => a -> Permissions
secret_scanning_alerts = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"secret_scanning_alerts"
secrets :: AsReadWrite p => p -> Permissions
secrets :: forall a. AsReadWrite a => a -> Permissions
secrets = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"secrets"
security_events :: AsReadWrite p => p -> Permissions
security_events :: forall a. AsReadWrite a => a -> Permissions
security_events = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"security_events"
single_file :: AsReadWrite p => p -> Permissions
single_file :: forall a. AsReadWrite a => a -> Permissions
single_file = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"single_file"
statuses :: AsReadWrite p => p -> Permissions
statuses :: forall a. AsReadWrite a => a -> Permissions
statuses = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"statuses"
vulnerability_alerts :: AsReadWrite p => p -> Permissions
vulnerability_alerts :: forall a. AsReadWrite a => a -> Permissions
vulnerability_alerts = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"vulnerability_alerts"
workflows :: Permissions
workflows :: Permissions
workflows = Text -> Permissions
mkWrite Text
"workflows"
members :: AsReadWrite p => p -> Permissions
members :: forall a. AsReadWrite a => a -> Permissions
members = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"members"
organization_administration :: AsReadWrite p => p -> Permissions
organization_administration :: forall a. AsReadWrite a => a -> Permissions
organization_administration = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_administration"
organization_custom_roles :: AsReadWrite p => p -> Permissions
organization_custom_roles :: forall a. AsReadWrite a => a -> Permissions
organization_custom_roles = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_custom_roles"
organization_custom_org_roles :: AsReadWrite p => p -> Permissions
organization_custom_org_roles :: forall a. AsReadWrite a => a -> Permissions
organization_custom_org_roles = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_custom_org_roles"
organization_custom_properties :: AsReadWriteAdmin p => p -> Permissions
organization_custom_properties :: forall a. AsReadWriteAdmin a => a -> Permissions
organization_custom_properties = Text -> p -> Permissions
forall p. AsReadWriteAdmin p => Text -> p -> Permissions
mkReadWriteAdmin Text
"organization_custom_properties"
organization_copilot_seat_management :: Permissions
organization_copilot_seat_management :: Permissions
organization_copilot_seat_management = Text -> Permissions
mkWrite Text
"organization_copilot_seat_management"
organization_announcement_banners :: AsReadWrite p => p -> Permissions
organization_announcement_banners :: forall a. AsReadWrite a => a -> Permissions
organization_announcement_banners = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_announcement_banners"
organization_events :: Permissions
organization_events :: Permissions
organization_events = Text -> Permissions
mkRead Text
"organization_events"
organization_hooks :: AsReadWrite p => p -> Permissions
organization_hooks :: forall a. AsReadWrite a => a -> Permissions
organization_hooks = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_hooks"
organization_personal_access_tokens :: AsReadWrite p => p -> Permissions
organization_personal_access_tokens :: forall a. AsReadWrite a => a -> Permissions
organization_personal_access_tokens = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_personal_access_tokens"
organization_personal_access_token_requests :: AsReadWrite p => p -> Permissions
organization_personal_access_token_requests :: forall a. AsReadWrite a => a -> Permissions
organization_personal_access_token_requests = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_personal_access_token_requests"
organization_plan :: Permissions
organization_plan :: Permissions
organization_plan = Text -> Permissions
mkRead Text
"organization_plan"
organization_projects :: AsReadWriteAdmin p => p -> Permissions
organization_projects :: forall a. AsReadWriteAdmin a => a -> Permissions
organization_projects = Text -> p -> Permissions
forall p. AsReadWriteAdmin p => Text -> p -> Permissions
mkReadWriteAdmin Text
"organization_projects"
organization_packages :: AsReadWrite p => p -> Permissions
organization_packages :: forall a. AsReadWrite a => a -> Permissions
organization_packages = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_packages"
organization_secrets :: AsReadWrite p => p -> Permissions
organization_secrets :: forall a. AsReadWrite a => a -> Permissions
organization_secrets = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_secrets"
organization_self_hosted_runners :: AsReadWrite p => p -> Permissions
organization_self_hosted_runners :: forall a. AsReadWrite a => a -> Permissions
organization_self_hosted_runners = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_self_hosted_runners"
organization_user_blocking :: AsReadWrite p => p -> Permissions
organization_user_blocking :: forall a. AsReadWrite a => a -> Permissions
organization_user_blocking = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"organization_user_blocking"
team_discussions :: AsReadWrite p => p -> Permissions
team_discussions :: forall a. AsReadWrite a => a -> Permissions
team_discussions = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"team_discussions"
email_addresses :: AsReadWrite p => p -> Permissions
email_addresses :: forall a. AsReadWrite a => a -> Permissions
email_addresses = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"email_addresses"
followers :: AsReadWrite p => p -> Permissions
followers :: forall a. AsReadWrite a => a -> Permissions
followers = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"followers"
git_ssh_keys :: AsReadWrite p => p -> Permissions
git_ssh_keys :: forall a. AsReadWrite a => a -> Permissions
git_ssh_keys = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"git_ssh_keys"
gpg_keys :: AsReadWrite p => p -> Permissions
gpg_keys :: forall a. AsReadWrite a => a -> Permissions
gpg_keys = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"gpg_keys"
interaction_limits :: AsReadWrite p => p -> Permissions
interaction_limits :: forall a. AsReadWrite a => a -> Permissions
interaction_limits = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"interaction_limits"
profile :: Permissions
profile :: Permissions
profile = Text -> Permissions
mkWrite Text
"profile"
starring :: AsReadWrite p => p -> Permissions
starring :: forall a. AsReadWrite a => a -> Permissions
starring = Text -> p -> Permissions
forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
"starring"
mkRead :: Text -> Permissions
mkRead :: Text -> Permissions
mkRead Text
name = MonoidalMap Text Permission -> Permissions
Permissions (MonoidalMap Text Permission -> Permissions)
-> MonoidalMap Text Permission -> Permissions
forall a b. (a -> b) -> a -> b
$ Text -> Permission -> MonoidalMap Text Permission
forall k a. k -> a -> MonoidalMap k a
MonoidalMap.singleton Text
name Permission
PermissionRead
mkWrite :: Text -> Permissions
mkWrite :: Text -> Permissions
mkWrite Text
name = MonoidalMap Text Permission -> Permissions
Permissions (MonoidalMap Text Permission -> Permissions)
-> MonoidalMap Text Permission -> Permissions
forall a b. (a -> b) -> a -> b
$ Text -> Permission -> MonoidalMap Text Permission
forall k a. k -> a -> MonoidalMap k a
MonoidalMap.singleton Text
name Permission
PermissionWrite
mkReadWrite :: AsReadWrite p => Text -> p -> Permissions
mkReadWrite :: forall p. AsReadWrite p => Text -> p -> Permissions
mkReadWrite Text
name =
MonoidalMap Text Permission -> Permissions
Permissions
(MonoidalMap Text Permission -> Permissions)
-> (p -> MonoidalMap Text Permission) -> p -> Permissions
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Permission -> MonoidalMap Text Permission
forall k a. k -> a -> MonoidalMap k a
MonoidalMap.singleton Text
name
(Permission -> MonoidalMap Text Permission)
-> (p -> Permission) -> p -> MonoidalMap Text Permission
forall b c a. (b -> c) -> (a -> b) -> a -> c
. p -> Permission
forall a. AsReadWrite a => a -> Permission
toReadWritePermission
mkReadWriteAdmin :: AsReadWriteAdmin p => Text -> p -> Permissions
mkReadWriteAdmin :: forall p. AsReadWriteAdmin p => Text -> p -> Permissions
mkReadWriteAdmin Text
name =
MonoidalMap Text Permission -> Permissions
Permissions
(MonoidalMap Text Permission -> Permissions)
-> (p -> MonoidalMap Text Permission) -> p -> Permissions
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Permission -> MonoidalMap Text Permission
forall k a. k -> a -> MonoidalMap k a
MonoidalMap.singleton Text
name
(Permission -> MonoidalMap Text Permission)
-> (p -> Permission) -> p -> MonoidalMap Text Permission
forall b c a. (b -> c) -> (a -> b) -> a -> c
. p -> Permission
forall a. AsReadWriteAdmin a => a -> Permission
toReadWriteAdminPermission