wire-api-0.1.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Wire.API.Conversation.Role

Description

This module contains the analog of some of the team-level roles & permissions types in Wire.API.Team.

Synopsis

Role

data ConversationRole Source #

A conversation role is associated to a user in the scope of a conversation and implies with a set of Actions. Conversation-level analog to what Role is on the team-level.

Do not expose the constructors directly, use smart constructors instead to ensure that all validation is performed.

Instances

Instances details
Arbitrary ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

FromJSON ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToJSON ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

Generic ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Rep ConversationRole :: Type -> Type #

Show ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

Eq ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToSchema ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep ConversationRole Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep ConversationRole = D1 ('MetaData "ConversationRole" "Wire.API.Conversation.Role" "wire-api-0.1.0-3915FetN8WgFcCGrbk6Vve" 'False) (C1 ('MetaCons "ConvRoleWireAdmin" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "ConvRoleWireMember" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ConvRoleCustom" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 RoleName) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Actions))))

data ConversationRolesList Source #

Instances

Instances details
Arbitrary ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

FromJSON ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToJSON ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

Generic ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Rep ConversationRolesList :: Type -> Type #

Show ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

Eq ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToSchema ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep ConversationRolesList Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep ConversationRolesList = D1 ('MetaData "ConversationRolesList" "Wire.API.Conversation.Role" "wire-api-0.1.0-3915FetN8WgFcCGrbk6Vve" 'False) (C1 ('MetaCons "ConversationRolesList" 'PrefixI 'True) (S1 ('MetaSel ('Just "convRolesList") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [ConversationRole])))

RoleName

data RoleName Source #

Instances

Instances details
Arbitrary RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

FromJSON RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToJSON RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Generic RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Rep RoleName :: Type -> Type #

Methods

from :: RoleName -> Rep RoleName x #

to :: Rep RoleName x -> RoleName #

Show RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

FromByteString RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Methods

parser :: Parser RoleName Source #

ToByteString RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Cql RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Eq RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Ord RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

Hashable RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToSchema RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToSchema RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep RoleName Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep RoleName = D1 ('MetaData "RoleName" "Wire.API.Conversation.Role" "wire-api-0.1.0-3915FetN8WgFcCGrbk6Vve" 'True) (C1 ('MetaCons "RoleName" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromRoleName") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Text)))

Action

data Action Source #

These conversation-level permissions. Analogous to the team-level permissions called Perm (or Permissions).

Instances

Instances details
Arbitrary Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

FromJSON Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToJSON Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Bounded Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Enum Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Generic Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Rep Action :: Type -> Type #

Methods

from :: Action -> Rep Action x #

to :: Rep Action x -> Action #

Show Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Eq Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Methods

(==) :: Action -> Action -> Bool #

(/=) :: Action -> Action -> Bool #

Ord Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

ToSchema Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingKind Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Demote Action = (r :: Type) Source #

SingI 'AddConversationMember Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'DeleteConversation Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'LeaveConversation Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'ModifyConversationAccess Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'ModifyConversationMessageTimer Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'ModifyConversationName Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'ModifyConversationReceiptMode Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'ModifyOtherConversationMember Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI 'RemoveConversationMember Source # 
Instance details

Defined in Wire.API.Conversation.Role

SingI1 'ActionDenied Source # 
Instance details

Defined in Wire.API.Error.Galley

Methods

liftSing :: forall (x :: k1). Sing x -> Sing ('ActionDenied x) Source #

type Rep Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep Action = D1 ('MetaData "Action" "Wire.API.Conversation.Role" "wire-api-0.1.0-3915FetN8WgFcCGrbk6Vve" 'False) (((C1 ('MetaCons "AddConversationMember" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RemoveConversationMember" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ModifyConversationName" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ModifyConversationMessageTimer" 'PrefixI 'False) (U1 :: Type -> Type))) :+: ((C1 ('MetaCons "ModifyConversationReceiptMode" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "ModifyConversationAccess" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "ModifyOtherConversationMember" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LeaveConversation" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DeleteConversation" 'PrefixI 'False) (U1 :: Type -> Type)))))
type Demote Action Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Sing Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Sing = SAction

newtype Actions Source #

Constructors

Actions 

Instances

Instances details
Arbitrary Actions Source # 
Instance details

Defined in Wire.API.Conversation.Role

Generic Actions Source # 
Instance details

Defined in Wire.API.Conversation.Role

Associated Types

type Rep Actions :: Type -> Type #

Methods

from :: Actions -> Rep Actions x #

to :: Rep Actions x -> Actions #

Show Actions Source # 
Instance details

Defined in Wire.API.Conversation.Role

Eq Actions Source # 
Instance details

Defined in Wire.API.Conversation.Role

Methods

(==) :: Actions -> Actions -> Bool #

(/=) :: Actions -> Actions -> Bool #

type Rep Actions Source # 
Instance details

Defined in Wire.API.Conversation.Role

type Rep Actions = D1 ('MetaData "Actions" "Wire.API.Conversation.Role" "wire-api-0.1.0-3915FetN8WgFcCGrbk6Vve" 'True) (C1 ('MetaCons "Actions" 'PrefixI 'True) (S1 ('MetaSel ('Just "allowedActions") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Set Action))))

type family ActionName (a :: Action) :: Symbol where ... Source #

Equations

ActionName 'AddConversationMember = "add_conversation_member" 
ActionName 'RemoveConversationMember = "remove_conversation_member" 
ActionName 'ModifyConversationName = "modify_conversation_name" 
ActionName 'ModifyConversationMessageTimer = "modify_conversation_message_timer" 
ActionName 'ModifyConversationReceiptMode = "modify_conversation_receipt_mode" 
ActionName 'ModifyConversationAccess = "modify_conversation_access" 
ActionName 'ModifyOtherConversationMember = "modify_other_conversation_member" 
ActionName 'LeaveConversation = "leave_conversation" 
ActionName 'DeleteConversation = "delete_conversation" 

helpers