module Galley.API.Public.MLS where
import Galley.API.MLS
import Galley.App
import Imports
import Wire.API.Routes.API
import Wire.API.Routes.Public.Galley.MLS
mlsAPI :: API MLSAPI GalleyEffects
mlsAPI :: API MLSAPI GalleyEffects
mlsAPI =
forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"mls-message" ServerT
("mls"
:> (Summary "Post an MLS message"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow 'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("messages"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
Message)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Message sent"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))
(Sem
(Append
(DeclaredErrorEffects
("mls"
:> (Summary "Post an MLS message"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow
'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("messages"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
Message)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Message sent"
MLSMessageSendingStatus]
MLSMessageSendingStatus))))))))))))))))))))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
Local UserId
-> ClientId
-> ConnId
-> RawMLS Message
-> Sem
'[Error (Tagged 'ConvAccessDenied ()),
Error (Tagged 'ConvMemberNotFound ()),
Error (Tagged 'ConvNotFound ()),
Error (Tagged 'LegalHoldNotEnabled ()),
Error (Tagged 'MissingLegalholdConsent ()),
Error (Tagged 'MLSClientMismatch ()),
Error (Tagged 'MLSClientSenderUserMismatch ()),
Error (Tagged 'MLSCommitMissingReferences ()),
Error (Tagged 'MLSGroupConversationMismatch ()),
Error (Tagged 'MLSInvalidLeafNodeIndex ()),
Error (Tagged 'MLSNotEnabled ()),
Error (Tagged 'MLSProposalNotFound ()), Error MLSProtocolError,
Error (Tagged 'MLSSelfRemovalNotAllowed ()),
Error (Tagged 'MLSStaleMessage ()),
Error (Tagged 'MLSSubConvClientNotInParent ()),
Error (Tagged 'MLSUnsupportedMessage ()),
Error (Tagged 'MLSUnsupportedProposal ()),
Error MLSProposalFailure, Error NonFederatingBackends,
Error UnreachableBackends, BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
MLSMessageSendingStatus
forall (r :: EffectRow).
(HasProposalEffects r,
Member (Error (Tagged 'ConvAccessDenied ())) r,
Member (Error (Tagged 'ConvMemberNotFound ())) r,
Member (Error (Tagged 'ConvNotFound ())) r,
Member (Error (Tagged 'MissingLegalholdConsent ())) r,
Member (Error (Tagged 'MLSClientSenderUserMismatch ())) r,
Member (Error (Tagged 'MLSCommitMissingReferences ())) r,
Member (Error (Tagged 'MLSGroupConversationMismatch ())) r,
Member (Error (Tagged 'MLSNotEnabled ())) r,
Member (Error (Tagged 'MLSProposalNotFound ())) r,
Member (Error (Tagged 'MLSSelfRemovalNotAllowed ())) r,
Member (Error (Tagged 'MLSStaleMessage ())) r,
Member (Error (Tagged 'MLSUnsupportedMessage ())) r,
Member (Error (Tagged 'MLSSubConvClientNotInParent ())) r,
Member SubConversationStore r) =>
Local UserId
-> ClientId
-> ConnId
-> RawMLS Message
-> Sem r MLSMessageSendingStatus
postMLSMessageFromLocalUser
API
(Named
"mls-message"
("mls"
:> (Summary "Post an MLS message"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow 'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("messages"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
Message)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Message sent"
MLSMessageSendingStatus]
MLSMessageSendingStatus))))))))))))))))))))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"mls-commit-bundle"
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))))
:<|> Named
"mls-public-keys"
("mls"
:> (Summary
"Get public keys used by the backend to sign external proposals"
:> (Description
"The format of the returned key is determined by the `format` query parameter:\n - raw (default): base64-encoded raw public keys\n - jwk: keys are nested objects in JWK format."
:> (From 'V5
:> (CanThrow 'MLSNotEnabled
:> ("public-keys"
:> (ZLocalUser
:> (QueryParam "format" MLSPublicKeyFormat
:> MultiVerb
'GET
'[JSON]
'[Respond
200
"Public keys"
(MLSKeysByPurpose (MLSKeys SomeKey))]
(MLSKeysByPurpose (MLSKeys SomeKey)))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"mls-message"
("mls"
:> (Summary "Post an MLS message"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("messages"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
Message)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Message sent"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))
:<|> (Named
"mls-commit-bundle"
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow
'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))))
:<|> Named
"mls-public-keys"
("mls"
:> (Summary
"Get public keys used by the backend to sign external proposals"
:> (Description
"The format of the returned key is determined by the `format` query parameter:\n - raw (default): base64-encoded raw public keys\n - jwk: keys are nested objects in JWK format."
:> (From 'V5
:> (CanThrow 'MLSNotEnabled
:> ("public-keys"
:> (ZLocalUser
:> (QueryParam "format" MLSPublicKeyFormat
:> MultiVerb
'GET
'[JSON]
'[Respond
200
"Public keys"
(MLSKeysByPurpose (MLSKeys SomeKey))]
(MLSKeysByPurpose (MLSKeys SomeKey))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
forall api1 (r :: EffectRow) api2.
API api1 r -> API api2 r -> API (api1 :<|> api2) r
<@> forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"mls-commit-bundle" ServerT
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow 'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))))
(Sem
(Append
(DeclaredErrorEffects
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow
'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus))))))))))))))))))))))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]))
Local UserId
-> ClientId
-> ConnId
-> RawMLS CommitBundle
-> Sem
'[Error (Tagged 'ConvAccessDenied ()),
Error (Tagged 'ConvMemberNotFound ()),
Error (Tagged 'ConvNotFound ()),
Error (Tagged 'LegalHoldNotEnabled ()),
Error (Tagged 'MissingLegalholdConsent ()),
Error (Tagged 'MLSClientMismatch ()),
Error (Tagged 'MLSClientSenderUserMismatch ()),
Error (Tagged 'MLSCommitMissingReferences ()),
Error (Tagged 'MLSGroupConversationMismatch ()),
Error (Tagged 'MLSInvalidLeafNodeIndex ()),
Error (Tagged 'MLSNotEnabled ()),
Error (Tagged 'MLSProposalNotFound ()), Error MLSProtocolError,
Error (Tagged 'MLSSelfRemovalNotAllowed ()),
Error (Tagged 'MLSStaleMessage ()),
Error (Tagged 'MLSSubConvClientNotInParent ()),
Error (Tagged 'MLSUnsupportedMessage ()),
Error (Tagged 'MLSUnsupportedProposal ()),
Error (Tagged 'MLSWelcomeMismatch ()),
ErrorS 'MLSLegalholdIncompatible, Error MLSProposalFailure,
Error NonFederatingBackends, Error UnreachableBackends, BrigAccess,
SparAccess, NotificationSubsystem, GundeckAPIAccess, Rpc,
ExternalAccess, FederatorAccess, BackendNotificationQueueAccess,
BotAccess, FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
MLSMessageSendingStatus
forall (r :: EffectRow).
(Member (ErrorS 'MLSLegalholdIncompatible) r, Member Random r,
Member Resource r, Member SubConversationStore r,
Members MLSBundleStaticErrors r, HasProposalEffects r) =>
Local UserId
-> ClientId
-> ConnId
-> RawMLS CommitBundle
-> Sem r MLSMessageSendingStatus
postMLSCommitBundleFromLocalUser
API
(Named
"mls-commit-bundle"
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow 'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus))))))))))))))))))))))))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"mls-public-keys"
("mls"
:> (Summary
"Get public keys used by the backend to sign external proposals"
:> (Description
"The format of the returned key is determined by the `format` query parameter:\n - raw (default): base64-encoded raw public keys\n - jwk: keys are nested objects in JWK format."
:> (From 'V5
:> (CanThrow 'MLSNotEnabled
:> ("public-keys"
:> (ZLocalUser
:> (QueryParam "format" MLSPublicKeyFormat
:> MultiVerb
'GET
'[JSON]
'[Respond
200
"Public keys"
(MLSKeysByPurpose (MLSKeys SomeKey))]
(MLSKeysByPurpose (MLSKeys SomeKey)))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
-> API
(Named
"mls-commit-bundle"
("mls"
:> (Summary "Post a MLS CommitBundle"
:> (From 'V5
:> (CanThrow 'ConvAccessDenied
:> (CanThrow 'ConvMemberNotFound
:> (CanThrow 'ConvNotFound
:> (CanThrow 'LegalHoldNotEnabled
:> (CanThrow 'MissingLegalholdConsent
:> (CanThrow 'MLSClientMismatch
:> (CanThrow 'MLSClientSenderUserMismatch
:> (CanThrow 'MLSCommitMissingReferences
:> (CanThrow 'MLSGroupConversationMismatch
:> (CanThrow 'MLSInvalidLeafNodeIndex
:> (CanThrow 'MLSNotEnabled
:> (CanThrow 'MLSProposalNotFound
:> (CanThrow 'MLSProtocolErrorTag
:> (CanThrow
'MLSSelfRemovalNotAllowed
:> (CanThrow
'MLSStaleMessage
:> (CanThrow
'MLSSubConvClientNotInParent
:> (CanThrow
'MLSUnsupportedMessage
:> (CanThrow
'MLSUnsupportedProposal
:> (CanThrow
'MLSWelcomeMismatch
:> (CanThrow
'MLSLegalholdIncompatible
:> (CanThrow
MLSProposalFailure
:> (CanThrow
NonFederatingBackends
:> (CanThrow
UnreachableBackends
:> ("commit-bundles"
:> (ZLocalUser
:> (ZClient
:> (ZConn
:> (ReqBody
'[MLS]
(RawMLS
CommitBundle)
:> MultiVerb
'POST
'[JSON]
'[Respond
201
"Commit accepted and forwarded"
MLSMessageSendingStatus]
MLSMessageSendingStatus)))))))))))))))))))))))))))))))
:<|> Named
"mls-public-keys"
("mls"
:> (Summary
"Get public keys used by the backend to sign external proposals"
:> (Description
"The format of the returned key is determined by the `format` query parameter:\n - raw (default): base64-encoded raw public keys\n - jwk: keys are nested objects in JWK format."
:> (From 'V5
:> (CanThrow 'MLSNotEnabled
:> ("public-keys"
:> (ZLocalUser
:> (QueryParam "format" MLSPublicKeyFormat
:> MultiVerb
'GET
'[JSON]
'[Respond
200
"Public keys"
(MLSKeysByPurpose (MLSKeys SomeKey))]
(MLSKeysByPurpose (MLSKeys SomeKey)))))))))))
'[BrigAccess, SparAccess, NotificationSubsystem, GundeckAPIAccess,
Rpc, ExternalAccess, FederatorAccess,
BackendNotificationQueueAccess, BotAccess, FireAndForget,
ClientStore, CodeStore, ProposalStore, ConversationStore,
SubConversationStore, Random, CustomBackendStore, TeamFeatureStore,
LegalHoldStore, MemberStore, SearchVisibilityStore, ServiceStore,
TeamNotificationStore, TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
forall api1 (r :: EffectRow) api2.
API api1 r -> API api2 r -> API (api1 :<|> api2) r
<@> forall {k} (name :: k) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
forall (name :: Symbol) (r0 :: EffectRow) api.
(HasServer api '[Domain],
ServerEffects (DeclaredErrorEffects api) r0) =>
ServerT api (Sem (Append (DeclaredErrorEffects api) r0))
-> API (Named name api) r0
mkNamedAPI @"mls-public-keys" ((Maybe MLSPublicKeyFormat
-> Sem
'[Error (Tagged 'MLSNotEnabled ()), BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
(MLSKeysByPurpose (MLSKeys SomeKey)))
-> Local UserId
-> Maybe MLSPublicKeyFormat
-> Sem
'[Error (Tagged 'MLSNotEnabled ()), BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
(MLSKeysByPurpose (MLSKeys SomeKey))
forall a b. a -> b -> a
const Maybe MLSPublicKeyFormat
-> Sem
'[Error (Tagged 'MLSNotEnabled ()), BrigAccess, SparAccess,
NotificationSubsystem, GundeckAPIAccess, Rpc, ExternalAccess,
FederatorAccess, BackendNotificationQueueAccess, BotAccess,
FireAndForget, ClientStore, CodeStore, ProposalStore,
ConversationStore, SubConversationStore, Random,
CustomBackendStore, TeamFeatureStore, LegalHoldStore, MemberStore,
SearchVisibilityStore, ServiceStore, TeamNotificationStore,
TeamStore, TeamMemberStore InternalPaging,
TeamMemberStore CassandraPaging, ListItems CassandraPaging ConvId,
ListItems CassandraPaging (Remote ConvId),
ListItems LegacyPaging ConvId, ListItems LegacyPaging TeamId,
ListItems InternalPaging TeamId, Input AllTeamFeatures,
Input (Maybe [TeamId], FeatureDefaults LegalholdConfig),
Input (Local ()), Input Opts, Input UTCTime, Queue DeleteItem,
Logger (Msg -> Msg), Error DynError, Input ClientState, Input Env,
HashPassword, Error InvalidInput, Error InternalError,
Error FederationError, Async, Delay, Fail, Embed IO,
Error JSONResponse, Resource, Final IO]
(MLSKeysByPurpose (MLSKeys SomeKey))
forall (r :: EffectRow).
(Member (Input Env) r, Member (Error (Tagged 'MLSNotEnabled ())) r,
Member (Error InternalError) r) =>
Maybe MLSPublicKeyFormat
-> Sem r (MLSKeysByPurpose (MLSKeys SomeKey))
getMLSPublicKeys)