{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}

-- This file is part of the Wire Server implementation.
--
-- Copyright (C) 2022 Wire Swiss GmbH <opensource@wire.com>
--
-- This program is free software: you can redistribute it and/or modify it under
-- the terms of the GNU Affero General Public License as published by the Free
-- Software Foundation, either version 3 of the License, or (at your option) any
-- later version.
--
-- This program is distributed in the hope that it will be useful, but WITHOUT
-- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-- FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
-- details.
--
-- You should have received a copy of the GNU Affero General Public License along
-- with this program. If not, see <https://www.gnu.org/licenses/>.

module Galley.API.Federation where

import Control.Error hiding (note)
import Control.Lens
import Data.Bifunctor
import Data.ByteString.Conversion (toByteString')
import Data.Domain (Domain)
import Data.Id
import Data.Json.Util
import Data.List1 (List1 (..))
import Data.Map qualified as Map
import Data.Map.Lens (toMapOf)
import Data.Qualified
import Data.Range (Range (fromRange))
import Data.Set qualified as Set
import Data.Singletons (SingI (..), demote, sing)
import Data.Tagged
import Data.Text.Lazy qualified as LT
import Data.Time.Clock
import Galley.API.Action
import Galley.API.Error
import Galley.API.MLS
import Galley.API.MLS.Enabled
import Galley.API.MLS.GroupInfo
import Galley.API.MLS.Message
import Galley.API.MLS.One2One
import Galley.API.MLS.Removal
import Galley.API.MLS.SubConversation hiding (leaveSubConversation)
import Galley.API.MLS.Util
import Galley.API.MLS.Welcome
import Galley.API.Mapping
import Galley.API.Mapping qualified as Mapping
import Galley.API.Message
import Galley.API.Push
import Galley.API.Util
import Galley.App
import Galley.Data.Conversation qualified as Data
import Galley.Effects
import Galley.Effects.ConversationStore qualified as E
import Galley.Effects.FireAndForget qualified as E
import Galley.Effects.MemberStore qualified as E
import Galley.Options
import Galley.Types.Conversations.Members
import Galley.Types.Conversations.One2One
import Galley.Types.UserList (UserList (UserList))
import Gundeck.Types.Push.V2 (RecipientClients (..))
import Imports
import Polysemy
import Polysemy.Error
import Polysemy.Input
import Polysemy.Internal.Kind (Append)
import Polysemy.Resource
import Polysemy.TinyLog
import Polysemy.TinyLog qualified as P
import Servant (ServerT)
import Servant.API
import System.Logger.Class qualified as Log
import Wire.API.Conversation hiding (Member)
import Wire.API.Conversation qualified as Public
import Wire.API.Conversation.Action
import Wire.API.Conversation.Role
import Wire.API.Error
import Wire.API.Error.Galley
import Wire.API.Event.Conversation
import Wire.API.Federation.API
import Wire.API.Federation.API.Common (EmptyResponse (..))
import Wire.API.Federation.API.Galley
import Wire.API.Federation.Endpoint
import Wire.API.Federation.Error
import Wire.API.Federation.Version
import Wire.API.MLS.Credential
import Wire.API.MLS.GroupInfo
import Wire.API.MLS.Keys
import Wire.API.MLS.Serialisation
import Wire.API.MLS.SubConversation
import Wire.API.Message
import Wire.API.Routes.Named
import Wire.API.ServantProto
import Wire.API.User (BaseProtocolTag (..))
import Wire.NotificationSubsystem

type FederationAPI = "federation" :> FedApi 'Galley

-- | Convert a polysemy handler to an 'API' value.
federationSitemap ::
  ServerT FederationAPI (Sem GalleyEffects)
federationSitemap :: ServerT FederationAPI (Sem GalleyEffects)
federationSitemap =
  forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-conversation-created" Domain
-> ConversationCreated ConvId
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationCreated ConvId -> Sem r EmptyResponse
onConversationCreated
    Named
  "on-conversation-created"
  (Domain
   -> ConversationCreated ConvId
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      "get-conversations@v1"
      (Domain
       -> GetConversationsRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetConversationsResponse)
    :<|> (Named
            "get-conversations"
            (Domain
             -> GetConversationsRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  GetConversationsResponseV2)
          :<|> (Named
                  "leave-conversation"
                  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                   -> Dict (HasAnnotation 'Remote "brig" "api-version")
                   -> Domain
                   -> LeaveConversationRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        LeaveConversationResponse)
                :<|> (Named
                        "send-message"
                        (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
                         -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
                         -> Domain
                         -> ProteusMessageSendRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              MessageSendResponse)
                      :<|> (Named
                              "update-conversation"
                              (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                               -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                               -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                               -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                               -> Domain
                               -> ConversationUpdateRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    ConversationUpdateResponse)
                            :<|> (Named
                                    "mls-welcome"
                                    (Domain
                                     -> MLSWelcomeRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          MLSWelcomeResponse)
                                  :<|> (Named
                                          "send-mls-message"
                                          (Dict
                                             (HasAnnotation
                                                'Remote "galley" "on-conversation-updated")
                                           -> Dict
                                                (HasAnnotation
                                                   'Remote "galley" "on-mls-message-sent")
                                           -> Dict
                                                (HasAnnotation 'Remote "galley" "send-mls-message")
                                           -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                           -> Domain
                                           -> MLSMessageSendRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                MLSMessageResponse)
                                        :<|> (Named
                                                "send-mls-commit-bundle"
                                                (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                                 -> Dict
                                                      (HasAnnotation
                                                         'Remote "galley" "on-conversation-updated")
                                                 -> Dict
                                                      (HasAnnotation
                                                         'Remote "galley" "on-mls-message-sent")
                                                 -> Dict
                                                      (HasAnnotation
                                                         'Remote "galley" "send-mls-commit-bundle")
                                                 -> Dict
                                                      (HasAnnotation
                                                         'Remote "brig" "get-mls-clients")
                                                 -> Dict
                                                      (HasAnnotation
                                                         'Remote "brig" "get-users-by-ids")
                                                 -> Dict
                                                      (HasAnnotation 'Remote "brig" "api-version")
                                                 -> Domain
                                                 -> MLSMessageSendRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      MLSMessageResponse)
                                              :<|> (Named
                                                      "query-group-info"
                                                      (Domain
                                                       -> GetGroupInfoRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            GetGroupInfoResponse)
                                                    :<|> (Named
                                                            "update-typing-indicator"
                                                            (Dict
                                                               (HasAnnotation
                                                                  'Remote
                                                                  "galley"
                                                                  "on-typing-indicator-updated")
                                                             -> Domain
                                                             -> TypingDataUpdateRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  TypingDataUpdateResponse)
                                                          :<|> (Named
                                                                  "on-typing-indicator-updated"
                                                                  (Domain
                                                                   -> TypingDataUpdated
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> (Named
                                                                        "get-sub-conversation"
                                                                        (Domain
                                                                         -> GetSubConversationsRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              GetSubConversationsResponse)
                                                                      :<|> (Named
                                                                              "delete-sub-conversation"
                                                                              (Domain
                                                                               -> DeleteSubConversationFedRequest
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    DeleteSubConversationResponse)
                                                                            :<|> (Named
                                                                                    "leave-sub-conversation"
                                                                                    (Dict
                                                                                       (HasAnnotation
                                                                                          'Remote
                                                                                          "galley"
                                                                                          "on-mls-message-sent")
                                                                                     -> Domain
                                                                                     -> LeaveSubConversationRequest
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          LeaveSubConversationResponse)
                                                                                  :<|> (Named
                                                                                          "get-one2one-conversation@v1"
                                                                                          (Domain
                                                                                           -> GetOne2OneConversationRequest
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                GetOne2OneConversationResponse)
                                                                                        :<|> (Named
                                                                                                "get-one2one-conversation"
                                                                                                (Domain
                                                                                                 -> GetOne2OneConversationRequest
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      GetOne2OneConversationResponseV2)
                                                                                              :<|> (Named
                                                                                                      "on-client-removed"
                                                                                                      (Domain
                                                                                                       -> ClientRemovedRequest
                                                                                                       -> Sem
                                                                                                            '[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,
                                                                                                              Error
                                                                                                                InvalidInput,
                                                                                                              Error
                                                                                                                InternalError,
                                                                                                              Error
                                                                                                                FederationError,
                                                                                                              Async,
                                                                                                              Delay,
                                                                                                              Fail,
                                                                                                              Embed
                                                                                                                IO,
                                                                                                              Error
                                                                                                                JSONResponse,
                                                                                                              Resource,
                                                                                                              Final
                                                                                                                IO]
                                                                                                            EmptyResponse)
                                                                                                    :<|> (Named
                                                                                                            "on-message-sent"
                                                                                                            (Domain
                                                                                                             -> RemoteMessage
                                                                                                                  ConvId
                                                                                                             -> Sem
                                                                                                                  '[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,
                                                                                                                    Error
                                                                                                                      InvalidInput,
                                                                                                                    Error
                                                                                                                      InternalError,
                                                                                                                    Error
                                                                                                                      FederationError,
                                                                                                                    Async,
                                                                                                                    Delay,
                                                                                                                    Fail,
                                                                                                                    Embed
                                                                                                                      IO,
                                                                                                                    Error
                                                                                                                      JSONResponse,
                                                                                                                    Resource,
                                                                                                                    Final
                                                                                                                      IO]
                                                                                                                  EmptyResponse)
                                                                                                          :<|> (Named
                                                                                                                  "on-mls-message-sent"
                                                                                                                  (Domain
                                                                                                                   -> RemoteMLSMessage
                                                                                                                   -> Sem
                                                                                                                        '[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,
                                                                                                                          Error
                                                                                                                            InvalidInput,
                                                                                                                          Error
                                                                                                                            InternalError,
                                                                                                                          Error
                                                                                                                            FederationError,
                                                                                                                          Async,
                                                                                                                          Delay,
                                                                                                                          Fail,
                                                                                                                          Embed
                                                                                                                            IO,
                                                                                                                          Error
                                                                                                                            JSONResponse,
                                                                                                                          Resource,
                                                                                                                          Final
                                                                                                                            IO]
                                                                                                                        EmptyResponse)
                                                                                                                :<|> (Named
                                                                                                                        (Versioned
                                                                                                                           'V0
                                                                                                                           "on-conversation-updated")
                                                                                                                        (Domain
                                                                                                                         -> ConversationUpdateV0
                                                                                                                         -> Sem
                                                                                                                              '[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,
                                                                                                                                Error
                                                                                                                                  InvalidInput,
                                                                                                                                Error
                                                                                                                                  InternalError,
                                                                                                                                Error
                                                                                                                                  FederationError,
                                                                                                                                Async,
                                                                                                                                Delay,
                                                                                                                                Fail,
                                                                                                                                Embed
                                                                                                                                  IO,
                                                                                                                                Error
                                                                                                                                  JSONResponse,
                                                                                                                                Resource,
                                                                                                                                Final
                                                                                                                                  IO]
                                                                                                                              EmptyResponse)
                                                                                                                      :<|> (Named
                                                                                                                              "on-conversation-updated"
                                                                                                                              (Domain
                                                                                                                               -> ConversationUpdate
                                                                                                                               -> Sem
                                                                                                                                    '[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,
                                                                                                                                      Error
                                                                                                                                        InvalidInput,
                                                                                                                                      Error
                                                                                                                                        InternalError,
                                                                                                                                      Error
                                                                                                                                        FederationError,
                                                                                                                                      Async,
                                                                                                                                      Delay,
                                                                                                                                      Fail,
                                                                                                                                      Embed
                                                                                                                                        IO,
                                                                                                                                      Error
                                                                                                                                        JSONResponse,
                                                                                                                                      Resource,
                                                                                                                                      Final
                                                                                                                                        IO]
                                                                                                                                    EmptyResponse)
                                                                                                                            :<|> Named
                                                                                                                                   "on-user-deleted-conversations"
                                                                                                                                   (Domain
                                                                                                                                    -> UserDeletedConversationsNotification
                                                                                                                                    -> Sem
                                                                                                                                         '[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,
                                                                                                                                           Error
                                                                                                                                             InvalidInput,
                                                                                                                                           Error
                                                                                                                                             InternalError,
                                                                                                                                           Error
                                                                                                                                             FederationError,
                                                                                                                                           Async,
                                                                                                                                           Delay,
                                                                                                                                           Fail,
                                                                                                                                           Embed
                                                                                                                                             IO,
                                                                                                                                           Error
                                                                                                                                             JSONResponse,
                                                                                                                                           Resource,
                                                                                                                                           Final
                                                                                                                                             IO]
                                                                                                                                         EmptyResponse))))))))))))))))))))))
-> Named
     "on-conversation-created"
     (Domain
      -> ConversationCreated ConvId
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           "get-conversations@v1"
           (Domain
            -> GetConversationsRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetConversationsResponse)
         :<|> (Named
                 "get-conversations"
                 (Domain
                  -> GetConversationsRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       GetConversationsResponseV2)
               :<|> (Named
                       "leave-conversation"
                       (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                        -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                        -> Dict (HasAnnotation 'Remote "brig" "api-version")
                        -> Domain
                        -> LeaveConversationRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             LeaveConversationResponse)
                     :<|> (Named
                             "send-message"
                             (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
                              -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
                              -> Domain
                              -> ProteusMessageSendRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   MessageSendResponse)
                           :<|> (Named
                                   "update-conversation"
                                   (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                                    -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                    -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                                    -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                    -> Domain
                                    -> ConversationUpdateRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         ConversationUpdateResponse)
                                 :<|> (Named
                                         "mls-welcome"
                                         (Domain
                                          -> MLSWelcomeRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               MLSWelcomeResponse)
                                       :<|> (Named
                                               "send-mls-message"
                                               (Dict
                                                  (HasAnnotation
                                                     'Remote "galley" "on-conversation-updated")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "galley" "on-mls-message-sent")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "galley" "send-mls-message")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "brig" "get-mls-clients")
                                                -> Domain
                                                -> MLSMessageSendRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     MLSMessageResponse)
                                             :<|> (Named
                                                     "send-mls-commit-bundle"
                                                     (Dict
                                                        (HasAnnotation
                                                           'Remote "galley" "mls-welcome")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote
                                                              "galley"
                                                              "on-conversation-updated")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote
                                                              "galley"
                                                              "on-mls-message-sent")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote
                                                              "galley"
                                                              "send-mls-commit-bundle")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote "brig" "get-mls-clients")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote "brig" "get-users-by-ids")
                                                      -> Dict
                                                           (HasAnnotation
                                                              'Remote "brig" "api-version")
                                                      -> Domain
                                                      -> MLSMessageSendRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           MLSMessageResponse)
                                                   :<|> (Named
                                                           "query-group-info"
                                                           (Domain
                                                            -> GetGroupInfoRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 GetGroupInfoResponse)
                                                         :<|> (Named
                                                                 "update-typing-indicator"
                                                                 (Dict
                                                                    (HasAnnotation
                                                                       'Remote
                                                                       "galley"
                                                                       "on-typing-indicator-updated")
                                                                  -> Domain
                                                                  -> TypingDataUpdateRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       TypingDataUpdateResponse)
                                                               :<|> (Named
                                                                       "on-typing-indicator-updated"
                                                                       (Domain
                                                                        -> TypingDataUpdated
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> (Named
                                                                             "get-sub-conversation"
                                                                             (Domain
                                                                              -> GetSubConversationsRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   GetSubConversationsResponse)
                                                                           :<|> (Named
                                                                                   "delete-sub-conversation"
                                                                                   (Domain
                                                                                    -> DeleteSubConversationFedRequest
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         DeleteSubConversationResponse)
                                                                                 :<|> (Named
                                                                                         "leave-sub-conversation"
                                                                                         (Dict
                                                                                            (HasAnnotation
                                                                                               'Remote
                                                                                               "galley"
                                                                                               "on-mls-message-sent")
                                                                                          -> Domain
                                                                                          -> LeaveSubConversationRequest
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               LeaveSubConversationResponse)
                                                                                       :<|> (Named
                                                                                               "get-one2one-conversation@v1"
                                                                                               (Domain
                                                                                                -> GetOne2OneConversationRequest
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     GetOne2OneConversationResponse)
                                                                                             :<|> (Named
                                                                                                     "get-one2one-conversation"
                                                                                                     (Domain
                                                                                                      -> GetOne2OneConversationRequest
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           GetOne2OneConversationResponseV2)
                                                                                                   :<|> (Named
                                                                                                           "on-client-removed"
                                                                                                           (Domain
                                                                                                            -> ClientRemovedRequest
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse)
                                                                                                         :<|> (Named
                                                                                                                 "on-message-sent"
                                                                                                                 (Domain
                                                                                                                  -> RemoteMessage
                                                                                                                       ConvId
                                                                                                                  -> Sem
                                                                                                                       '[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,
                                                                                                                         Error
                                                                                                                           InvalidInput,
                                                                                                                         Error
                                                                                                                           InternalError,
                                                                                                                         Error
                                                                                                                           FederationError,
                                                                                                                         Async,
                                                                                                                         Delay,
                                                                                                                         Fail,
                                                                                                                         Embed
                                                                                                                           IO,
                                                                                                                         Error
                                                                                                                           JSONResponse,
                                                                                                                         Resource,
                                                                                                                         Final
                                                                                                                           IO]
                                                                                                                       EmptyResponse)
                                                                                                               :<|> (Named
                                                                                                                       "on-mls-message-sent"
                                                                                                                       (Domain
                                                                                                                        -> RemoteMLSMessage
                                                                                                                        -> Sem
                                                                                                                             '[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,
                                                                                                                               Error
                                                                                                                                 InvalidInput,
                                                                                                                               Error
                                                                                                                                 InternalError,
                                                                                                                               Error
                                                                                                                                 FederationError,
                                                                                                                               Async,
                                                                                                                               Delay,
                                                                                                                               Fail,
                                                                                                                               Embed
                                                                                                                                 IO,
                                                                                                                               Error
                                                                                                                                 JSONResponse,
                                                                                                                               Resource,
                                                                                                                               Final
                                                                                                                                 IO]
                                                                                                                             EmptyResponse)
                                                                                                                     :<|> (Named
                                                                                                                             (Versioned
                                                                                                                                'V0
                                                                                                                                "on-conversation-updated")
                                                                                                                             (Domain
                                                                                                                              -> ConversationUpdateV0
                                                                                                                              -> Sem
                                                                                                                                   '[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,
                                                                                                                                     Error
                                                                                                                                       InvalidInput,
                                                                                                                                     Error
                                                                                                                                       InternalError,
                                                                                                                                     Error
                                                                                                                                       FederationError,
                                                                                                                                     Async,
                                                                                                                                     Delay,
                                                                                                                                     Fail,
                                                                                                                                     Embed
                                                                                                                                       IO,
                                                                                                                                     Error
                                                                                                                                       JSONResponse,
                                                                                                                                     Resource,
                                                                                                                                     Final
                                                                                                                                       IO]
                                                                                                                                   EmptyResponse)
                                                                                                                           :<|> (Named
                                                                                                                                   "on-conversation-updated"
                                                                                                                                   (Domain
                                                                                                                                    -> ConversationUpdate
                                                                                                                                    -> Sem
                                                                                                                                         '[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,
                                                                                                                                           Error
                                                                                                                                             InvalidInput,
                                                                                                                                           Error
                                                                                                                                             InternalError,
                                                                                                                                           Error
                                                                                                                                             FederationError,
                                                                                                                                           Async,
                                                                                                                                           Delay,
                                                                                                                                           Fail,
                                                                                                                                           Embed
                                                                                                                                             IO,
                                                                                                                                           Error
                                                                                                                                             JSONResponse,
                                                                                                                                           Resource,
                                                                                                                                           Final
                                                                                                                                             IO]
                                                                                                                                         EmptyResponse)
                                                                                                                                 :<|> Named
                                                                                                                                        "on-user-deleted-conversations"
                                                                                                                                        (Domain
                                                                                                                                         -> UserDeletedConversationsNotification
                                                                                                                                         -> Sem
                                                                                                                                              '[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,
                                                                                                                                                Error
                                                                                                                                                  InvalidInput,
                                                                                                                                                Error
                                                                                                                                                  InternalError,
                                                                                                                                                Error
                                                                                                                                                  FederationError,
                                                                                                                                                Async,
                                                                                                                                                Delay,
                                                                                                                                                Fail,
                                                                                                                                                Embed
                                                                                                                                                  IO,
                                                                                                                                                Error
                                                                                                                                                  JSONResponse,
                                                                                                                                                Resource,
                                                                                                                                                Final
                                                                                                                                                  IO]
                                                                                                                                              EmptyResponse))))))))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"get-conversations@v1" Domain
-> GetConversationsRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetConversationsResponse
forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r) =>
Domain -> GetConversationsRequest -> Sem r GetConversationsResponse
getConversationsV1
    Named
  "get-conversations@v1"
  (Domain
   -> GetConversationsRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetConversationsResponse)
-> (Named
      "get-conversations"
      (Domain
       -> GetConversationsRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetConversationsResponseV2)
    :<|> (Named
            "leave-conversation"
            (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
             -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
             -> Dict (HasAnnotation 'Remote "brig" "api-version")
             -> Domain
             -> LeaveConversationRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  LeaveConversationResponse)
          :<|> (Named
                  "send-message"
                  (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
                   -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
                   -> Domain
                   -> ProteusMessageSendRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        MessageSendResponse)
                :<|> (Named
                        "update-conversation"
                        (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                         -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                         -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                         -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                         -> Domain
                         -> ConversationUpdateRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              ConversationUpdateResponse)
                      :<|> (Named
                              "mls-welcome"
                              (Domain
                               -> MLSWelcomeRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    MLSWelcomeResponse)
                            :<|> (Named
                                    "send-mls-message"
                                    (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                                     -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                     -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                                     -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                     -> Domain
                                     -> MLSMessageSendRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          MLSMessageResponse)
                                  :<|> (Named
                                          "send-mls-commit-bundle"
                                          (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                           -> Dict
                                                (HasAnnotation
                                                   'Remote "galley" "on-conversation-updated")
                                           -> Dict
                                                (HasAnnotation
                                                   'Remote "galley" "on-mls-message-sent")
                                           -> Dict
                                                (HasAnnotation
                                                   'Remote "galley" "send-mls-commit-bundle")
                                           -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                           -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                                           -> Dict (HasAnnotation 'Remote "brig" "api-version")
                                           -> Domain
                                           -> MLSMessageSendRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                MLSMessageResponse)
                                        :<|> (Named
                                                "query-group-info"
                                                (Domain
                                                 -> GetGroupInfoRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      GetGroupInfoResponse)
                                              :<|> (Named
                                                      "update-typing-indicator"
                                                      (Dict
                                                         (HasAnnotation
                                                            'Remote
                                                            "galley"
                                                            "on-typing-indicator-updated")
                                                       -> Domain
                                                       -> TypingDataUpdateRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            TypingDataUpdateResponse)
                                                    :<|> (Named
                                                            "on-typing-indicator-updated"
                                                            (Domain
                                                             -> TypingDataUpdated
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> (Named
                                                                  "get-sub-conversation"
                                                                  (Domain
                                                                   -> GetSubConversationsRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        GetSubConversationsResponse)
                                                                :<|> (Named
                                                                        "delete-sub-conversation"
                                                                        (Domain
                                                                         -> DeleteSubConversationFedRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              DeleteSubConversationResponse)
                                                                      :<|> (Named
                                                                              "leave-sub-conversation"
                                                                              (Dict
                                                                                 (HasAnnotation
                                                                                    'Remote
                                                                                    "galley"
                                                                                    "on-mls-message-sent")
                                                                               -> Domain
                                                                               -> LeaveSubConversationRequest
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    LeaveSubConversationResponse)
                                                                            :<|> (Named
                                                                                    "get-one2one-conversation@v1"
                                                                                    (Domain
                                                                                     -> GetOne2OneConversationRequest
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          GetOne2OneConversationResponse)
                                                                                  :<|> (Named
                                                                                          "get-one2one-conversation"
                                                                                          (Domain
                                                                                           -> GetOne2OneConversationRequest
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                GetOne2OneConversationResponseV2)
                                                                                        :<|> (Named
                                                                                                "on-client-removed"
                                                                                                (Domain
                                                                                                 -> ClientRemovedRequest
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      EmptyResponse)
                                                                                              :<|> (Named
                                                                                                      "on-message-sent"
                                                                                                      (Domain
                                                                                                       -> RemoteMessage
                                                                                                            ConvId
                                                                                                       -> Sem
                                                                                                            '[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,
                                                                                                              Error
                                                                                                                InvalidInput,
                                                                                                              Error
                                                                                                                InternalError,
                                                                                                              Error
                                                                                                                FederationError,
                                                                                                              Async,
                                                                                                              Delay,
                                                                                                              Fail,
                                                                                                              Embed
                                                                                                                IO,
                                                                                                              Error
                                                                                                                JSONResponse,
                                                                                                              Resource,
                                                                                                              Final
                                                                                                                IO]
                                                                                                            EmptyResponse)
                                                                                                    :<|> (Named
                                                                                                            "on-mls-message-sent"
                                                                                                            (Domain
                                                                                                             -> RemoteMLSMessage
                                                                                                             -> Sem
                                                                                                                  '[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,
                                                                                                                    Error
                                                                                                                      InvalidInput,
                                                                                                                    Error
                                                                                                                      InternalError,
                                                                                                                    Error
                                                                                                                      FederationError,
                                                                                                                    Async,
                                                                                                                    Delay,
                                                                                                                    Fail,
                                                                                                                    Embed
                                                                                                                      IO,
                                                                                                                    Error
                                                                                                                      JSONResponse,
                                                                                                                    Resource,
                                                                                                                    Final
                                                                                                                      IO]
                                                                                                                  EmptyResponse)
                                                                                                          :<|> (Named
                                                                                                                  (Versioned
                                                                                                                     'V0
                                                                                                                     "on-conversation-updated")
                                                                                                                  (Domain
                                                                                                                   -> ConversationUpdateV0
                                                                                                                   -> Sem
                                                                                                                        '[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,
                                                                                                                          Error
                                                                                                                            InvalidInput,
                                                                                                                          Error
                                                                                                                            InternalError,
                                                                                                                          Error
                                                                                                                            FederationError,
                                                                                                                          Async,
                                                                                                                          Delay,
                                                                                                                          Fail,
                                                                                                                          Embed
                                                                                                                            IO,
                                                                                                                          Error
                                                                                                                            JSONResponse,
                                                                                                                          Resource,
                                                                                                                          Final
                                                                                                                            IO]
                                                                                                                        EmptyResponse)
                                                                                                                :<|> (Named
                                                                                                                        "on-conversation-updated"
                                                                                                                        (Domain
                                                                                                                         -> ConversationUpdate
                                                                                                                         -> Sem
                                                                                                                              '[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,
                                                                                                                                Error
                                                                                                                                  InvalidInput,
                                                                                                                                Error
                                                                                                                                  InternalError,
                                                                                                                                Error
                                                                                                                                  FederationError,
                                                                                                                                Async,
                                                                                                                                Delay,
                                                                                                                                Fail,
                                                                                                                                Embed
                                                                                                                                  IO,
                                                                                                                                Error
                                                                                                                                  JSONResponse,
                                                                                                                                Resource,
                                                                                                                                Final
                                                                                                                                  IO]
                                                                                                                              EmptyResponse)
                                                                                                                      :<|> Named
                                                                                                                             "on-user-deleted-conversations"
                                                                                                                             (Domain
                                                                                                                              -> UserDeletedConversationsNotification
                                                                                                                              -> Sem
                                                                                                                                   '[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,
                                                                                                                                     Error
                                                                                                                                       InvalidInput,
                                                                                                                                     Error
                                                                                                                                       InternalError,
                                                                                                                                     Error
                                                                                                                                       FederationError,
                                                                                                                                     Async,
                                                                                                                                     Delay,
                                                                                                                                     Fail,
                                                                                                                                     Embed
                                                                                                                                       IO,
                                                                                                                                     Error
                                                                                                                                       JSONResponse,
                                                                                                                                     Resource,
                                                                                                                                     Final
                                                                                                                                       IO]
                                                                                                                                   EmptyResponse)))))))))))))))))))))
-> Named
     "get-conversations@v1"
     (Domain
      -> GetConversationsRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetConversationsResponse)
   :<|> (Named
           "get-conversations"
           (Domain
            -> GetConversationsRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetConversationsResponseV2)
         :<|> (Named
                 "leave-conversation"
                 (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                  -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                  -> Dict (HasAnnotation 'Remote "brig" "api-version")
                  -> Domain
                  -> LeaveConversationRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       LeaveConversationResponse)
               :<|> (Named
                       "send-message"
                       (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
                        -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
                        -> Domain
                        -> ProteusMessageSendRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             MessageSendResponse)
                     :<|> (Named
                             "update-conversation"
                             (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                              -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                              -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                              -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                              -> Domain
                              -> ConversationUpdateRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   ConversationUpdateResponse)
                           :<|> (Named
                                   "mls-welcome"
                                   (Domain
                                    -> MLSWelcomeRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         MLSWelcomeResponse)
                                 :<|> (Named
                                         "send-mls-message"
                                         (Dict
                                            (HasAnnotation
                                               'Remote "galley" "on-conversation-updated")
                                          -> Dict
                                               (HasAnnotation
                                                  'Remote "galley" "on-mls-message-sent")
                                          -> Dict
                                               (HasAnnotation 'Remote "galley" "send-mls-message")
                                          -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                          -> Domain
                                          -> MLSMessageSendRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               MLSMessageResponse)
                                       :<|> (Named
                                               "send-mls-commit-bundle"
                                               (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "galley" "on-conversation-updated")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "galley" "on-mls-message-sent")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "galley" "send-mls-commit-bundle")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "brig" "get-mls-clients")
                                                -> Dict
                                                     (HasAnnotation
                                                        'Remote "brig" "get-users-by-ids")
                                                -> Dict (HasAnnotation 'Remote "brig" "api-version")
                                                -> Domain
                                                -> MLSMessageSendRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     MLSMessageResponse)
                                             :<|> (Named
                                                     "query-group-info"
                                                     (Domain
                                                      -> GetGroupInfoRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           GetGroupInfoResponse)
                                                   :<|> (Named
                                                           "update-typing-indicator"
                                                           (Dict
                                                              (HasAnnotation
                                                                 'Remote
                                                                 "galley"
                                                                 "on-typing-indicator-updated")
                                                            -> Domain
                                                            -> TypingDataUpdateRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 TypingDataUpdateResponse)
                                                         :<|> (Named
                                                                 "on-typing-indicator-updated"
                                                                 (Domain
                                                                  -> TypingDataUpdated
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> (Named
                                                                       "get-sub-conversation"
                                                                       (Domain
                                                                        -> GetSubConversationsRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             GetSubConversationsResponse)
                                                                     :<|> (Named
                                                                             "delete-sub-conversation"
                                                                             (Domain
                                                                              -> DeleteSubConversationFedRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   DeleteSubConversationResponse)
                                                                           :<|> (Named
                                                                                   "leave-sub-conversation"
                                                                                   (Dict
                                                                                      (HasAnnotation
                                                                                         'Remote
                                                                                         "galley"
                                                                                         "on-mls-message-sent")
                                                                                    -> Domain
                                                                                    -> LeaveSubConversationRequest
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         LeaveSubConversationResponse)
                                                                                 :<|> (Named
                                                                                         "get-one2one-conversation@v1"
                                                                                         (Domain
                                                                                          -> GetOne2OneConversationRequest
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               GetOne2OneConversationResponse)
                                                                                       :<|> (Named
                                                                                               "get-one2one-conversation"
                                                                                               (Domain
                                                                                                -> GetOne2OneConversationRequest
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     GetOne2OneConversationResponseV2)
                                                                                             :<|> (Named
                                                                                                     "on-client-removed"
                                                                                                     (Domain
                                                                                                      -> ClientRemovedRequest
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)
                                                                                                   :<|> (Named
                                                                                                           "on-message-sent"
                                                                                                           (Domain
                                                                                                            -> RemoteMessage
                                                                                                                 ConvId
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse)
                                                                                                         :<|> (Named
                                                                                                                 "on-mls-message-sent"
                                                                                                                 (Domain
                                                                                                                  -> RemoteMLSMessage
                                                                                                                  -> Sem
                                                                                                                       '[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,
                                                                                                                         Error
                                                                                                                           InvalidInput,
                                                                                                                         Error
                                                                                                                           InternalError,
                                                                                                                         Error
                                                                                                                           FederationError,
                                                                                                                         Async,
                                                                                                                         Delay,
                                                                                                                         Fail,
                                                                                                                         Embed
                                                                                                                           IO,
                                                                                                                         Error
                                                                                                                           JSONResponse,
                                                                                                                         Resource,
                                                                                                                         Final
                                                                                                                           IO]
                                                                                                                       EmptyResponse)
                                                                                                               :<|> (Named
                                                                                                                       (Versioned
                                                                                                                          'V0
                                                                                                                          "on-conversation-updated")
                                                                                                                       (Domain
                                                                                                                        -> ConversationUpdateV0
                                                                                                                        -> Sem
                                                                                                                             '[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,
                                                                                                                               Error
                                                                                                                                 InvalidInput,
                                                                                                                               Error
                                                                                                                                 InternalError,
                                                                                                                               Error
                                                                                                                                 FederationError,
                                                                                                                               Async,
                                                                                                                               Delay,
                                                                                                                               Fail,
                                                                                                                               Embed
                                                                                                                                 IO,
                                                                                                                               Error
                                                                                                                                 JSONResponse,
                                                                                                                               Resource,
                                                                                                                               Final
                                                                                                                                 IO]
                                                                                                                             EmptyResponse)
                                                                                                                     :<|> (Named
                                                                                                                             "on-conversation-updated"
                                                                                                                             (Domain
                                                                                                                              -> ConversationUpdate
                                                                                                                              -> Sem
                                                                                                                                   '[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,
                                                                                                                                     Error
                                                                                                                                       InvalidInput,
                                                                                                                                     Error
                                                                                                                                       InternalError,
                                                                                                                                     Error
                                                                                                                                       FederationError,
                                                                                                                                     Async,
                                                                                                                                     Delay,
                                                                                                                                     Fail,
                                                                                                                                     Embed
                                                                                                                                       IO,
                                                                                                                                     Error
                                                                                                                                       JSONResponse,
                                                                                                                                     Resource,
                                                                                                                                     Final
                                                                                                                                       IO]
                                                                                                                                   EmptyResponse)
                                                                                                                           :<|> Named
                                                                                                                                  "on-user-deleted-conversations"
                                                                                                                                  (Domain
                                                                                                                                   -> UserDeletedConversationsNotification
                                                                                                                                   -> Sem
                                                                                                                                        '[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,
                                                                                                                                          Error
                                                                                                                                            InvalidInput,
                                                                                                                                          Error
                                                                                                                                            InternalError,
                                                                                                                                          Error
                                                                                                                                            FederationError,
                                                                                                                                          Async,
                                                                                                                                          Delay,
                                                                                                                                          Fail,
                                                                                                                                          Embed
                                                                                                                                            IO,
                                                                                                                                          Error
                                                                                                                                            JSONResponse,
                                                                                                                                          Resource,
                                                                                                                                          Final
                                                                                                                                            IO]
                                                                                                                                        EmptyResponse)))))))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"get-conversations" Domain
-> GetConversationsRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetConversationsResponseV2
forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r) =>
Domain
-> GetConversationsRequest -> Sem r GetConversationsResponseV2
getConversations
    Named
  "get-conversations"
  (Domain
   -> GetConversationsRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetConversationsResponseV2)
-> (Named
      "leave-conversation"
      (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
       -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
       -> Dict (HasAnnotation 'Remote "brig" "api-version")
       -> Domain
       -> LeaveConversationRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            LeaveConversationResponse)
    :<|> (Named
            "send-message"
            (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
             -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
             -> Domain
             -> ProteusMessageSendRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  MessageSendResponse)
          :<|> (Named
                  "update-conversation"
                  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Domain
                   -> ConversationUpdateRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        ConversationUpdateResponse)
                :<|> (Named
                        "mls-welcome"
                        (Domain
                         -> MLSWelcomeRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              MLSWelcomeResponse)
                      :<|> (Named
                              "send-mls-message"
                              (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                               -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                               -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                               -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                               -> Domain
                               -> MLSMessageSendRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    MLSMessageResponse)
                            :<|> (Named
                                    "send-mls-commit-bundle"
                                    (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                     -> Dict
                                          (HasAnnotation 'Remote "galley" "on-conversation-updated")
                                     -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                     -> Dict
                                          (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                                     -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                     -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                                     -> Dict (HasAnnotation 'Remote "brig" "api-version")
                                     -> Domain
                                     -> MLSMessageSendRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          MLSMessageResponse)
                                  :<|> (Named
                                          "query-group-info"
                                          (Domain
                                           -> GetGroupInfoRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                GetGroupInfoResponse)
                                        :<|> (Named
                                                "update-typing-indicator"
                                                (Dict
                                                   (HasAnnotation
                                                      'Remote
                                                      "galley"
                                                      "on-typing-indicator-updated")
                                                 -> Domain
                                                 -> TypingDataUpdateRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      TypingDataUpdateResponse)
                                              :<|> (Named
                                                      "on-typing-indicator-updated"
                                                      (Domain
                                                       -> TypingDataUpdated
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> (Named
                                                            "get-sub-conversation"
                                                            (Domain
                                                             -> GetSubConversationsRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  GetSubConversationsResponse)
                                                          :<|> (Named
                                                                  "delete-sub-conversation"
                                                                  (Domain
                                                                   -> DeleteSubConversationFedRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        DeleteSubConversationResponse)
                                                                :<|> (Named
                                                                        "leave-sub-conversation"
                                                                        (Dict
                                                                           (HasAnnotation
                                                                              'Remote
                                                                              "galley"
                                                                              "on-mls-message-sent")
                                                                         -> Domain
                                                                         -> LeaveSubConversationRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              LeaveSubConversationResponse)
                                                                      :<|> (Named
                                                                              "get-one2one-conversation@v1"
                                                                              (Domain
                                                                               -> GetOne2OneConversationRequest
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    GetOne2OneConversationResponse)
                                                                            :<|> (Named
                                                                                    "get-one2one-conversation"
                                                                                    (Domain
                                                                                     -> GetOne2OneConversationRequest
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          GetOne2OneConversationResponseV2)
                                                                                  :<|> (Named
                                                                                          "on-client-removed"
                                                                                          (Domain
                                                                                           -> ClientRemovedRequest
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                EmptyResponse)
                                                                                        :<|> (Named
                                                                                                "on-message-sent"
                                                                                                (Domain
                                                                                                 -> RemoteMessage
                                                                                                      ConvId
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      EmptyResponse)
                                                                                              :<|> (Named
                                                                                                      "on-mls-message-sent"
                                                                                                      (Domain
                                                                                                       -> RemoteMLSMessage
                                                                                                       -> Sem
                                                                                                            '[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,
                                                                                                              Error
                                                                                                                InvalidInput,
                                                                                                              Error
                                                                                                                InternalError,
                                                                                                              Error
                                                                                                                FederationError,
                                                                                                              Async,
                                                                                                              Delay,
                                                                                                              Fail,
                                                                                                              Embed
                                                                                                                IO,
                                                                                                              Error
                                                                                                                JSONResponse,
                                                                                                              Resource,
                                                                                                              Final
                                                                                                                IO]
                                                                                                            EmptyResponse)
                                                                                                    :<|> (Named
                                                                                                            (Versioned
                                                                                                               'V0
                                                                                                               "on-conversation-updated")
                                                                                                            (Domain
                                                                                                             -> ConversationUpdateV0
                                                                                                             -> Sem
                                                                                                                  '[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,
                                                                                                                    Error
                                                                                                                      InvalidInput,
                                                                                                                    Error
                                                                                                                      InternalError,
                                                                                                                    Error
                                                                                                                      FederationError,
                                                                                                                    Async,
                                                                                                                    Delay,
                                                                                                                    Fail,
                                                                                                                    Embed
                                                                                                                      IO,
                                                                                                                    Error
                                                                                                                      JSONResponse,
                                                                                                                    Resource,
                                                                                                                    Final
                                                                                                                      IO]
                                                                                                                  EmptyResponse)
                                                                                                          :<|> (Named
                                                                                                                  "on-conversation-updated"
                                                                                                                  (Domain
                                                                                                                   -> ConversationUpdate
                                                                                                                   -> Sem
                                                                                                                        '[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,
                                                                                                                          Error
                                                                                                                            InvalidInput,
                                                                                                                          Error
                                                                                                                            InternalError,
                                                                                                                          Error
                                                                                                                            FederationError,
                                                                                                                          Async,
                                                                                                                          Delay,
                                                                                                                          Fail,
                                                                                                                          Embed
                                                                                                                            IO,
                                                                                                                          Error
                                                                                                                            JSONResponse,
                                                                                                                          Resource,
                                                                                                                          Final
                                                                                                                            IO]
                                                                                                                        EmptyResponse)
                                                                                                                :<|> Named
                                                                                                                       "on-user-deleted-conversations"
                                                                                                                       (Domain
                                                                                                                        -> UserDeletedConversationsNotification
                                                                                                                        -> Sem
                                                                                                                             '[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,
                                                                                                                               Error
                                                                                                                                 InvalidInput,
                                                                                                                               Error
                                                                                                                                 InternalError,
                                                                                                                               Error
                                                                                                                                 FederationError,
                                                                                                                               Async,
                                                                                                                               Delay,
                                                                                                                               Fail,
                                                                                                                               Embed
                                                                                                                                 IO,
                                                                                                                               Error
                                                                                                                                 JSONResponse,
                                                                                                                               Resource,
                                                                                                                               Final
                                                                                                                                 IO]
                                                                                                                             EmptyResponse))))))))))))))))))))
-> Named
     "get-conversations"
     (Domain
      -> GetConversationsRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetConversationsResponseV2)
   :<|> (Named
           "leave-conversation"
           (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
            -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
            -> Dict (HasAnnotation 'Remote "brig" "api-version")
            -> Domain
            -> LeaveConversationRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 LeaveConversationResponse)
         :<|> (Named
                 "send-message"
                 (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
                  -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
                  -> Domain
                  -> ProteusMessageSendRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       MessageSendResponse)
               :<|> (Named
                       "update-conversation"
                       (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                        -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                        -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Domain
                        -> ConversationUpdateRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             ConversationUpdateResponse)
                     :<|> (Named
                             "mls-welcome"
                             (Domain
                              -> MLSWelcomeRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   MLSWelcomeResponse)
                           :<|> (Named
                                   "send-mls-message"
                                   (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                                    -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                    -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                                    -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                    -> Domain
                                    -> MLSMessageSendRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         MLSMessageResponse)
                                 :<|> (Named
                                         "send-mls-commit-bundle"
                                         (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                          -> Dict
                                               (HasAnnotation
                                                  'Remote "galley" "on-conversation-updated")
                                          -> Dict
                                               (HasAnnotation
                                                  'Remote "galley" "on-mls-message-sent")
                                          -> Dict
                                               (HasAnnotation
                                                  'Remote "galley" "send-mls-commit-bundle")
                                          -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                          -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                                          -> Dict (HasAnnotation 'Remote "brig" "api-version")
                                          -> Domain
                                          -> MLSMessageSendRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               MLSMessageResponse)
                                       :<|> (Named
                                               "query-group-info"
                                               (Domain
                                                -> GetGroupInfoRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     GetGroupInfoResponse)
                                             :<|> (Named
                                                     "update-typing-indicator"
                                                     (Dict
                                                        (HasAnnotation
                                                           'Remote
                                                           "galley"
                                                           "on-typing-indicator-updated")
                                                      -> Domain
                                                      -> TypingDataUpdateRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           TypingDataUpdateResponse)
                                                   :<|> (Named
                                                           "on-typing-indicator-updated"
                                                           (Domain
                                                            -> TypingDataUpdated
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> (Named
                                                                 "get-sub-conversation"
                                                                 (Domain
                                                                  -> GetSubConversationsRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       GetSubConversationsResponse)
                                                               :<|> (Named
                                                                       "delete-sub-conversation"
                                                                       (Domain
                                                                        -> DeleteSubConversationFedRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             DeleteSubConversationResponse)
                                                                     :<|> (Named
                                                                             "leave-sub-conversation"
                                                                             (Dict
                                                                                (HasAnnotation
                                                                                   'Remote
                                                                                   "galley"
                                                                                   "on-mls-message-sent")
                                                                              -> Domain
                                                                              -> LeaveSubConversationRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   LeaveSubConversationResponse)
                                                                           :<|> (Named
                                                                                   "get-one2one-conversation@v1"
                                                                                   (Domain
                                                                                    -> GetOne2OneConversationRequest
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         GetOne2OneConversationResponse)
                                                                                 :<|> (Named
                                                                                         "get-one2one-conversation"
                                                                                         (Domain
                                                                                          -> GetOne2OneConversationRequest
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               GetOne2OneConversationResponseV2)
                                                                                       :<|> (Named
                                                                                               "on-client-removed"
                                                                                               (Domain
                                                                                                -> ClientRemovedRequest
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse)
                                                                                             :<|> (Named
                                                                                                     "on-message-sent"
                                                                                                     (Domain
                                                                                                      -> RemoteMessage
                                                                                                           ConvId
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)
                                                                                                   :<|> (Named
                                                                                                           "on-mls-message-sent"
                                                                                                           (Domain
                                                                                                            -> RemoteMLSMessage
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse)
                                                                                                         :<|> (Named
                                                                                                                 (Versioned
                                                                                                                    'V0
                                                                                                                    "on-conversation-updated")
                                                                                                                 (Domain
                                                                                                                  -> ConversationUpdateV0
                                                                                                                  -> Sem
                                                                                                                       '[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,
                                                                                                                         Error
                                                                                                                           InvalidInput,
                                                                                                                         Error
                                                                                                                           InternalError,
                                                                                                                         Error
                                                                                                                           FederationError,
                                                                                                                         Async,
                                                                                                                         Delay,
                                                                                                                         Fail,
                                                                                                                         Embed
                                                                                                                           IO,
                                                                                                                         Error
                                                                                                                           JSONResponse,
                                                                                                                         Resource,
                                                                                                                         Final
                                                                                                                           IO]
                                                                                                                       EmptyResponse)
                                                                                                               :<|> (Named
                                                                                                                       "on-conversation-updated"
                                                                                                                       (Domain
                                                                                                                        -> ConversationUpdate
                                                                                                                        -> Sem
                                                                                                                             '[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,
                                                                                                                               Error
                                                                                                                                 InvalidInput,
                                                                                                                               Error
                                                                                                                                 InternalError,
                                                                                                                               Error
                                                                                                                                 FederationError,
                                                                                                                               Async,
                                                                                                                               Delay,
                                                                                                                               Fail,
                                                                                                                               Embed
                                                                                                                                 IO,
                                                                                                                               Error
                                                                                                                                 JSONResponse,
                                                                                                                               Resource,
                                                                                                                               Final
                                                                                                                                 IO]
                                                                                                                             EmptyResponse)
                                                                                                                     :<|> Named
                                                                                                                            "on-user-deleted-conversations"
                                                                                                                            (Domain
                                                                                                                             -> UserDeletedConversationsNotification
                                                                                                                             -> Sem
                                                                                                                                  '[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,
                                                                                                                                    Error
                                                                                                                                      InvalidInput,
                                                                                                                                    Error
                                                                                                                                      InternalError,
                                                                                                                                    Error
                                                                                                                                      FederationError,
                                                                                                                                    Async,
                                                                                                                                    Delay,
                                                                                                                                    Fail,
                                                                                                                                    Embed
                                                                                                                                      IO,
                                                                                                                                    Error
                                                                                                                                      JSONResponse,
                                                                                                                                    Resource,
                                                                                                                                    Final
                                                                                                                                      IO]
                                                                                                                                  EmptyResponse))))))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"leave-conversation" (((HasAnnotation 'Remote "galley" "on-conversation-updated",
  (HasAnnotation 'Remote "galley" "on-mls-message-sent",
   (HasAnnotation 'Remote "brig" "get-users-by-ids",
    (HasAnnotation 'Remote "brig" "api-version",
     () :: Constraint)))) =>
 Domain
 -> LeaveConversationRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      LeaveConversationResponse)
-> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
-> Dict (HasAnnotation 'Remote "brig" "api-version")
-> Domain
-> LeaveConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveConversationResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> LeaveConversationRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      LeaveConversationResponse)
-> Domain
-> LeaveConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveConversationResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> LeaveConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveConversationResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error InternalError) r,
 Member ExternalAccess r, Member FederatorAccess r,
 Member NotificationSubsystem r, Member (Input Env) r,
 Member (Input (Local ())) r, Member (Input UTCTime) r,
 Member MemberStore r, Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain
-> LeaveConversationRequest -> Sem r LeaveConversationResponse
leaveConversation))
    Named
  "leave-conversation"
  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
   -> Dict (HasAnnotation 'Remote "brig" "api-version")
   -> Domain
   -> LeaveConversationRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        LeaveConversationResponse)
-> (Named
      "send-message"
      (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
       -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
       -> Domain
       -> ProteusMessageSendRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            MessageSendResponse)
    :<|> (Named
            "update-conversation"
            (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
             -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
             -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Domain
             -> ConversationUpdateRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  ConversationUpdateResponse)
          :<|> (Named
                  "mls-welcome"
                  (Domain
                   -> MLSWelcomeRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        MLSWelcomeResponse)
                :<|> (Named
                        "send-mls-message"
                        (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                         -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                         -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                         -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                         -> Domain
                         -> MLSMessageSendRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              MLSMessageResponse)
                      :<|> (Named
                              "send-mls-commit-bundle"
                              (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                               -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                               -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                               -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                               -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                               -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                               -> Dict (HasAnnotation 'Remote "brig" "api-version")
                               -> Domain
                               -> MLSMessageSendRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    MLSMessageResponse)
                            :<|> (Named
                                    "query-group-info"
                                    (Domain
                                     -> GetGroupInfoRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          GetGroupInfoResponse)
                                  :<|> (Named
                                          "update-typing-indicator"
                                          (Dict
                                             (HasAnnotation
                                                'Remote "galley" "on-typing-indicator-updated")
                                           -> Domain
                                           -> TypingDataUpdateRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                TypingDataUpdateResponse)
                                        :<|> (Named
                                                "on-typing-indicator-updated"
                                                (Domain
                                                 -> TypingDataUpdated
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> (Named
                                                      "get-sub-conversation"
                                                      (Domain
                                                       -> GetSubConversationsRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            GetSubConversationsResponse)
                                                    :<|> (Named
                                                            "delete-sub-conversation"
                                                            (Domain
                                                             -> DeleteSubConversationFedRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  DeleteSubConversationResponse)
                                                          :<|> (Named
                                                                  "leave-sub-conversation"
                                                                  (Dict
                                                                     (HasAnnotation
                                                                        'Remote
                                                                        "galley"
                                                                        "on-mls-message-sent")
                                                                   -> Domain
                                                                   -> LeaveSubConversationRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        LeaveSubConversationResponse)
                                                                :<|> (Named
                                                                        "get-one2one-conversation@v1"
                                                                        (Domain
                                                                         -> GetOne2OneConversationRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              GetOne2OneConversationResponse)
                                                                      :<|> (Named
                                                                              "get-one2one-conversation"
                                                                              (Domain
                                                                               -> GetOne2OneConversationRequest
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    GetOne2OneConversationResponseV2)
                                                                            :<|> (Named
                                                                                    "on-client-removed"
                                                                                    (Domain
                                                                                     -> ClientRemovedRequest
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          EmptyResponse)
                                                                                  :<|> (Named
                                                                                          "on-message-sent"
                                                                                          (Domain
                                                                                           -> RemoteMessage
                                                                                                ConvId
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                EmptyResponse)
                                                                                        :<|> (Named
                                                                                                "on-mls-message-sent"
                                                                                                (Domain
                                                                                                 -> RemoteMLSMessage
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      EmptyResponse)
                                                                                              :<|> (Named
                                                                                                      (Versioned
                                                                                                         'V0
                                                                                                         "on-conversation-updated")
                                                                                                      (Domain
                                                                                                       -> ConversationUpdateV0
                                                                                                       -> Sem
                                                                                                            '[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,
                                                                                                              Error
                                                                                                                InvalidInput,
                                                                                                              Error
                                                                                                                InternalError,
                                                                                                              Error
                                                                                                                FederationError,
                                                                                                              Async,
                                                                                                              Delay,
                                                                                                              Fail,
                                                                                                              Embed
                                                                                                                IO,
                                                                                                              Error
                                                                                                                JSONResponse,
                                                                                                              Resource,
                                                                                                              Final
                                                                                                                IO]
                                                                                                            EmptyResponse)
                                                                                                    :<|> (Named
                                                                                                            "on-conversation-updated"
                                                                                                            (Domain
                                                                                                             -> ConversationUpdate
                                                                                                             -> Sem
                                                                                                                  '[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,
                                                                                                                    Error
                                                                                                                      InvalidInput,
                                                                                                                    Error
                                                                                                                      InternalError,
                                                                                                                    Error
                                                                                                                      FederationError,
                                                                                                                    Async,
                                                                                                                    Delay,
                                                                                                                    Fail,
                                                                                                                    Embed
                                                                                                                      IO,
                                                                                                                    Error
                                                                                                                      JSONResponse,
                                                                                                                    Resource,
                                                                                                                    Final
                                                                                                                      IO]
                                                                                                                  EmptyResponse)
                                                                                                          :<|> Named
                                                                                                                 "on-user-deleted-conversations"
                                                                                                                 (Domain
                                                                                                                  -> UserDeletedConversationsNotification
                                                                                                                  -> Sem
                                                                                                                       '[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,
                                                                                                                         Error
                                                                                                                           InvalidInput,
                                                                                                                         Error
                                                                                                                           InternalError,
                                                                                                                         Error
                                                                                                                           FederationError,
                                                                                                                         Async,
                                                                                                                         Delay,
                                                                                                                         Fail,
                                                                                                                         Embed
                                                                                                                           IO,
                                                                                                                         Error
                                                                                                                           JSONResponse,
                                                                                                                         Resource,
                                                                                                                         Final
                                                                                                                           IO]
                                                                                                                       EmptyResponse)))))))))))))))))))
-> Named
     "leave-conversation"
     (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
      -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
      -> Dict (HasAnnotation 'Remote "brig" "api-version")
      -> Domain
      -> LeaveConversationRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           LeaveConversationResponse)
   :<|> (Named
           "send-message"
           (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
            -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
            -> Domain
            -> ProteusMessageSendRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 MessageSendResponse)
         :<|> (Named
                 "update-conversation"
                 (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                  -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                  -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Domain
                  -> ConversationUpdateRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       ConversationUpdateResponse)
               :<|> (Named
                       "mls-welcome"
                       (Domain
                        -> MLSWelcomeRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             MLSWelcomeResponse)
                     :<|> (Named
                             "send-mls-message"
                             (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                              -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                              -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                              -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                              -> Domain
                              -> MLSMessageSendRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   MLSMessageResponse)
                           :<|> (Named
                                   "send-mls-commit-bundle"
                                   (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                                    -> Dict
                                         (HasAnnotation 'Remote "galley" "on-conversation-updated")
                                    -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                    -> Dict
                                         (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                                    -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                                    -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                                    -> Dict (HasAnnotation 'Remote "brig" "api-version")
                                    -> Domain
                                    -> MLSMessageSendRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         MLSMessageResponse)
                                 :<|> (Named
                                         "query-group-info"
                                         (Domain
                                          -> GetGroupInfoRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               GetGroupInfoResponse)
                                       :<|> (Named
                                               "update-typing-indicator"
                                               (Dict
                                                  (HasAnnotation
                                                     'Remote "galley" "on-typing-indicator-updated")
                                                -> Domain
                                                -> TypingDataUpdateRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     TypingDataUpdateResponse)
                                             :<|> (Named
                                                     "on-typing-indicator-updated"
                                                     (Domain
                                                      -> TypingDataUpdated
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> (Named
                                                           "get-sub-conversation"
                                                           (Domain
                                                            -> GetSubConversationsRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 GetSubConversationsResponse)
                                                         :<|> (Named
                                                                 "delete-sub-conversation"
                                                                 (Domain
                                                                  -> DeleteSubConversationFedRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       DeleteSubConversationResponse)
                                                               :<|> (Named
                                                                       "leave-sub-conversation"
                                                                       (Dict
                                                                          (HasAnnotation
                                                                             'Remote
                                                                             "galley"
                                                                             "on-mls-message-sent")
                                                                        -> Domain
                                                                        -> LeaveSubConversationRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             LeaveSubConversationResponse)
                                                                     :<|> (Named
                                                                             "get-one2one-conversation@v1"
                                                                             (Domain
                                                                              -> GetOne2OneConversationRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   GetOne2OneConversationResponse)
                                                                           :<|> (Named
                                                                                   "get-one2one-conversation"
                                                                                   (Domain
                                                                                    -> GetOne2OneConversationRequest
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         GetOne2OneConversationResponseV2)
                                                                                 :<|> (Named
                                                                                         "on-client-removed"
                                                                                         (Domain
                                                                                          -> ClientRemovedRequest
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)
                                                                                       :<|> (Named
                                                                                               "on-message-sent"
                                                                                               (Domain
                                                                                                -> RemoteMessage
                                                                                                     ConvId
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse)
                                                                                             :<|> (Named
                                                                                                     "on-mls-message-sent"
                                                                                                     (Domain
                                                                                                      -> RemoteMLSMessage
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)
                                                                                                   :<|> (Named
                                                                                                           (Versioned
                                                                                                              'V0
                                                                                                              "on-conversation-updated")
                                                                                                           (Domain
                                                                                                            -> ConversationUpdateV0
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse)
                                                                                                         :<|> (Named
                                                                                                                 "on-conversation-updated"
                                                                                                                 (Domain
                                                                                                                  -> ConversationUpdate
                                                                                                                  -> Sem
                                                                                                                       '[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,
                                                                                                                         Error
                                                                                                                           InvalidInput,
                                                                                                                         Error
                                                                                                                           InternalError,
                                                                                                                         Error
                                                                                                                           FederationError,
                                                                                                                         Async,
                                                                                                                         Delay,
                                                                                                                         Fail,
                                                                                                                         Embed
                                                                                                                           IO,
                                                                                                                         Error
                                                                                                                           JSONResponse,
                                                                                                                         Resource,
                                                                                                                         Final
                                                                                                                           IO]
                                                                                                                       EmptyResponse)
                                                                                                               :<|> Named
                                                                                                                      "on-user-deleted-conversations"
                                                                                                                      (Domain
                                                                                                                       -> UserDeletedConversationsNotification
                                                                                                                       -> Sem
                                                                                                                            '[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,
                                                                                                                              Error
                                                                                                                                InvalidInput,
                                                                                                                              Error
                                                                                                                                InternalError,
                                                                                                                              Error
                                                                                                                                FederationError,
                                                                                                                              Async,
                                                                                                                              Delay,
                                                                                                                              Fail,
                                                                                                                              Embed
                                                                                                                                IO,
                                                                                                                              Error
                                                                                                                                JSONResponse,
                                                                                                                              Resource,
                                                                                                                              Final
                                                                                                                                IO]
                                                                                                                            EmptyResponse)))))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"send-message" (((HasAnnotation 'Remote "galley" "on-message-sent",
  (HasAnnotation 'Remote "brig" "get-user-clients",
   () :: Constraint)) =>
 Domain
 -> ProteusMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MessageSendResponse)
-> Dict (HasAnnotation 'Remote "galley" "on-message-sent")
-> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
-> Domain
-> ProteusMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MessageSendResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> ProteusMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MessageSendResponse)
-> Domain
-> ProteusMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MessageSendResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> ProteusMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MessageSendResponse
forall (r :: EffectRow).
(Member BrigAccess r, Member ClientStore r,
 Member ConversationStore r, Member (Error InvalidInput) r,
 Member FederatorAccess r, Member BackendNotificationQueueAccess r,
 Member NotificationSubsystem r, Member (Input (Local ())) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member ExternalAccess r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r) =>
Domain -> ProteusMessageSendRequest -> Sem r MessageSendResponse
sendMessage))
    Named
  "send-message"
  (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
   -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
   -> Domain
   -> ProteusMessageSendRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        MessageSendResponse)
-> (Named
      "update-conversation"
      (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
       -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
       -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Domain
       -> ConversationUpdateRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            ConversationUpdateResponse)
    :<|> (Named
            "mls-welcome"
            (Domain
             -> MLSWelcomeRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  MLSWelcomeResponse)
          :<|> (Named
                  "send-mls-message"
                  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                   -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                   -> Domain
                   -> MLSMessageSendRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        MLSMessageResponse)
                :<|> (Named
                        "send-mls-commit-bundle"
                        (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                         -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                         -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                         -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                         -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                         -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                         -> Dict (HasAnnotation 'Remote "brig" "api-version")
                         -> Domain
                         -> MLSMessageSendRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              MLSMessageResponse)
                      :<|> (Named
                              "query-group-info"
                              (Domain
                               -> GetGroupInfoRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    GetGroupInfoResponse)
                            :<|> (Named
                                    "update-typing-indicator"
                                    (Dict
                                       (HasAnnotation
                                          'Remote "galley" "on-typing-indicator-updated")
                                     -> Domain
                                     -> TypingDataUpdateRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          TypingDataUpdateResponse)
                                  :<|> (Named
                                          "on-typing-indicator-updated"
                                          (Domain
                                           -> TypingDataUpdated
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> (Named
                                                "get-sub-conversation"
                                                (Domain
                                                 -> GetSubConversationsRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      GetSubConversationsResponse)
                                              :<|> (Named
                                                      "delete-sub-conversation"
                                                      (Domain
                                                       -> DeleteSubConversationFedRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            DeleteSubConversationResponse)
                                                    :<|> (Named
                                                            "leave-sub-conversation"
                                                            (Dict
                                                               (HasAnnotation
                                                                  'Remote
                                                                  "galley"
                                                                  "on-mls-message-sent")
                                                             -> Domain
                                                             -> LeaveSubConversationRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  LeaveSubConversationResponse)
                                                          :<|> (Named
                                                                  "get-one2one-conversation@v1"
                                                                  (Domain
                                                                   -> GetOne2OneConversationRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        GetOne2OneConversationResponse)
                                                                :<|> (Named
                                                                        "get-one2one-conversation"
                                                                        (Domain
                                                                         -> GetOne2OneConversationRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              GetOne2OneConversationResponseV2)
                                                                      :<|> (Named
                                                                              "on-client-removed"
                                                                              (Domain
                                                                               -> ClientRemovedRequest
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    EmptyResponse)
                                                                            :<|> (Named
                                                                                    "on-message-sent"
                                                                                    (Domain
                                                                                     -> RemoteMessage
                                                                                          ConvId
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          EmptyResponse)
                                                                                  :<|> (Named
                                                                                          "on-mls-message-sent"
                                                                                          (Domain
                                                                                           -> RemoteMLSMessage
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                EmptyResponse)
                                                                                        :<|> (Named
                                                                                                (Versioned
                                                                                                   'V0
                                                                                                   "on-conversation-updated")
                                                                                                (Domain
                                                                                                 -> ConversationUpdateV0
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      EmptyResponse)
                                                                                              :<|> (Named
                                                                                                      "on-conversation-updated"
                                                                                                      (Domain
                                                                                                       -> ConversationUpdate
                                                                                                       -> Sem
                                                                                                            '[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,
                                                                                                              Error
                                                                                                                InvalidInput,
                                                                                                              Error
                                                                                                                InternalError,
                                                                                                              Error
                                                                                                                FederationError,
                                                                                                              Async,
                                                                                                              Delay,
                                                                                                              Fail,
                                                                                                              Embed
                                                                                                                IO,
                                                                                                              Error
                                                                                                                JSONResponse,
                                                                                                              Resource,
                                                                                                              Final
                                                                                                                IO]
                                                                                                            EmptyResponse)
                                                                                                    :<|> Named
                                                                                                           "on-user-deleted-conversations"
                                                                                                           (Domain
                                                                                                            -> UserDeletedConversationsNotification
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse))))))))))))))))))
-> Named
     "send-message"
     (Dict (HasAnnotation 'Remote "galley" "on-message-sent")
      -> Dict (HasAnnotation 'Remote "brig" "get-user-clients")
      -> Domain
      -> ProteusMessageSendRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           MessageSendResponse)
   :<|> (Named
           "update-conversation"
           (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
            -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
            -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Domain
            -> ConversationUpdateRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 ConversationUpdateResponse)
         :<|> (Named
                 "mls-welcome"
                 (Domain
                  -> MLSWelcomeRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       MLSWelcomeResponse)
               :<|> (Named
                       "send-mls-message"
                       (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                        -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                        -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                        -> Domain
                        -> MLSMessageSendRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             MLSMessageResponse)
                     :<|> (Named
                             "send-mls-commit-bundle"
                             (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                              -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                              -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                              -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                              -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                              -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                              -> Dict (HasAnnotation 'Remote "brig" "api-version")
                              -> Domain
                              -> MLSMessageSendRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   MLSMessageResponse)
                           :<|> (Named
                                   "query-group-info"
                                   (Domain
                                    -> GetGroupInfoRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         GetGroupInfoResponse)
                                 :<|> (Named
                                         "update-typing-indicator"
                                         (Dict
                                            (HasAnnotation
                                               'Remote "galley" "on-typing-indicator-updated")
                                          -> Domain
                                          -> TypingDataUpdateRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               TypingDataUpdateResponse)
                                       :<|> (Named
                                               "on-typing-indicator-updated"
                                               (Domain
                                                -> TypingDataUpdated
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> (Named
                                                     "get-sub-conversation"
                                                     (Domain
                                                      -> GetSubConversationsRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           GetSubConversationsResponse)
                                                   :<|> (Named
                                                           "delete-sub-conversation"
                                                           (Domain
                                                            -> DeleteSubConversationFedRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 DeleteSubConversationResponse)
                                                         :<|> (Named
                                                                 "leave-sub-conversation"
                                                                 (Dict
                                                                    (HasAnnotation
                                                                       'Remote
                                                                       "galley"
                                                                       "on-mls-message-sent")
                                                                  -> Domain
                                                                  -> LeaveSubConversationRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       LeaveSubConversationResponse)
                                                               :<|> (Named
                                                                       "get-one2one-conversation@v1"
                                                                       (Domain
                                                                        -> GetOne2OneConversationRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             GetOne2OneConversationResponse)
                                                                     :<|> (Named
                                                                             "get-one2one-conversation"
                                                                             (Domain
                                                                              -> GetOne2OneConversationRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   GetOne2OneConversationResponseV2)
                                                                           :<|> (Named
                                                                                   "on-client-removed"
                                                                                   (Domain
                                                                                    -> ClientRemovedRequest
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse)
                                                                                 :<|> (Named
                                                                                         "on-message-sent"
                                                                                         (Domain
                                                                                          -> RemoteMessage
                                                                                               ConvId
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)
                                                                                       :<|> (Named
                                                                                               "on-mls-message-sent"
                                                                                               (Domain
                                                                                                -> RemoteMLSMessage
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse)
                                                                                             :<|> (Named
                                                                                                     (Versioned
                                                                                                        'V0
                                                                                                        "on-conversation-updated")
                                                                                                     (Domain
                                                                                                      -> ConversationUpdateV0
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)
                                                                                                   :<|> (Named
                                                                                                           "on-conversation-updated"
                                                                                                           (Domain
                                                                                                            -> ConversationUpdate
                                                                                                            -> Sem
                                                                                                                 '[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,
                                                                                                                   Error
                                                                                                                     InvalidInput,
                                                                                                                   Error
                                                                                                                     InternalError,
                                                                                                                   Error
                                                                                                                     FederationError,
                                                                                                                   Async,
                                                                                                                   Delay,
                                                                                                                   Fail,
                                                                                                                   Embed
                                                                                                                     IO,
                                                                                                                   Error
                                                                                                                     JSONResponse,
                                                                                                                   Resource,
                                                                                                                   Final
                                                                                                                     IO]
                                                                                                                 EmptyResponse)
                                                                                                         :<|> Named
                                                                                                                "on-user-deleted-conversations"
                                                                                                                (Domain
                                                                                                                 -> UserDeletedConversationsNotification
                                                                                                                 -> Sem
                                                                                                                      '[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,
                                                                                                                        Error
                                                                                                                          InvalidInput,
                                                                                                                        Error
                                                                                                                          InternalError,
                                                                                                                        Error
                                                                                                                          FederationError,
                                                                                                                        Async,
                                                                                                                        Delay,
                                                                                                                        Fail,
                                                                                                                        Embed
                                                                                                                          IO,
                                                                                                                        Error
                                                                                                                          JSONResponse,
                                                                                                                        Resource,
                                                                                                                        Final
                                                                                                                          IO]
                                                                                                                      EmptyResponse))))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"update-conversation" (((HasAnnotation 'Remote "galley" "on-conversation-updated",
  (HasAnnotation 'Remote "galley" "on-mls-message-sent",
   (HasAnnotation 'Remote "brig" "get-users-by-ids",
    (HasAnnotation 'Remote "galley" "on-mls-message-sent",
     () :: Constraint)))) =>
 Domain
 -> ConversationUpdateRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      ConversationUpdateResponse)
-> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Domain
-> ConversationUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     ConversationUpdateResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> ConversationUpdateRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      ConversationUpdateResponse)
-> Domain
-> ConversationUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     ConversationUpdateResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> ConversationUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     ConversationUpdateResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member CodeStore r, Member BotAccess r, Member FireAndForget r,
 Member (Error FederationError) r, Member (Error InvalidInput) r,
 Member ExternalAccess r, Member FederatorAccess r,
 Member (Error InternalError) r, Member NotificationSubsystem r,
 Member (Input Env) r, Member (Input Opts) r,
 Member (Input UTCTime) r, Member LegalHoldStore r,
 Member MemberStore r, Member ProposalStore r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r, Member ConversationStore r,
 Member Random r, Member SubConversationStore r,
 Member TeamFeatureStore r, Member (Input (Local ())) r) =>
Domain
-> ConversationUpdateRequest -> Sem r ConversationUpdateResponse
updateConversation))
    Named
  "update-conversation"
  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Domain
   -> ConversationUpdateRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        ConversationUpdateResponse)
-> (Named
      "mls-welcome"
      (Domain
       -> MLSWelcomeRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            MLSWelcomeResponse)
    :<|> (Named
            "send-mls-message"
            (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
             -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
             -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
             -> Domain
             -> MLSMessageSendRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  MLSMessageResponse)
          :<|> (Named
                  "send-mls-commit-bundle"
                  (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                   -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                   -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                   -> Dict (HasAnnotation 'Remote "brig" "api-version")
                   -> Domain
                   -> MLSMessageSendRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        MLSMessageResponse)
                :<|> (Named
                        "query-group-info"
                        (Domain
                         -> GetGroupInfoRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              GetGroupInfoResponse)
                      :<|> (Named
                              "update-typing-indicator"
                              (Dict
                                 (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                               -> Domain
                               -> TypingDataUpdateRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    TypingDataUpdateResponse)
                            :<|> (Named
                                    "on-typing-indicator-updated"
                                    (Domain
                                     -> TypingDataUpdated
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> (Named
                                          "get-sub-conversation"
                                          (Domain
                                           -> GetSubConversationsRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                GetSubConversationsResponse)
                                        :<|> (Named
                                                "delete-sub-conversation"
                                                (Domain
                                                 -> DeleteSubConversationFedRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      DeleteSubConversationResponse)
                                              :<|> (Named
                                                      "leave-sub-conversation"
                                                      (Dict
                                                         (HasAnnotation
                                                            'Remote "galley" "on-mls-message-sent")
                                                       -> Domain
                                                       -> LeaveSubConversationRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            LeaveSubConversationResponse)
                                                    :<|> (Named
                                                            "get-one2one-conversation@v1"
                                                            (Domain
                                                             -> GetOne2OneConversationRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  GetOne2OneConversationResponse)
                                                          :<|> (Named
                                                                  "get-one2one-conversation"
                                                                  (Domain
                                                                   -> GetOne2OneConversationRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        GetOne2OneConversationResponseV2)
                                                                :<|> (Named
                                                                        "on-client-removed"
                                                                        (Domain
                                                                         -> ClientRemovedRequest
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              EmptyResponse)
                                                                      :<|> (Named
                                                                              "on-message-sent"
                                                                              (Domain
                                                                               -> RemoteMessage
                                                                                    ConvId
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    EmptyResponse)
                                                                            :<|> (Named
                                                                                    "on-mls-message-sent"
                                                                                    (Domain
                                                                                     -> RemoteMLSMessage
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          EmptyResponse)
                                                                                  :<|> (Named
                                                                                          (Versioned
                                                                                             'V0
                                                                                             "on-conversation-updated")
                                                                                          (Domain
                                                                                           -> ConversationUpdateV0
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                EmptyResponse)
                                                                                        :<|> (Named
                                                                                                "on-conversation-updated"
                                                                                                (Domain
                                                                                                 -> ConversationUpdate
                                                                                                 -> Sem
                                                                                                      '[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,
                                                                                                        Error
                                                                                                          InvalidInput,
                                                                                                        Error
                                                                                                          InternalError,
                                                                                                        Error
                                                                                                          FederationError,
                                                                                                        Async,
                                                                                                        Delay,
                                                                                                        Fail,
                                                                                                        Embed
                                                                                                          IO,
                                                                                                        Error
                                                                                                          JSONResponse,
                                                                                                        Resource,
                                                                                                        Final
                                                                                                          IO]
                                                                                                      EmptyResponse)
                                                                                              :<|> Named
                                                                                                     "on-user-deleted-conversations"
                                                                                                     (Domain
                                                                                                      -> UserDeletedConversationsNotification
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)))))))))))))))))
-> Named
     "update-conversation"
     (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
      -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
      -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Domain
      -> ConversationUpdateRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           ConversationUpdateResponse)
   :<|> (Named
           "mls-welcome"
           (Domain
            -> MLSWelcomeRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 MLSWelcomeResponse)
         :<|> (Named
                 "send-mls-message"
                 (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                  -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
                  -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                  -> Domain
                  -> MLSMessageSendRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       MLSMessageResponse)
               :<|> (Named
                       "send-mls-commit-bundle"
                       (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                        -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                        -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                        -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                        -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                        -> Dict (HasAnnotation 'Remote "brig" "api-version")
                        -> Domain
                        -> MLSMessageSendRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             MLSMessageResponse)
                     :<|> (Named
                             "query-group-info"
                             (Domain
                              -> GetGroupInfoRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   GetGroupInfoResponse)
                           :<|> (Named
                                   "update-typing-indicator"
                                   (Dict
                                      (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                                    -> Domain
                                    -> TypingDataUpdateRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         TypingDataUpdateResponse)
                                 :<|> (Named
                                         "on-typing-indicator-updated"
                                         (Domain
                                          -> TypingDataUpdated
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> (Named
                                               "get-sub-conversation"
                                               (Domain
                                                -> GetSubConversationsRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     GetSubConversationsResponse)
                                             :<|> (Named
                                                     "delete-sub-conversation"
                                                     (Domain
                                                      -> DeleteSubConversationFedRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           DeleteSubConversationResponse)
                                                   :<|> (Named
                                                           "leave-sub-conversation"
                                                           (Dict
                                                              (HasAnnotation
                                                                 'Remote
                                                                 "galley"
                                                                 "on-mls-message-sent")
                                                            -> Domain
                                                            -> LeaveSubConversationRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 LeaveSubConversationResponse)
                                                         :<|> (Named
                                                                 "get-one2one-conversation@v1"
                                                                 (Domain
                                                                  -> GetOne2OneConversationRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       GetOne2OneConversationResponse)
                                                               :<|> (Named
                                                                       "get-one2one-conversation"
                                                                       (Domain
                                                                        -> GetOne2OneConversationRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             GetOne2OneConversationResponseV2)
                                                                     :<|> (Named
                                                                             "on-client-removed"
                                                                             (Domain
                                                                              -> ClientRemovedRequest
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)
                                                                           :<|> (Named
                                                                                   "on-message-sent"
                                                                                   (Domain
                                                                                    -> RemoteMessage
                                                                                         ConvId
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse)
                                                                                 :<|> (Named
                                                                                         "on-mls-message-sent"
                                                                                         (Domain
                                                                                          -> RemoteMLSMessage
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)
                                                                                       :<|> (Named
                                                                                               (Versioned
                                                                                                  'V0
                                                                                                  "on-conversation-updated")
                                                                                               (Domain
                                                                                                -> ConversationUpdateV0
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse)
                                                                                             :<|> (Named
                                                                                                     "on-conversation-updated"
                                                                                                     (Domain
                                                                                                      -> ConversationUpdate
                                                                                                      -> Sem
                                                                                                           '[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,
                                                                                                             Error
                                                                                                               InvalidInput,
                                                                                                             Error
                                                                                                               InternalError,
                                                                                                             Error
                                                                                                               FederationError,
                                                                                                             Async,
                                                                                                             Delay,
                                                                                                             Fail,
                                                                                                             Embed
                                                                                                               IO,
                                                                                                             Error
                                                                                                               JSONResponse,
                                                                                                             Resource,
                                                                                                             Final
                                                                                                               IO]
                                                                                                           EmptyResponse)
                                                                                                   :<|> Named
                                                                                                          "on-user-deleted-conversations"
                                                                                                          (Domain
                                                                                                           -> UserDeletedConversationsNotification
                                                                                                           -> Sem
                                                                                                                '[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,
                                                                                                                  Error
                                                                                                                    InvalidInput,
                                                                                                                  Error
                                                                                                                    InternalError,
                                                                                                                  Error
                                                                                                                    FederationError,
                                                                                                                  Async,
                                                                                                                  Delay,
                                                                                                                  Fail,
                                                                                                                  Embed
                                                                                                                    IO,
                                                                                                                  Error
                                                                                                                    JSONResponse,
                                                                                                                  Resource,
                                                                                                                  Final
                                                                                                                    IO]
                                                                                                                EmptyResponse)))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"mls-welcome" Domain
-> MLSWelcomeRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSWelcomeResponse
forall (r :: EffectRow).
(Member (Error InternalError) r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Logger (Msg -> Msg)) r,
 Member (Input Env) r, Member (Input (Local ())) r,
 Member (Input UTCTime) r) =>
Domain -> MLSWelcomeRequest -> Sem r MLSWelcomeResponse
mlsSendWelcome
    Named
  "mls-welcome"
  (Domain
   -> MLSWelcomeRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        MLSWelcomeResponse)
-> (Named
      "send-mls-message"
      (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
       -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
       -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
       -> Domain
       -> MLSMessageSendRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            MLSMessageResponse)
    :<|> (Named
            "send-mls-commit-bundle"
            (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
             -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
             -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
             -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
             -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
             -> Dict (HasAnnotation 'Remote "brig" "api-version")
             -> Domain
             -> MLSMessageSendRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  MLSMessageResponse)
          :<|> (Named
                  "query-group-info"
                  (Domain
                   -> GetGroupInfoRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        GetGroupInfoResponse)
                :<|> (Named
                        "update-typing-indicator"
                        (Dict
                           (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                         -> Domain
                         -> TypingDataUpdateRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              TypingDataUpdateResponse)
                      :<|> (Named
                              "on-typing-indicator-updated"
                              (Domain
                               -> TypingDataUpdated
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> (Named
                                    "get-sub-conversation"
                                    (Domain
                                     -> GetSubConversationsRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          GetSubConversationsResponse)
                                  :<|> (Named
                                          "delete-sub-conversation"
                                          (Domain
                                           -> DeleteSubConversationFedRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                DeleteSubConversationResponse)
                                        :<|> (Named
                                                "leave-sub-conversation"
                                                (Dict
                                                   (HasAnnotation
                                                      'Remote "galley" "on-mls-message-sent")
                                                 -> Domain
                                                 -> LeaveSubConversationRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      LeaveSubConversationResponse)
                                              :<|> (Named
                                                      "get-one2one-conversation@v1"
                                                      (Domain
                                                       -> GetOne2OneConversationRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            GetOne2OneConversationResponse)
                                                    :<|> (Named
                                                            "get-one2one-conversation"
                                                            (Domain
                                                             -> GetOne2OneConversationRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  GetOne2OneConversationResponseV2)
                                                          :<|> (Named
                                                                  "on-client-removed"
                                                                  (Domain
                                                                   -> ClientRemovedRequest
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> (Named
                                                                        "on-message-sent"
                                                                        (Domain
                                                                         -> RemoteMessage ConvId
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              EmptyResponse)
                                                                      :<|> (Named
                                                                              "on-mls-message-sent"
                                                                              (Domain
                                                                               -> RemoteMLSMessage
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    EmptyResponse)
                                                                            :<|> (Named
                                                                                    (Versioned
                                                                                       'V0
                                                                                       "on-conversation-updated")
                                                                                    (Domain
                                                                                     -> ConversationUpdateV0
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          EmptyResponse)
                                                                                  :<|> (Named
                                                                                          "on-conversation-updated"
                                                                                          (Domain
                                                                                           -> ConversationUpdate
                                                                                           -> Sem
                                                                                                '[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,
                                                                                                  Error
                                                                                                    InvalidInput,
                                                                                                  Error
                                                                                                    InternalError,
                                                                                                  Error
                                                                                                    FederationError,
                                                                                                  Async,
                                                                                                  Delay,
                                                                                                  Fail,
                                                                                                  Embed
                                                                                                    IO,
                                                                                                  Error
                                                                                                    JSONResponse,
                                                                                                  Resource,
                                                                                                  Final
                                                                                                    IO]
                                                                                                EmptyResponse)
                                                                                        :<|> Named
                                                                                               "on-user-deleted-conversations"
                                                                                               (Domain
                                                                                                -> UserDeletedConversationsNotification
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse))))))))))))))))
-> Named
     "mls-welcome"
     (Domain
      -> MLSWelcomeRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           MLSWelcomeResponse)
   :<|> (Named
           "send-mls-message"
           (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
            -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
            -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
            -> Domain
            -> MLSMessageSendRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 MLSMessageResponse)
         :<|> (Named
                 "send-mls-commit-bundle"
                 (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
                  -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
                  -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
                  -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
                  -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
                  -> Dict (HasAnnotation 'Remote "brig" "api-version")
                  -> Domain
                  -> MLSMessageSendRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       MLSMessageResponse)
               :<|> (Named
                       "query-group-info"
                       (Domain
                        -> GetGroupInfoRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             GetGroupInfoResponse)
                     :<|> (Named
                             "update-typing-indicator"
                             (Dict
                                (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                              -> Domain
                              -> TypingDataUpdateRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   TypingDataUpdateResponse)
                           :<|> (Named
                                   "on-typing-indicator-updated"
                                   (Domain
                                    -> TypingDataUpdated
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> (Named
                                         "get-sub-conversation"
                                         (Domain
                                          -> GetSubConversationsRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               GetSubConversationsResponse)
                                       :<|> (Named
                                               "delete-sub-conversation"
                                               (Domain
                                                -> DeleteSubConversationFedRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     DeleteSubConversationResponse)
                                             :<|> (Named
                                                     "leave-sub-conversation"
                                                     (Dict
                                                        (HasAnnotation
                                                           'Remote "galley" "on-mls-message-sent")
                                                      -> Domain
                                                      -> LeaveSubConversationRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           LeaveSubConversationResponse)
                                                   :<|> (Named
                                                           "get-one2one-conversation@v1"
                                                           (Domain
                                                            -> GetOne2OneConversationRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 GetOne2OneConversationResponse)
                                                         :<|> (Named
                                                                 "get-one2one-conversation"
                                                                 (Domain
                                                                  -> GetOne2OneConversationRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       GetOne2OneConversationResponseV2)
                                                               :<|> (Named
                                                                       "on-client-removed"
                                                                       (Domain
                                                                        -> ClientRemovedRequest
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> (Named
                                                                             "on-message-sent"
                                                                             (Domain
                                                                              -> RemoteMessage
                                                                                   ConvId
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)
                                                                           :<|> (Named
                                                                                   "on-mls-message-sent"
                                                                                   (Domain
                                                                                    -> RemoteMLSMessage
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse)
                                                                                 :<|> (Named
                                                                                         (Versioned
                                                                                            'V0
                                                                                            "on-conversation-updated")
                                                                                         (Domain
                                                                                          -> ConversationUpdateV0
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)
                                                                                       :<|> (Named
                                                                                               "on-conversation-updated"
                                                                                               (Domain
                                                                                                -> ConversationUpdate
                                                                                                -> Sem
                                                                                                     '[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,
                                                                                                       Error
                                                                                                         InvalidInput,
                                                                                                       Error
                                                                                                         InternalError,
                                                                                                       Error
                                                                                                         FederationError,
                                                                                                       Async,
                                                                                                       Delay,
                                                                                                       Fail,
                                                                                                       Embed
                                                                                                         IO,
                                                                                                       Error
                                                                                                         JSONResponse,
                                                                                                       Resource,
                                                                                                       Final
                                                                                                         IO]
                                                                                                     EmptyResponse)
                                                                                             :<|> Named
                                                                                                    "on-user-deleted-conversations"
                                                                                                    (Domain
                                                                                                     -> UserDeletedConversationsNotification
                                                                                                     -> Sem
                                                                                                          '[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,
                                                                                                            Error
                                                                                                              InvalidInput,
                                                                                                            Error
                                                                                                              InternalError,
                                                                                                            Error
                                                                                                              FederationError,
                                                                                                            Async,
                                                                                                            Delay,
                                                                                                            Fail,
                                                                                                            Embed
                                                                                                              IO,
                                                                                                            Error
                                                                                                              JSONResponse,
                                                                                                            Resource,
                                                                                                            Final
                                                                                                              IO]
                                                                                                          EmptyResponse))))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"send-mls-message" (((HasAnnotation 'Remote "galley" "on-conversation-updated",
  (HasAnnotation 'Remote "galley" "on-mls-message-sent",
   (HasAnnotation 'Remote "galley" "send-mls-message",
    (HasAnnotation 'Remote "brig" "get-mls-clients",
     () :: Constraint)))) =>
 Domain
 -> MLSMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MLSMessageResponse)
-> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
-> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
-> Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> MLSMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MLSMessageResponse)
-> Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member (Error InternalError) r,
 Member FederatorAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member LegalHoldStore r, Member MemberStore r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r, Member ProposalStore r,
 Member SubConversationStore r) =>
Domain -> MLSMessageSendRequest -> Sem r MLSMessageResponse
sendMLSMessage))
    Named
  "send-mls-message"
  (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
   -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
   -> Domain
   -> MLSMessageSendRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        MLSMessageResponse)
-> (Named
      "send-mls-commit-bundle"
      (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
       -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
       -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
       -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
       -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
       -> Dict (HasAnnotation 'Remote "brig" "api-version")
       -> Domain
       -> MLSMessageSendRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            MLSMessageResponse)
    :<|> (Named
            "query-group-info"
            (Domain
             -> GetGroupInfoRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  GetGroupInfoResponse)
          :<|> (Named
                  "update-typing-indicator"
                  (Dict
                     (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                   -> Domain
                   -> TypingDataUpdateRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        TypingDataUpdateResponse)
                :<|> (Named
                        "on-typing-indicator-updated"
                        (Domain
                         -> TypingDataUpdated
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> (Named
                              "get-sub-conversation"
                              (Domain
                               -> GetSubConversationsRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    GetSubConversationsResponse)
                            :<|> (Named
                                    "delete-sub-conversation"
                                    (Domain
                                     -> DeleteSubConversationFedRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          DeleteSubConversationResponse)
                                  :<|> (Named
                                          "leave-sub-conversation"
                                          (Dict
                                             (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                           -> Domain
                                           -> LeaveSubConversationRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                LeaveSubConversationResponse)
                                        :<|> (Named
                                                "get-one2one-conversation@v1"
                                                (Domain
                                                 -> GetOne2OneConversationRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      GetOne2OneConversationResponse)
                                              :<|> (Named
                                                      "get-one2one-conversation"
                                                      (Domain
                                                       -> GetOne2OneConversationRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            GetOne2OneConversationResponseV2)
                                                    :<|> (Named
                                                            "on-client-removed"
                                                            (Domain
                                                             -> ClientRemovedRequest
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> (Named
                                                                  "on-message-sent"
                                                                  (Domain
                                                                   -> RemoteMessage ConvId
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> (Named
                                                                        "on-mls-message-sent"
                                                                        (Domain
                                                                         -> RemoteMLSMessage
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              EmptyResponse)
                                                                      :<|> (Named
                                                                              (Versioned
                                                                                 'V0
                                                                                 "on-conversation-updated")
                                                                              (Domain
                                                                               -> ConversationUpdateV0
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    EmptyResponse)
                                                                            :<|> (Named
                                                                                    "on-conversation-updated"
                                                                                    (Domain
                                                                                     -> ConversationUpdate
                                                                                     -> Sem
                                                                                          '[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,
                                                                                            Error
                                                                                              InvalidInput,
                                                                                            Error
                                                                                              InternalError,
                                                                                            Error
                                                                                              FederationError,
                                                                                            Async,
                                                                                            Delay,
                                                                                            Fail,
                                                                                            Embed
                                                                                              IO,
                                                                                            Error
                                                                                              JSONResponse,
                                                                                            Resource,
                                                                                            Final
                                                                                              IO]
                                                                                          EmptyResponse)
                                                                                  :<|> Named
                                                                                         "on-user-deleted-conversations"
                                                                                         (Domain
                                                                                          -> UserDeletedConversationsNotification
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)))))))))))))))
-> Named
     "send-mls-message"
     (Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
      -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Dict (HasAnnotation 'Remote "galley" "send-mls-message")
      -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
      -> Domain
      -> MLSMessageSendRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           MLSMessageResponse)
   :<|> (Named
           "send-mls-commit-bundle"
           (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
            -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
            -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
            -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
            -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
            -> Dict (HasAnnotation 'Remote "brig" "api-version")
            -> Domain
            -> MLSMessageSendRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 MLSMessageResponse)
         :<|> (Named
                 "query-group-info"
                 (Domain
                  -> GetGroupInfoRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       GetGroupInfoResponse)
               :<|> (Named
                       "update-typing-indicator"
                       (Dict
                          (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                        -> Domain
                        -> TypingDataUpdateRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             TypingDataUpdateResponse)
                     :<|> (Named
                             "on-typing-indicator-updated"
                             (Domain
                              -> TypingDataUpdated
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> (Named
                                   "get-sub-conversation"
                                   (Domain
                                    -> GetSubConversationsRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         GetSubConversationsResponse)
                                 :<|> (Named
                                         "delete-sub-conversation"
                                         (Domain
                                          -> DeleteSubConversationFedRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               DeleteSubConversationResponse)
                                       :<|> (Named
                                               "leave-sub-conversation"
                                               (Dict
                                                  (HasAnnotation
                                                     'Remote "galley" "on-mls-message-sent")
                                                -> Domain
                                                -> LeaveSubConversationRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     LeaveSubConversationResponse)
                                             :<|> (Named
                                                     "get-one2one-conversation@v1"
                                                     (Domain
                                                      -> GetOne2OneConversationRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           GetOne2OneConversationResponse)
                                                   :<|> (Named
                                                           "get-one2one-conversation"
                                                           (Domain
                                                            -> GetOne2OneConversationRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 GetOne2OneConversationResponseV2)
                                                         :<|> (Named
                                                                 "on-client-removed"
                                                                 (Domain
                                                                  -> ClientRemovedRequest
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> (Named
                                                                       "on-message-sent"
                                                                       (Domain
                                                                        -> RemoteMessage ConvId
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> (Named
                                                                             "on-mls-message-sent"
                                                                             (Domain
                                                                              -> RemoteMLSMessage
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)
                                                                           :<|> (Named
                                                                                   (Versioned
                                                                                      'V0
                                                                                      "on-conversation-updated")
                                                                                   (Domain
                                                                                    -> ConversationUpdateV0
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse)
                                                                                 :<|> (Named
                                                                                         "on-conversation-updated"
                                                                                         (Domain
                                                                                          -> ConversationUpdate
                                                                                          -> Sem
                                                                                               '[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,
                                                                                                 Error
                                                                                                   InvalidInput,
                                                                                                 Error
                                                                                                   InternalError,
                                                                                                 Error
                                                                                                   FederationError,
                                                                                                 Async,
                                                                                                 Delay,
                                                                                                 Fail,
                                                                                                 Embed
                                                                                                   IO,
                                                                                                 Error
                                                                                                   JSONResponse,
                                                                                                 Resource,
                                                                                                 Final
                                                                                                   IO]
                                                                                               EmptyResponse)
                                                                                       :<|> Named
                                                                                              "on-user-deleted-conversations"
                                                                                              (Domain
                                                                                               -> UserDeletedConversationsNotification
                                                                                               -> Sem
                                                                                                    '[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,
                                                                                                      Error
                                                                                                        InvalidInput,
                                                                                                      Error
                                                                                                        InternalError,
                                                                                                      Error
                                                                                                        FederationError,
                                                                                                      Async,
                                                                                                      Delay,
                                                                                                      Fail,
                                                                                                      Embed
                                                                                                        IO,
                                                                                                      Error
                                                                                                        JSONResponse,
                                                                                                      Resource,
                                                                                                      Final
                                                                                                        IO]
                                                                                                    EmptyResponse)))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"send-mls-commit-bundle" (((HasAnnotation 'Remote "galley" "mls-welcome",
  (HasAnnotation 'Remote "galley" "on-conversation-updated",
   (HasAnnotation 'Remote "galley" "on-mls-message-sent",
    (HasAnnotation 'Remote "galley" "send-mls-commit-bundle",
     (HasAnnotation 'Remote "brig" "get-mls-clients",
      (HasAnnotation 'Remote "brig" "get-users-by-ids",
       (HasAnnotation 'Remote "brig" "api-version",
        () :: Constraint))))))) =>
 Domain
 -> MLSMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MLSMessageResponse)
-> Dict (HasAnnotation 'Remote "galley" "mls-welcome")
-> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
-> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
-> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
-> Dict (HasAnnotation 'Remote "brig" "api-version")
-> Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> MLSMessageSendRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      MLSMessageResponse)
-> Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> MLSMessageSendRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     MLSMessageResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member (Error InternalError) r,
 Member FederatorAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member LegalHoldStore r, Member MemberStore r, Member Resource r,
 Member TeamStore r, Member (Logger (Msg -> Msg)) r,
 Member Random r, Member SubConversationStore r,
 Member ProposalStore r) =>
Domain -> MLSMessageSendRequest -> Sem r MLSMessageResponse
sendMLSCommitBundle))
    Named
  "send-mls-commit-bundle"
  (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
   -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
   -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
   -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
   -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
   -> Dict (HasAnnotation 'Remote "brig" "api-version")
   -> Domain
   -> MLSMessageSendRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        MLSMessageResponse)
-> (Named
      "query-group-info"
      (Domain
       -> GetGroupInfoRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetGroupInfoResponse)
    :<|> (Named
            "update-typing-indicator"
            (Dict
               (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
             -> Domain
             -> TypingDataUpdateRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  TypingDataUpdateResponse)
          :<|> (Named
                  "on-typing-indicator-updated"
                  (Domain
                   -> TypingDataUpdated
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> (Named
                        "get-sub-conversation"
                        (Domain
                         -> GetSubConversationsRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              GetSubConversationsResponse)
                      :<|> (Named
                              "delete-sub-conversation"
                              (Domain
                               -> DeleteSubConversationFedRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    DeleteSubConversationResponse)
                            :<|> (Named
                                    "leave-sub-conversation"
                                    (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                     -> Domain
                                     -> LeaveSubConversationRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          LeaveSubConversationResponse)
                                  :<|> (Named
                                          "get-one2one-conversation@v1"
                                          (Domain
                                           -> GetOne2OneConversationRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                GetOne2OneConversationResponse)
                                        :<|> (Named
                                                "get-one2one-conversation"
                                                (Domain
                                                 -> GetOne2OneConversationRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      GetOne2OneConversationResponseV2)
                                              :<|> (Named
                                                      "on-client-removed"
                                                      (Domain
                                                       -> ClientRemovedRequest
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> (Named
                                                            "on-message-sent"
                                                            (Domain
                                                             -> RemoteMessage ConvId
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> (Named
                                                                  "on-mls-message-sent"
                                                                  (Domain
                                                                   -> RemoteMLSMessage
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> (Named
                                                                        (Versioned
                                                                           'V0
                                                                           "on-conversation-updated")
                                                                        (Domain
                                                                         -> ConversationUpdateV0
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              EmptyResponse)
                                                                      :<|> (Named
                                                                              "on-conversation-updated"
                                                                              (Domain
                                                                               -> ConversationUpdate
                                                                               -> Sem
                                                                                    '[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,
                                                                                      Error
                                                                                        InvalidInput,
                                                                                      Error
                                                                                        InternalError,
                                                                                      Error
                                                                                        FederationError,
                                                                                      Async, Delay,
                                                                                      Fail,
                                                                                      Embed IO,
                                                                                      Error
                                                                                        JSONResponse,
                                                                                      Resource,
                                                                                      Final IO]
                                                                                    EmptyResponse)
                                                                            :<|> Named
                                                                                   "on-user-deleted-conversations"
                                                                                   (Domain
                                                                                    -> UserDeletedConversationsNotification
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse))))))))))))))
-> Named
     "send-mls-commit-bundle"
     (Dict (HasAnnotation 'Remote "galley" "mls-welcome")
      -> Dict (HasAnnotation 'Remote "galley" "on-conversation-updated")
      -> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Dict (HasAnnotation 'Remote "galley" "send-mls-commit-bundle")
      -> Dict (HasAnnotation 'Remote "brig" "get-mls-clients")
      -> Dict (HasAnnotation 'Remote "brig" "get-users-by-ids")
      -> Dict (HasAnnotation 'Remote "brig" "api-version")
      -> Domain
      -> MLSMessageSendRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           MLSMessageResponse)
   :<|> (Named
           "query-group-info"
           (Domain
            -> GetGroupInfoRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetGroupInfoResponse)
         :<|> (Named
                 "update-typing-indicator"
                 (Dict
                    (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
                  -> Domain
                  -> TypingDataUpdateRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       TypingDataUpdateResponse)
               :<|> (Named
                       "on-typing-indicator-updated"
                       (Domain
                        -> TypingDataUpdated
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> (Named
                             "get-sub-conversation"
                             (Domain
                              -> GetSubConversationsRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   GetSubConversationsResponse)
                           :<|> (Named
                                   "delete-sub-conversation"
                                   (Domain
                                    -> DeleteSubConversationFedRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         DeleteSubConversationResponse)
                                 :<|> (Named
                                         "leave-sub-conversation"
                                         (Dict
                                            (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                          -> Domain
                                          -> LeaveSubConversationRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               LeaveSubConversationResponse)
                                       :<|> (Named
                                               "get-one2one-conversation@v1"
                                               (Domain
                                                -> GetOne2OneConversationRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     GetOne2OneConversationResponse)
                                             :<|> (Named
                                                     "get-one2one-conversation"
                                                     (Domain
                                                      -> GetOne2OneConversationRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           GetOne2OneConversationResponseV2)
                                                   :<|> (Named
                                                           "on-client-removed"
                                                           (Domain
                                                            -> ClientRemovedRequest
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> (Named
                                                                 "on-message-sent"
                                                                 (Domain
                                                                  -> RemoteMessage ConvId
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> (Named
                                                                       "on-mls-message-sent"
                                                                       (Domain
                                                                        -> RemoteMLSMessage
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> (Named
                                                                             (Versioned
                                                                                'V0
                                                                                "on-conversation-updated")
                                                                             (Domain
                                                                              -> ConversationUpdateV0
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)
                                                                           :<|> (Named
                                                                                   "on-conversation-updated"
                                                                                   (Domain
                                                                                    -> ConversationUpdate
                                                                                    -> Sem
                                                                                         '[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,
                                                                                           Error
                                                                                             InvalidInput,
                                                                                           Error
                                                                                             InternalError,
                                                                                           Error
                                                                                             FederationError,
                                                                                           Async,
                                                                                           Delay,
                                                                                           Fail,
                                                                                           Embed IO,
                                                                                           Error
                                                                                             JSONResponse,
                                                                                           Resource,
                                                                                           Final IO]
                                                                                         EmptyResponse)
                                                                                 :<|> Named
                                                                                        "on-user-deleted-conversations"
                                                                                        (Domain
                                                                                         -> UserDeletedConversationsNotification
                                                                                         -> Sem
                                                                                              '[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,
                                                                                                Error
                                                                                                  InvalidInput,
                                                                                                Error
                                                                                                  InternalError,
                                                                                                Error
                                                                                                  FederationError,
                                                                                                Async,
                                                                                                Delay,
                                                                                                Fail,
                                                                                                Embed
                                                                                                  IO,
                                                                                                Error
                                                                                                  JSONResponse,
                                                                                                Resource,
                                                                                                Final
                                                                                                  IO]
                                                                                              EmptyResponse))))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"query-group-info" Domain
-> GetGroupInfoRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetGroupInfoResponse
forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r,
 Member (Input Env) r, Member SubConversationStore r,
 Member MemberStore r) =>
Domain -> GetGroupInfoRequest -> Sem r GetGroupInfoResponse
queryGroupInfo
    Named
  "query-group-info"
  (Domain
   -> GetGroupInfoRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetGroupInfoResponse)
-> (Named
      "update-typing-indicator"
      (Dict
         (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
       -> Domain
       -> TypingDataUpdateRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            TypingDataUpdateResponse)
    :<|> (Named
            "on-typing-indicator-updated"
            (Domain
             -> TypingDataUpdated
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> (Named
                  "get-sub-conversation"
                  (Domain
                   -> GetSubConversationsRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        GetSubConversationsResponse)
                :<|> (Named
                        "delete-sub-conversation"
                        (Domain
                         -> DeleteSubConversationFedRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              DeleteSubConversationResponse)
                      :<|> (Named
                              "leave-sub-conversation"
                              (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                               -> Domain
                               -> LeaveSubConversationRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    LeaveSubConversationResponse)
                            :<|> (Named
                                    "get-one2one-conversation@v1"
                                    (Domain
                                     -> GetOne2OneConversationRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          GetOne2OneConversationResponse)
                                  :<|> (Named
                                          "get-one2one-conversation"
                                          (Domain
                                           -> GetOne2OneConversationRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                GetOne2OneConversationResponseV2)
                                        :<|> (Named
                                                "on-client-removed"
                                                (Domain
                                                 -> ClientRemovedRequest
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> (Named
                                                      "on-message-sent"
                                                      (Domain
                                                       -> RemoteMessage ConvId
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> (Named
                                                            "on-mls-message-sent"
                                                            (Domain
                                                             -> RemoteMLSMessage
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> (Named
                                                                  (Versioned
                                                                     'V0 "on-conversation-updated")
                                                                  (Domain
                                                                   -> ConversationUpdateV0
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> (Named
                                                                        "on-conversation-updated"
                                                                        (Domain
                                                                         -> ConversationUpdate
                                                                         -> Sem
                                                                              '[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,
                                                                                Error InvalidInput,
                                                                                Error InternalError,
                                                                                Error
                                                                                  FederationError,
                                                                                Async, Delay, Fail,
                                                                                Embed IO,
                                                                                Error JSONResponse,
                                                                                Resource, Final IO]
                                                                              EmptyResponse)
                                                                      :<|> Named
                                                                             "on-user-deleted-conversations"
                                                                             (Domain
                                                                              -> UserDeletedConversationsNotification
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)))))))))))))
-> Named
     "query-group-info"
     (Domain
      -> GetGroupInfoRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetGroupInfoResponse)
   :<|> (Named
           "update-typing-indicator"
           (Dict
              (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
            -> Domain
            -> TypingDataUpdateRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 TypingDataUpdateResponse)
         :<|> (Named
                 "on-typing-indicator-updated"
                 (Domain
                  -> TypingDataUpdated
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> (Named
                       "get-sub-conversation"
                       (Domain
                        -> GetSubConversationsRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             GetSubConversationsResponse)
                     :<|> (Named
                             "delete-sub-conversation"
                             (Domain
                              -> DeleteSubConversationFedRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   DeleteSubConversationResponse)
                           :<|> (Named
                                   "leave-sub-conversation"
                                   (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                                    -> Domain
                                    -> LeaveSubConversationRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         LeaveSubConversationResponse)
                                 :<|> (Named
                                         "get-one2one-conversation@v1"
                                         (Domain
                                          -> GetOne2OneConversationRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               GetOne2OneConversationResponse)
                                       :<|> (Named
                                               "get-one2one-conversation"
                                               (Domain
                                                -> GetOne2OneConversationRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     GetOne2OneConversationResponseV2)
                                             :<|> (Named
                                                     "on-client-removed"
                                                     (Domain
                                                      -> ClientRemovedRequest
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> (Named
                                                           "on-message-sent"
                                                           (Domain
                                                            -> RemoteMessage ConvId
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> (Named
                                                                 "on-mls-message-sent"
                                                                 (Domain
                                                                  -> RemoteMLSMessage
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> (Named
                                                                       (Versioned
                                                                          'V0
                                                                          "on-conversation-updated")
                                                                       (Domain
                                                                        -> ConversationUpdateV0
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> (Named
                                                                             "on-conversation-updated"
                                                                             (Domain
                                                                              -> ConversationUpdate
                                                                              -> Sem
                                                                                   '[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,
                                                                                     Error
                                                                                       InvalidInput,
                                                                                     Error
                                                                                       InternalError,
                                                                                     Error
                                                                                       FederationError,
                                                                                     Async, Delay,
                                                                                     Fail, Embed IO,
                                                                                     Error
                                                                                       JSONResponse,
                                                                                     Resource,
                                                                                     Final IO]
                                                                                   EmptyResponse)
                                                                           :<|> Named
                                                                                  "on-user-deleted-conversations"
                                                                                  (Domain
                                                                                   -> UserDeletedConversationsNotification
                                                                                   -> Sem
                                                                                        '[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,
                                                                                          Error
                                                                                            InvalidInput,
                                                                                          Error
                                                                                            InternalError,
                                                                                          Error
                                                                                            FederationError,
                                                                                          Async,
                                                                                          Delay,
                                                                                          Fail,
                                                                                          Embed IO,
                                                                                          Error
                                                                                            JSONResponse,
                                                                                          Resource,
                                                                                          Final IO]
                                                                                        EmptyResponse)))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"update-typing-indicator" (((HasAnnotation 'Remote "galley" "on-typing-indicator-updated",
  () :: Constraint) =>
 Domain
 -> TypingDataUpdateRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      TypingDataUpdateResponse)
-> Dict
     (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
-> Domain
-> TypingDataUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     TypingDataUpdateResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed ((Domain
 -> TypingDataUpdateRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      TypingDataUpdateResponse)
-> Domain
-> TypingDataUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     TypingDataUpdateResponse
forall x a. ToHasAnnotations x => a -> a
exposeAnnotations Domain
-> TypingDataUpdateRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     TypingDataUpdateResponse
forall (r :: EffectRow).
(Member NotificationSubsystem r, Member FederatorAccess r,
 Member ConversationStore r, Member (Input UTCTime) r,
 Member (Input (Local ())) r) =>
Domain -> TypingDataUpdateRequest -> Sem r TypingDataUpdateResponse
updateTypingIndicator))
    Named
  "update-typing-indicator"
  (Dict
     (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
   -> Domain
   -> TypingDataUpdateRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        TypingDataUpdateResponse)
-> (Named
      "on-typing-indicator-updated"
      (Domain
       -> TypingDataUpdated
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> (Named
            "get-sub-conversation"
            (Domain
             -> GetSubConversationsRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  GetSubConversationsResponse)
          :<|> (Named
                  "delete-sub-conversation"
                  (Domain
                   -> DeleteSubConversationFedRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        DeleteSubConversationResponse)
                :<|> (Named
                        "leave-sub-conversation"
                        (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                         -> Domain
                         -> LeaveSubConversationRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              LeaveSubConversationResponse)
                      :<|> (Named
                              "get-one2one-conversation@v1"
                              (Domain
                               -> GetOne2OneConversationRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    GetOne2OneConversationResponse)
                            :<|> (Named
                                    "get-one2one-conversation"
                                    (Domain
                                     -> GetOne2OneConversationRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          GetOne2OneConversationResponseV2)
                                  :<|> (Named
                                          "on-client-removed"
                                          (Domain
                                           -> ClientRemovedRequest
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> (Named
                                                "on-message-sent"
                                                (Domain
                                                 -> RemoteMessage ConvId
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> (Named
                                                      "on-mls-message-sent"
                                                      (Domain
                                                       -> RemoteMLSMessage
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> (Named
                                                            (Versioned
                                                               'V0 "on-conversation-updated")
                                                            (Domain
                                                             -> ConversationUpdateV0
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> (Named
                                                                  "on-conversation-updated"
                                                                  (Domain
                                                                   -> ConversationUpdate
                                                                   -> Sem
                                                                        '[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,
                                                                          Error InvalidInput,
                                                                          Error InternalError,
                                                                          Error FederationError,
                                                                          Async, Delay, Fail,
                                                                          Embed IO,
                                                                          Error JSONResponse,
                                                                          Resource, Final IO]
                                                                        EmptyResponse)
                                                                :<|> Named
                                                                       "on-user-deleted-conversations"
                                                                       (Domain
                                                                        -> UserDeletedConversationsNotification
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse))))))))))))
-> Named
     "update-typing-indicator"
     (Dict
        (HasAnnotation 'Remote "galley" "on-typing-indicator-updated")
      -> Domain
      -> TypingDataUpdateRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           TypingDataUpdateResponse)
   :<|> (Named
           "on-typing-indicator-updated"
           (Domain
            -> TypingDataUpdated
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> (Named
                 "get-sub-conversation"
                 (Domain
                  -> GetSubConversationsRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       GetSubConversationsResponse)
               :<|> (Named
                       "delete-sub-conversation"
                       (Domain
                        -> DeleteSubConversationFedRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             DeleteSubConversationResponse)
                     :<|> (Named
                             "leave-sub-conversation"
                             (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                              -> Domain
                              -> LeaveSubConversationRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   LeaveSubConversationResponse)
                           :<|> (Named
                                   "get-one2one-conversation@v1"
                                   (Domain
                                    -> GetOne2OneConversationRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         GetOne2OneConversationResponse)
                                 :<|> (Named
                                         "get-one2one-conversation"
                                         (Domain
                                          -> GetOne2OneConversationRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               GetOne2OneConversationResponseV2)
                                       :<|> (Named
                                               "on-client-removed"
                                               (Domain
                                                -> ClientRemovedRequest
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> (Named
                                                     "on-message-sent"
                                                     (Domain
                                                      -> RemoteMessage ConvId
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> (Named
                                                           "on-mls-message-sent"
                                                           (Domain
                                                            -> RemoteMLSMessage
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> (Named
                                                                 (Versioned
                                                                    'V0 "on-conversation-updated")
                                                                 (Domain
                                                                  -> ConversationUpdateV0
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> (Named
                                                                       "on-conversation-updated"
                                                                       (Domain
                                                                        -> ConversationUpdate
                                                                        -> Sem
                                                                             '[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,
                                                                               Error InvalidInput,
                                                                               Error InternalError,
                                                                               Error
                                                                                 FederationError,
                                                                               Async, Delay, Fail,
                                                                               Embed IO,
                                                                               Error JSONResponse,
                                                                               Resource, Final IO]
                                                                             EmptyResponse)
                                                                     :<|> Named
                                                                            "on-user-deleted-conversations"
                                                                            (Domain
                                                                             -> UserDeletedConversationsNotification
                                                                             -> Sem
                                                                                  '[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,
                                                                                    Error
                                                                                      InvalidInput,
                                                                                    Error
                                                                                      InternalError,
                                                                                    Error
                                                                                      FederationError,
                                                                                    Async, Delay,
                                                                                    Fail, Embed IO,
                                                                                    Error
                                                                                      JSONResponse,
                                                                                    Resource,
                                                                                    Final IO]
                                                                                  EmptyResponse))))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-typing-indicator-updated" Domain
-> TypingDataUpdated
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
Member NotificationSubsystem r =>
Domain -> TypingDataUpdated -> Sem r EmptyResponse
onTypingIndicatorUpdated
    Named
  "on-typing-indicator-updated"
  (Domain
   -> TypingDataUpdated
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      "get-sub-conversation"
      (Domain
       -> GetSubConversationsRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetSubConversationsResponse)
    :<|> (Named
            "delete-sub-conversation"
            (Domain
             -> DeleteSubConversationFedRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  DeleteSubConversationResponse)
          :<|> (Named
                  "leave-sub-conversation"
                  (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                   -> Domain
                   -> LeaveSubConversationRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        LeaveSubConversationResponse)
                :<|> (Named
                        "get-one2one-conversation@v1"
                        (Domain
                         -> GetOne2OneConversationRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              GetOne2OneConversationResponse)
                      :<|> (Named
                              "get-one2one-conversation"
                              (Domain
                               -> GetOne2OneConversationRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    GetOne2OneConversationResponseV2)
                            :<|> (Named
                                    "on-client-removed"
                                    (Domain
                                     -> ClientRemovedRequest
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> (Named
                                          "on-message-sent"
                                          (Domain
                                           -> RemoteMessage ConvId
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> (Named
                                                "on-mls-message-sent"
                                                (Domain
                                                 -> RemoteMLSMessage
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> (Named
                                                      (Versioned 'V0 "on-conversation-updated")
                                                      (Domain
                                                       -> ConversationUpdateV0
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> (Named
                                                            "on-conversation-updated"
                                                            (Domain
                                                             -> ConversationUpdate
                                                             -> Sem
                                                                  '[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,
                                                                    Error InvalidInput,
                                                                    Error InternalError,
                                                                    Error FederationError, Async,
                                                                    Delay, Fail, Embed IO,
                                                                    Error JSONResponse, Resource,
                                                                    Final IO]
                                                                  EmptyResponse)
                                                          :<|> Named
                                                                 "on-user-deleted-conversations"
                                                                 (Domain
                                                                  -> UserDeletedConversationsNotification
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)))))))))))
-> Named
     "on-typing-indicator-updated"
     (Domain
      -> TypingDataUpdated
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           "get-sub-conversation"
           (Domain
            -> GetSubConversationsRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetSubConversationsResponse)
         :<|> (Named
                 "delete-sub-conversation"
                 (Domain
                  -> DeleteSubConversationFedRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       DeleteSubConversationResponse)
               :<|> (Named
                       "leave-sub-conversation"
                       (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                        -> Domain
                        -> LeaveSubConversationRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             LeaveSubConversationResponse)
                     :<|> (Named
                             "get-one2one-conversation@v1"
                             (Domain
                              -> GetOne2OneConversationRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   GetOne2OneConversationResponse)
                           :<|> (Named
                                   "get-one2one-conversation"
                                   (Domain
                                    -> GetOne2OneConversationRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         GetOne2OneConversationResponseV2)
                                 :<|> (Named
                                         "on-client-removed"
                                         (Domain
                                          -> ClientRemovedRequest
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> (Named
                                               "on-message-sent"
                                               (Domain
                                                -> RemoteMessage ConvId
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> (Named
                                                     "on-mls-message-sent"
                                                     (Domain
                                                      -> RemoteMLSMessage
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> (Named
                                                           (Versioned 'V0 "on-conversation-updated")
                                                           (Domain
                                                            -> ConversationUpdateV0
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> (Named
                                                                 "on-conversation-updated"
                                                                 (Domain
                                                                  -> ConversationUpdate
                                                                  -> Sem
                                                                       '[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,
                                                                         Error InvalidInput,
                                                                         Error InternalError,
                                                                         Error FederationError,
                                                                         Async, Delay, Fail,
                                                                         Embed IO,
                                                                         Error JSONResponse,
                                                                         Resource, Final IO]
                                                                       EmptyResponse)
                                                               :<|> Named
                                                                      "on-user-deleted-conversations"
                                                                      (Domain
                                                                       -> UserDeletedConversationsNotification
                                                                       -> Sem
                                                                            '[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,
                                                                              Error InvalidInput,
                                                                              Error InternalError,
                                                                              Error FederationError,
                                                                              Async, Delay, Fail,
                                                                              Embed IO,
                                                                              Error JSONResponse,
                                                                              Resource, Final IO]
                                                                            EmptyResponse)))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"get-sub-conversation" Domain
-> GetSubConversationsRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetSubConversationsResponse
forall (r :: EffectRow).
Members
  '[SubConversationStore, ConversationStore, Input (Local ()),
    Error InternalError, Logger (Msg -> Msg)]
  r =>
Domain
-> GetSubConversationsRequest -> Sem r GetSubConversationsResponse
getSubConversationForRemoteUser
    Named
  "get-sub-conversation"
  (Domain
   -> GetSubConversationsRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetSubConversationsResponse)
-> (Named
      "delete-sub-conversation"
      (Domain
       -> DeleteSubConversationFedRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            DeleteSubConversationResponse)
    :<|> (Named
            "leave-sub-conversation"
            (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
             -> Domain
             -> LeaveSubConversationRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  LeaveSubConversationResponse)
          :<|> (Named
                  "get-one2one-conversation@v1"
                  (Domain
                   -> GetOne2OneConversationRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        GetOne2OneConversationResponse)
                :<|> (Named
                        "get-one2one-conversation"
                        (Domain
                         -> GetOne2OneConversationRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              GetOne2OneConversationResponseV2)
                      :<|> (Named
                              "on-client-removed"
                              (Domain
                               -> ClientRemovedRequest
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> (Named
                                    "on-message-sent"
                                    (Domain
                                     -> RemoteMessage ConvId
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> (Named
                                          "on-mls-message-sent"
                                          (Domain
                                           -> RemoteMLSMessage
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> (Named
                                                (Versioned 'V0 "on-conversation-updated")
                                                (Domain
                                                 -> ConversationUpdateV0
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> (Named
                                                      "on-conversation-updated"
                                                      (Domain
                                                       -> ConversationUpdate
                                                       -> Sem
                                                            '[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,
                                                              Error InvalidInput,
                                                              Error InternalError,
                                                              Error FederationError, Async, Delay,
                                                              Fail, Embed IO, Error JSONResponse,
                                                              Resource, Final IO]
                                                            EmptyResponse)
                                                    :<|> Named
                                                           "on-user-deleted-conversations"
                                                           (Domain
                                                            -> UserDeletedConversationsNotification
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse))))))))))
-> Named
     "get-sub-conversation"
     (Domain
      -> GetSubConversationsRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetSubConversationsResponse)
   :<|> (Named
           "delete-sub-conversation"
           (Domain
            -> DeleteSubConversationFedRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 DeleteSubConversationResponse)
         :<|> (Named
                 "leave-sub-conversation"
                 (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
                  -> Domain
                  -> LeaveSubConversationRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       LeaveSubConversationResponse)
               :<|> (Named
                       "get-one2one-conversation@v1"
                       (Domain
                        -> GetOne2OneConversationRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             GetOne2OneConversationResponse)
                     :<|> (Named
                             "get-one2one-conversation"
                             (Domain
                              -> GetOne2OneConversationRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   GetOne2OneConversationResponseV2)
                           :<|> (Named
                                   "on-client-removed"
                                   (Domain
                                    -> ClientRemovedRequest
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> (Named
                                         "on-message-sent"
                                         (Domain
                                          -> RemoteMessage ConvId
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> (Named
                                               "on-mls-message-sent"
                                               (Domain
                                                -> RemoteMLSMessage
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> (Named
                                                     (Versioned 'V0 "on-conversation-updated")
                                                     (Domain
                                                      -> ConversationUpdateV0
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> (Named
                                                           "on-conversation-updated"
                                                           (Domain
                                                            -> ConversationUpdate
                                                            -> Sem
                                                                 '[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,
                                                                   Error InvalidInput,
                                                                   Error InternalError,
                                                                   Error FederationError, Async,
                                                                   Delay, Fail, Embed IO,
                                                                   Error JSONResponse, Resource,
                                                                   Final IO]
                                                                 EmptyResponse)
                                                         :<|> Named
                                                                "on-user-deleted-conversations"
                                                                (Domain
                                                                 -> UserDeletedConversationsNotification
                                                                 -> Sem
                                                                      '[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,
                                                                        Error InvalidInput,
                                                                        Error InternalError,
                                                                        Error FederationError,
                                                                        Async, Delay, Fail,
                                                                        Embed IO,
                                                                        Error JSONResponse,
                                                                        Resource, Final IO]
                                                                      EmptyResponse))))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"delete-sub-conversation" (((() :: Constraint) =>
 Domain
 -> DeleteSubConversationFedRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      DeleteSubConversationResponse)
-> Domain
-> DeleteSubConversationFedRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     DeleteSubConversationResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed (() :: Constraint) =>
Domain
-> DeleteSubConversationFedRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     DeleteSubConversationResponse
Domain
-> DeleteSubConversationFedRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     DeleteSubConversationResponse
forall (r :: EffectRow).
Members
  '[ConversationStore, FederatorAccess, Input (Local ()), Input Env,
    MemberStore, Resource, SubConversationStore]
  r =>
Domain
-> DeleteSubConversationFedRequest
-> Sem r DeleteSubConversationResponse
deleteSubConversationForRemoteUser)
    Named
  "delete-sub-conversation"
  (Domain
   -> DeleteSubConversationFedRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        DeleteSubConversationResponse)
-> (Named
      "leave-sub-conversation"
      (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
       -> Domain
       -> LeaveSubConversationRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            LeaveSubConversationResponse)
    :<|> (Named
            "get-one2one-conversation@v1"
            (Domain
             -> GetOne2OneConversationRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  GetOne2OneConversationResponse)
          :<|> (Named
                  "get-one2one-conversation"
                  (Domain
                   -> GetOne2OneConversationRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        GetOne2OneConversationResponseV2)
                :<|> (Named
                        "on-client-removed"
                        (Domain
                         -> ClientRemovedRequest
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> (Named
                              "on-message-sent"
                              (Domain
                               -> RemoteMessage ConvId
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> (Named
                                    "on-mls-message-sent"
                                    (Domain
                                     -> RemoteMLSMessage
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> (Named
                                          (Versioned 'V0 "on-conversation-updated")
                                          (Domain
                                           -> ConversationUpdateV0
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> (Named
                                                "on-conversation-updated"
                                                (Domain
                                                 -> ConversationUpdate
                                                 -> Sem
                                                      '[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, Error InvalidInput,
                                                        Error InternalError, Error FederationError,
                                                        Async, Delay, Fail, Embed IO,
                                                        Error JSONResponse, Resource, Final IO]
                                                      EmptyResponse)
                                              :<|> Named
                                                     "on-user-deleted-conversations"
                                                     (Domain
                                                      -> UserDeletedConversationsNotification
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)))))))))
-> Named
     "delete-sub-conversation"
     (Domain
      -> DeleteSubConversationFedRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           DeleteSubConversationResponse)
   :<|> (Named
           "leave-sub-conversation"
           (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
            -> Domain
            -> LeaveSubConversationRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 LeaveSubConversationResponse)
         :<|> (Named
                 "get-one2one-conversation@v1"
                 (Domain
                  -> GetOne2OneConversationRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       GetOne2OneConversationResponse)
               :<|> (Named
                       "get-one2one-conversation"
                       (Domain
                        -> GetOne2OneConversationRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             GetOne2OneConversationResponseV2)
                     :<|> (Named
                             "on-client-removed"
                             (Domain
                              -> ClientRemovedRequest
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> (Named
                                   "on-message-sent"
                                   (Domain
                                    -> RemoteMessage ConvId
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> (Named
                                         "on-mls-message-sent"
                                         (Domain
                                          -> RemoteMLSMessage
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> (Named
                                               (Versioned 'V0 "on-conversation-updated")
                                               (Domain
                                                -> ConversationUpdateV0
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> (Named
                                                     "on-conversation-updated"
                                                     (Domain
                                                      -> ConversationUpdate
                                                      -> Sem
                                                           '[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,
                                                             Error InvalidInput,
                                                             Error InternalError,
                                                             Error FederationError, Async, Delay,
                                                             Fail, Embed IO, Error JSONResponse,
                                                             Resource, Final IO]
                                                           EmptyResponse)
                                                   :<|> Named
                                                          "on-user-deleted-conversations"
                                                          (Domain
                                                           -> UserDeletedConversationsNotification
                                                           -> Sem
                                                                '[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, Error InvalidInput,
                                                                  Error InternalError,
                                                                  Error FederationError, Async,
                                                                  Delay, Fail, Embed IO,
                                                                  Error JSONResponse, Resource,
                                                                  Final IO]
                                                                EmptyResponse)))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"leave-sub-conversation" (((HasAnnotation 'Remote "galley" "on-mls-message-sent",
  () :: Constraint) =>
 Domain
 -> LeaveSubConversationRequest
 -> Sem
      '[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,
        Error InvalidInput, Error InternalError, Error FederationError,
        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
        Final IO]
      LeaveSubConversationResponse)
-> Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
-> Domain
-> LeaveSubConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveSubConversationResponse
forall (c :: Constraint) r a. SolveCallsFed c r a => (c => r) -> a
callsFed (HasAnnotation 'Remote "galley" "on-mls-message-sent",
 () :: Constraint) =>
Domain
-> LeaveSubConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveSubConversationResponse
Domain
-> LeaveSubConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     LeaveSubConversationResponse
forall (r :: EffectRow).
(HasLeaveSubConversationEffects r,
 Member (Error FederationError) r, Member (Input (Local ())) r,
 Member Resource r) =>
Domain
-> LeaveSubConversationRequest
-> Sem r LeaveSubConversationResponse
leaveSubConversation)
    Named
  "leave-sub-conversation"
  (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
   -> Domain
   -> LeaveSubConversationRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        LeaveSubConversationResponse)
-> (Named
      "get-one2one-conversation@v1"
      (Domain
       -> GetOne2OneConversationRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetOne2OneConversationResponse)
    :<|> (Named
            "get-one2one-conversation"
            (Domain
             -> GetOne2OneConversationRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  GetOne2OneConversationResponseV2)
          :<|> (Named
                  "on-client-removed"
                  (Domain
                   -> ClientRemovedRequest
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> (Named
                        "on-message-sent"
                        (Domain
                         -> RemoteMessage ConvId
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> (Named
                              "on-mls-message-sent"
                              (Domain
                               -> RemoteMLSMessage
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> (Named
                                    (Versioned 'V0 "on-conversation-updated")
                                    (Domain
                                     -> ConversationUpdateV0
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> (Named
                                          "on-conversation-updated"
                                          (Domain
                                           -> ConversationUpdate
                                           -> Sem
                                                '[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,
                                                  Error InvalidInput, Error InternalError,
                                                  Error FederationError, Async, Delay, Fail,
                                                  Embed IO, Error JSONResponse, Resource, Final IO]
                                                EmptyResponse)
                                        :<|> Named
                                               "on-user-deleted-conversations"
                                               (Domain
                                                -> UserDeletedConversationsNotification
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse))))))))
-> Named
     "leave-sub-conversation"
     (Dict (HasAnnotation 'Remote "galley" "on-mls-message-sent")
      -> Domain
      -> LeaveSubConversationRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           LeaveSubConversationResponse)
   :<|> (Named
           "get-one2one-conversation@v1"
           (Domain
            -> GetOne2OneConversationRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetOne2OneConversationResponse)
         :<|> (Named
                 "get-one2one-conversation"
                 (Domain
                  -> GetOne2OneConversationRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       GetOne2OneConversationResponseV2)
               :<|> (Named
                       "on-client-removed"
                       (Domain
                        -> ClientRemovedRequest
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> (Named
                             "on-message-sent"
                             (Domain
                              -> RemoteMessage ConvId
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> (Named
                                   "on-mls-message-sent"
                                   (Domain
                                    -> RemoteMLSMessage
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> (Named
                                         (Versioned 'V0 "on-conversation-updated")
                                         (Domain
                                          -> ConversationUpdateV0
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> (Named
                                               "on-conversation-updated"
                                               (Domain
                                                -> ConversationUpdate
                                                -> Sem
                                                     '[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,
                                                       Error InvalidInput, Error InternalError,
                                                       Error FederationError, Async, Delay, Fail,
                                                       Embed IO, Error JSONResponse, Resource,
                                                       Final IO]
                                                     EmptyResponse)
                                             :<|> Named
                                                    "on-user-deleted-conversations"
                                                    (Domain
                                                     -> UserDeletedConversationsNotification
                                                     -> Sem
                                                          '[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,
                                                            Error InvalidInput, Error InternalError,
                                                            Error FederationError, Async, Delay,
                                                            Fail, Embed IO, Error JSONResponse,
                                                            Resource, Final IO]
                                                          EmptyResponse))))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"get-one2one-conversation@v1" Domain
-> GetOne2OneConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetOne2OneConversationResponse
forall (r :: EffectRow).
(Member (Input (Local ())) r, Member BrigAccess r,
 Member (Error InvalidInput) r) =>
Domain
-> GetOne2OneConversationRequest
-> Sem r GetOne2OneConversationResponse
getOne2OneConversationV1
    Named
  "get-one2one-conversation@v1"
  (Domain
   -> GetOne2OneConversationRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetOne2OneConversationResponse)
-> (Named
      "get-one2one-conversation"
      (Domain
       -> GetOne2OneConversationRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            GetOne2OneConversationResponseV2)
    :<|> (Named
            "on-client-removed"
            (Domain
             -> ClientRemovedRequest
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> (Named
                  "on-message-sent"
                  (Domain
                   -> RemoteMessage ConvId
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> (Named
                        "on-mls-message-sent"
                        (Domain
                         -> RemoteMLSMessage
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> (Named
                              (Versioned 'V0 "on-conversation-updated")
                              (Domain
                               -> ConversationUpdateV0
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> (Named
                                    "on-conversation-updated"
                                    (Domain
                                     -> ConversationUpdate
                                     -> Sem
                                          '[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, Error InvalidInput,
                                            Error InternalError, Error FederationError, Async,
                                            Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                            Final IO]
                                          EmptyResponse)
                                  :<|> Named
                                         "on-user-deleted-conversations"
                                         (Domain
                                          -> UserDeletedConversationsNotification
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)))))))
-> Named
     "get-one2one-conversation@v1"
     (Domain
      -> GetOne2OneConversationRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetOne2OneConversationResponse)
   :<|> (Named
           "get-one2one-conversation"
           (Domain
            -> GetOne2OneConversationRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 GetOne2OneConversationResponseV2)
         :<|> (Named
                 "on-client-removed"
                 (Domain
                  -> ClientRemovedRequest
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> (Named
                       "on-message-sent"
                       (Domain
                        -> RemoteMessage ConvId
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> (Named
                             "on-mls-message-sent"
                             (Domain
                              -> RemoteMLSMessage
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> (Named
                                   (Versioned 'V0 "on-conversation-updated")
                                   (Domain
                                    -> ConversationUpdateV0
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> (Named
                                         "on-conversation-updated"
                                         (Domain
                                          -> ConversationUpdate
                                          -> Sem
                                               '[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,
                                                 Error InvalidInput, Error InternalError,
                                                 Error FederationError, Async, Delay, Fail,
                                                 Embed IO, Error JSONResponse, Resource, Final IO]
                                               EmptyResponse)
                                       :<|> Named
                                              "on-user-deleted-conversations"
                                              (Domain
                                               -> UserDeletedConversationsNotification
                                               -> Sem
                                                    '[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,
                                                      Error InvalidInput, Error InternalError,
                                                      Error FederationError, Async, Delay, Fail,
                                                      Embed IO, Error JSONResponse, Resource,
                                                      Final IO]
                                                    EmptyResponse)))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"get-one2one-conversation" Domain
-> GetOne2OneConversationRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     GetOne2OneConversationResponseV2
forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r,
 Member (Error InternalError) r, Member BrigAccess r,
 Member (Input Env) r) =>
Domain
-> GetOne2OneConversationRequest
-> Sem r GetOne2OneConversationResponseV2
getOne2OneConversation
    Named
  "get-one2one-conversation"
  (Domain
   -> GetOne2OneConversationRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        GetOne2OneConversationResponseV2)
-> (Named
      "on-client-removed"
      (Domain
       -> ClientRemovedRequest
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> (Named
            "on-message-sent"
            (Domain
             -> RemoteMessage ConvId
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> (Named
                  "on-mls-message-sent"
                  (Domain
                   -> RemoteMLSMessage
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> (Named
                        (Versioned 'V0 "on-conversation-updated")
                        (Domain
                         -> ConversationUpdateV0
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> (Named
                              "on-conversation-updated"
                              (Domain
                               -> ConversationUpdate
                               -> Sem
                                    '[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, Error InvalidInput, Error InternalError,
                                      Error FederationError, Async, Delay, Fail, Embed IO,
                                      Error JSONResponse, Resource, Final IO]
                                    EmptyResponse)
                            :<|> Named
                                   "on-user-deleted-conversations"
                                   (Domain
                                    -> UserDeletedConversationsNotification
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse))))))
-> Named
     "get-one2one-conversation"
     (Domain
      -> GetOne2OneConversationRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           GetOne2OneConversationResponseV2)
   :<|> (Named
           "on-client-removed"
           (Domain
            -> ClientRemovedRequest
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> (Named
                 "on-message-sent"
                 (Domain
                  -> RemoteMessage ConvId
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> (Named
                       "on-mls-message-sent"
                       (Domain
                        -> RemoteMLSMessage
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> (Named
                             (Versioned 'V0 "on-conversation-updated")
                             (Domain
                              -> ConversationUpdateV0
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> (Named
                                   "on-conversation-updated"
                                   (Domain
                                    -> ConversationUpdate
                                    -> Sem
                                         '[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, Error InvalidInput,
                                           Error InternalError, Error FederationError, Async, Delay,
                                           Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                         EmptyResponse)
                                 :<|> Named
                                        "on-user-deleted-conversations"
                                        (Domain
                                         -> UserDeletedConversationsNotification
                                         -> Sem
                                              '[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,
                                                Error InvalidInput, Error InternalError,
                                                Error FederationError, Async, Delay, Fail, Embed IO,
                                                Error JSONResponse, Resource, Final IO]
                                              EmptyResponse))))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-client-removed" Domain
-> ClientRemovedRequest
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member NotificationSubsystem r,
 Member (Input Env) r, Member (Input (Local ())) r,
 Member (Input UTCTime) r, Member MemberStore r,
 Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ClientRemovedRequest -> Sem r EmptyResponse
onClientRemoved
    Named
  "on-client-removed"
  (Domain
   -> ClientRemovedRequest
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      "on-message-sent"
      (Domain
       -> RemoteMessage ConvId
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> (Named
            "on-mls-message-sent"
            (Domain
             -> RemoteMLSMessage
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> (Named
                  (Versioned 'V0 "on-conversation-updated")
                  (Domain
                   -> ConversationUpdateV0
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> (Named
                        "on-conversation-updated"
                        (Domain
                         -> ConversationUpdate
                         -> Sem
                              '[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,
                                Error InvalidInput, Error InternalError, Error FederationError,
                                Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                                Final IO]
                              EmptyResponse)
                      :<|> Named
                             "on-user-deleted-conversations"
                             (Domain
                              -> UserDeletedConversationsNotification
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)))))
-> Named
     "on-client-removed"
     (Domain
      -> ClientRemovedRequest
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           "on-message-sent"
           (Domain
            -> RemoteMessage ConvId
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> (Named
                 "on-mls-message-sent"
                 (Domain
                  -> RemoteMLSMessage
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> (Named
                       (Versioned 'V0 "on-conversation-updated")
                       (Domain
                        -> ConversationUpdateV0
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> (Named
                             "on-conversation-updated"
                             (Domain
                              -> ConversationUpdate
                              -> Sem
                                   '[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, Error InvalidInput, Error InternalError,
                                     Error FederationError, Async, Delay, Fail, Embed IO,
                                     Error JSONResponse, Resource, Final IO]
                                   EmptyResponse)
                           :<|> Named
                                  "on-user-deleted-conversations"
                                  (Domain
                                   -> UserDeletedConversationsNotification
                                   -> Sem
                                        '[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, Error InvalidInput,
                                          Error InternalError, Error FederationError, Async, Delay,
                                          Fail, Embed IO, Error JSONResponse, Resource, Final IO]
                                        EmptyResponse)))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-message-sent" Domain
-> RemoteMessage ConvId
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member NotificationSubsystem r, Member ExternalAccess r,
 Member MemberStore r, Member (Input (Local ())) r,
 Member (Logger (Msg -> Msg)) r) =>
Domain -> RemoteMessage ConvId -> Sem r EmptyResponse
onMessageSent
    Named
  "on-message-sent"
  (Domain
   -> RemoteMessage ConvId
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      "on-mls-message-sent"
      (Domain
       -> RemoteMLSMessage
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> (Named
            (Versioned 'V0 "on-conversation-updated")
            (Domain
             -> ConversationUpdateV0
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> (Named
                  "on-conversation-updated"
                  (Domain
                   -> ConversationUpdate
                   -> Sem
                        '[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,
                          Error InvalidInput, Error InternalError, Error FederationError,
                          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                          Final IO]
                        EmptyResponse)
                :<|> Named
                       "on-user-deleted-conversations"
                       (Domain
                        -> UserDeletedConversationsNotification
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse))))
-> Named
     "on-message-sent"
     (Domain
      -> RemoteMessage ConvId
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           "on-mls-message-sent"
           (Domain
            -> RemoteMLSMessage
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> (Named
                 (Versioned 'V0 "on-conversation-updated")
                 (Domain
                  -> ConversationUpdateV0
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> (Named
                       "on-conversation-updated"
                       (Domain
                        -> ConversationUpdate
                        -> Sem
                             '[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,
                               Error InvalidInput, Error InternalError, Error FederationError,
                               Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                               Final IO]
                             EmptyResponse)
                     :<|> Named
                            "on-user-deleted-conversations"
                            (Domain
                             -> UserDeletedConversationsNotification
                             -> Sem
                                  '[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, Error InvalidInput, Error InternalError,
                                    Error FederationError, Async, Delay, Fail, Embed IO,
                                    Error JSONResponse, Resource, Final IO]
                                  EmptyResponse))))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-mls-message-sent" Domain
-> RemoteMLSMessage
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member ExternalAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> RemoteMLSMessage -> Sem r EmptyResponse
onMLSMessageSent
    Named
  "on-mls-message-sent"
  (Domain
   -> RemoteMLSMessage
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      (Versioned 'V0 "on-conversation-updated")
      (Domain
       -> ConversationUpdateV0
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> (Named
            "on-conversation-updated"
            (Domain
             -> ConversationUpdate
             -> Sem
                  '[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,
                    Error InvalidInput, Error InternalError, Error FederationError,
                    Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                    Final IO]
                  EmptyResponse)
          :<|> Named
                 "on-user-deleted-conversations"
                 (Domain
                  -> UserDeletedConversationsNotification
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)))
-> Named
     "on-mls-message-sent"
     (Domain
      -> RemoteMLSMessage
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           (Versioned 'V0 "on-conversation-updated")
           (Domain
            -> ConversationUpdateV0
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> (Named
                 "on-conversation-updated"
                 (Domain
                  -> ConversationUpdate
                  -> Sem
                       '[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,
                         Error InvalidInput, Error InternalError, Error FederationError,
                         Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                         Final IO]
                       EmptyResponse)
               :<|> Named
                      "on-user-deleted-conversations"
                      (Domain
                       -> UserDeletedConversationsNotification
                       -> Sem
                            '[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,
                              Error InvalidInput, Error InternalError, Error FederationError,
                              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                              Final IO]
                            EmptyResponse)))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall name x. x -> Named name x
Named @(Versioned 'V0 "on-conversation-updated") Domain
-> ConversationUpdateV0
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationUpdateV0 -> Sem r EmptyResponse
onConversationUpdatedV0
    Named
  (Versioned 'V0 "on-conversation-updated")
  (Domain
   -> ConversationUpdateV0
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> (Named
      "on-conversation-updated"
      (Domain
       -> ConversationUpdate
       -> Sem
            '[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,
              Error InvalidInput, Error InternalError, Error FederationError,
              Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
              Final IO]
            EmptyResponse)
    :<|> Named
           "on-user-deleted-conversations"
           (Domain
            -> UserDeletedConversationsNotification
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse))
-> Named
     (Versioned 'V0 "on-conversation-updated")
     (Domain
      -> ConversationUpdateV0
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> (Named
           "on-conversation-updated"
           (Domain
            -> ConversationUpdate
            -> Sem
                 '[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,
                   Error InvalidInput, Error InternalError, Error FederationError,
                   Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                   Final IO]
                 EmptyResponse)
         :<|> Named
                "on-user-deleted-conversations"
                (Domain
                 -> UserDeletedConversationsNotification
                 -> Sem
                      '[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,
                        Error InvalidInput, Error InternalError, Error FederationError,
                        Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                        Final IO]
                      EmptyResponse))
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-conversation-updated" Domain
-> ConversationUpdate
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationUpdate -> Sem r EmptyResponse
onConversationUpdated
    Named
  "on-conversation-updated"
  (Domain
   -> ConversationUpdate
   -> Sem
        '[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,
          Error InvalidInput, Error InternalError, Error FederationError,
          Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
          Final IO]
        EmptyResponse)
-> Named
     "on-user-deleted-conversations"
     (Domain
      -> UserDeletedConversationsNotification
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
-> Named
     "on-conversation-updated"
     (Domain
      -> ConversationUpdate
      -> Sem
           '[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,
             Error InvalidInput, Error InternalError, Error FederationError,
             Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
             Final IO]
           EmptyResponse)
   :<|> Named
          "on-user-deleted-conversations"
          (Domain
           -> UserDeletedConversationsNotification
           -> Sem
                '[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,
                  Error InvalidInput, Error InternalError, Error FederationError,
                  Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
                  Final IO]
                EmptyResponse)
forall a b. a -> b -> a :<|> b
:<|> forall {k} (name :: k) x. x -> Named name x
forall (name :: Symbol) x. x -> Named name x
Named @"on-user-deleted-conversations" Domain
-> UserDeletedConversationsNotification
-> Sem
     '[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,
       Error InvalidInput, Error InternalError, Error FederationError,
       Async, Delay, Fail, Embed IO, Error JSONResponse, Resource,
       Final IO]
     EmptyResponse
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member FireAndForget r,
 Member (Error FederationError) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input (Local ())) r,
 Member (Input UTCTime) r, Member (Input Env) r,
 Member MemberStore r, Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain
-> UserDeletedConversationsNotification -> Sem r EmptyResponse
onUserDeleted

onClientRemoved ::
  ( Member BackendNotificationQueueAccess r,
    Member ConversationStore r,
    Member ExternalAccess r,
    Member (Error FederationError) r,
    Member NotificationSubsystem r,
    Member (Input Env) r,
    Member (Input (Local ())) r,
    Member (Input UTCTime) r,
    Member MemberStore r,
    Member ProposalStore r,
    Member Random r,
    Member SubConversationStore r,
    Member TinyLog r
  ) =>
  Domain ->
  ClientRemovedRequest ->
  Sem r EmptyResponse
onClientRemoved :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member NotificationSubsystem r,
 Member (Input Env) r, Member (Input (Local ())) r,
 Member (Input UTCTime) r, Member MemberStore r,
 Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ClientRemovedRequest -> Sem r EmptyResponse
onClientRemoved Domain
domain ClientRemovedRequest
req = do
  let qusr :: Qualified UserId
qusr = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified ClientRemovedRequest
req.user Domain
domain
  Sem r Bool -> Sem r () -> Sem r ()
forall (m :: * -> *). Monad m => m Bool -> m () -> m ()
whenM Sem r Bool
forall (r :: EffectRow). Member (Input Env) r => Sem r Bool
isMLSEnabled (Sem r () -> Sem r ()) -> Sem r () -> Sem r ()
forall a b. (a -> b) -> a -> b
$ do
    [ConvId] -> (ConvId -> Sem r (Maybe ())) -> Sem r ()
forall (t :: * -> *) (f :: * -> *) a b.
(Foldable t, Applicative f) =>
t a -> (a -> f b) -> f ()
for_ ClientRemovedRequest
req.convs ((ConvId -> Sem r (Maybe ())) -> Sem r ())
-> (ConvId -> Sem r (Maybe ())) -> Sem r ()
forall a b. (a -> b) -> a -> b
$ \ConvId
convId -> do
      Maybe Conversation
mConv <- ConvId -> Sem r (Maybe Conversation)
forall (r :: EffectRow).
Member ConversationStore r =>
ConvId -> Sem r (Maybe Conversation)
E.getConversation ConvId
convId
      Maybe Conversation
-> (Conversation -> Sem r ()) -> Sem r (Maybe ())
forall (t :: * -> *) (f :: * -> *) a b.
(Traversable t, Applicative f) =>
t a -> (a -> f b) -> f (t b)
for Maybe Conversation
mConv ((Conversation -> Sem r ()) -> Sem r (Maybe ()))
-> (Conversation -> Sem r ()) -> Sem r (Maybe ())
forall a b. (a -> b) -> a -> b
$ \Conversation
conv -> do
        Local Conversation
lconv <- Conversation -> Sem r (Local Conversation)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal Conversation
conv
        Local Conversation -> Qualified UserId -> ClientId -> Sem r ()
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member (Error FederationError) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input Env) r,
 Member (Input UTCTime) r, Member MemberStore r,
 Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Local Conversation -> Qualified UserId -> ClientId -> Sem r ()
removeClient Local Conversation
lconv Qualified UserId
qusr (ClientRemovedRequest
req.client)
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

onConversationCreated ::
  ( Member BrigAccess r,
    Member NotificationSubsystem r,
    Member ExternalAccess r,
    Member (Input (Local ())) r,
    Member MemberStore r,
    Member P.TinyLog r
  ) =>
  Domain ->
  ConversationCreated ConvId ->
  Sem r EmptyResponse
onConversationCreated :: forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationCreated ConvId -> Sem r EmptyResponse
onConversationCreated Domain
domain ConversationCreated ConvId
rc = do
  let qrc :: ConversationCreated (Remote ConvId)
qrc = (ConvId -> Remote ConvId)
-> ConversationCreated ConvId
-> ConversationCreated (Remote ConvId)
forall a b.
(a -> b) -> ConversationCreated a -> ConversationCreated b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Domain -> ConvId -> Remote ConvId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain) ConversationCreated ConvId
rc
  Local ()
loc <- () -> Sem r (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  let ([UserId]
localUserIds, [Remote UserId]
_) = Local () -> [Qualified UserId] -> ([UserId], [Remote UserId])
forall (f :: * -> *) x a.
Foldable f =>
Local x -> f (Qualified a) -> ([a], [Remote a])
partitionQualified Local ()
loc ((OtherMember -> Qualified UserId)
-> [OtherMember] -> [Qualified UserId]
forall a b. (a -> b) -> [a] -> [b]
map OtherMember -> Qualified UserId
omQualifiedId (Set OtherMember -> [OtherMember]
forall a. Set a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (ConversationCreated ConvId -> Set OtherMember
forall conv. ConversationCreated conv -> Set OtherMember
nonCreatorMembers ConversationCreated ConvId
rc)))

  Set UserId
addedUserIds <-
    Remote ConvId -> Qualified UserId -> [UserId] -> Sem r (Set UserId)
forall (r :: EffectRow).
(Member BrigAccess r, Member MemberStore r,
 Member (Logger (Msg -> Msg)) r) =>
Remote ConvId -> Qualified UserId -> [UserId] -> Sem r (Set UserId)
addLocalUsersToRemoteConv
      (ConversationCreated (Remote ConvId) -> Remote ConvId
forall conv. ConversationCreated conv -> conv
cnvId ConversationCreated (Remote ConvId)
qrc)
      (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged (ConversationCreated (Remote ConvId) -> Remote UserId
ccRemoteOrigUserId ConversationCreated (Remote ConvId)
qrc))
      [UserId]
localUserIds

  let connectedMembers :: Set OtherMember
connectedMembers =
        (OtherMember -> Bool) -> Set OtherMember -> Set OtherMember
forall a. (a -> Bool) -> Set a -> Set a
Set.filter
          ( Local ()
-> (Local UserId -> Bool)
-> (Remote UserId -> Bool)
-> Qualified UserId
-> Bool
forall x a b.
Local x -> (Local a -> b) -> (Remote a -> b) -> Qualified a -> b
foldQualified
              Local ()
loc
              ((UserId -> Set UserId -> Bool) -> Set UserId -> UserId -> Bool
forall a b c. (a -> b -> c) -> b -> a -> c
flip UserId -> Set UserId -> Bool
forall a. Ord a => a -> Set a -> Bool
Set.member Set UserId
addedUserIds (UserId -> Bool)
-> (Local UserId -> UserId) -> Local UserId -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Local UserId -> UserId
forall (t :: QTag) a. QualifiedWithTag t a -> a
tUnqualified)
              (Bool -> Remote UserId -> Bool
forall a b. a -> b -> a
const Bool
True)
              (Qualified UserId -> Bool)
-> (OtherMember -> Qualified UserId) -> OtherMember -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OtherMember -> Qualified UserId
omQualifiedId
          )
          (ConversationCreated ConvId -> Set OtherMember
forall conv. ConversationCreated conv -> Set OtherMember
nonCreatorMembers ConversationCreated ConvId
rc)
  -- Make sure to notify only about local users connected to the adder
  let qrcConnected :: ConversationCreated (Remote ConvId)
qrcConnected = ConversationCreated (Remote ConvId)
qrc {nonCreatorMembers = connectedMembers}

  [(Member, Conversation)]
-> ((Member, Conversation) -> Sem r ()) -> Sem r ()
forall (t :: * -> *) (f :: * -> *) a b.
(Foldable t, Applicative f) =>
t a -> (a -> f b) -> f ()
for_ (Local ()
-> ConversationCreated (Remote ConvId) -> [(Member, Conversation)]
forall x.
Local x
-> ConversationCreated (Remote ConvId) -> [(Member, Conversation)]
fromConversationCreated Local ()
loc ConversationCreated (Remote ConvId)
qrcConnected) (((Member, Conversation) -> Sem r ()) -> Sem r ())
-> ((Member, Conversation) -> Sem r ()) -> Sem r ()
forall a b. (a -> b) -> a -> b
$ \(Member
mem, Conversation
c) -> do
    let event :: Event
event =
          Qualified ConvId
-> Maybe SubConvId
-> Qualified UserId
-> UTCTime
-> EventData
-> Event
Event
            (Remote ConvId -> Qualified ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged (ConversationCreated (Remote ConvId) -> Remote ConvId
forall conv. ConversationCreated conv -> conv
cnvId ConversationCreated (Remote ConvId)
qrcConnected))
            Maybe SubConvId
forall a. Maybe a
Nothing
            (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged (ConversationCreated (Remote ConvId) -> Remote UserId
ccRemoteOrigUserId ConversationCreated (Remote ConvId)
qrcConnected))
            ConversationCreated (Remote ConvId)
qrcConnected.time
            (Conversation -> EventData
EdConversation Conversation
c)
    Maybe ConnId -> Event -> Local [UserId] -> [BotMember] -> Sem r ()
forall (r :: EffectRow) (f :: * -> *).
(Member ExternalAccess r, Member NotificationSubsystem r,
 Foldable f) =>
Maybe ConnId
-> Event -> Local (f UserId) -> f BotMember -> Sem r ()
pushConversationEvent Maybe ConnId
forall a. Maybe a
Nothing Event
event (Local () -> [UserId] -> Local [UserId]
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ()
loc [Qualified UserId -> UserId
forall a. Qualified a -> a
qUnqualified (Qualified UserId -> UserId)
-> (Member -> Qualified UserId) -> Member -> UserId
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Member -> Qualified UserId
Public.memId (Member -> UserId) -> Member -> UserId
forall a b. (a -> b) -> a -> b
$ Member
mem]) []
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

getConversationsV1 ::
  ( Member ConversationStore r,
    Member (Input (Local ())) r
  ) =>
  Domain ->
  GetConversationsRequest ->
  Sem r GetConversationsResponse
getConversationsV1 :: forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r) =>
Domain -> GetConversationsRequest -> Sem r GetConversationsResponse
getConversationsV1 Domain
domain GetConversationsRequest
req =
  GetConversationsResponseV2 -> GetConversationsResponse
getConversationsResponseFromV2 (GetConversationsResponseV2 -> GetConversationsResponse)
-> Sem r GetConversationsResponseV2
-> Sem r GetConversationsResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Domain
-> GetConversationsRequest -> Sem r GetConversationsResponseV2
forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r) =>
Domain
-> GetConversationsRequest -> Sem r GetConversationsResponseV2
getConversations Domain
domain GetConversationsRequest
req

getConversations ::
  ( Member ConversationStore r,
    Member (Input (Local ())) r
  ) =>
  Domain ->
  GetConversationsRequest ->
  Sem r GetConversationsResponseV2
getConversations :: forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r) =>
Domain
-> GetConversationsRequest -> Sem r GetConversationsResponseV2
getConversations Domain
domain (GetConversationsRequest UserId
uid [ConvId]
cids) = do
  let ruid :: Remote UserId
ruid = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain UserId
uid
  Local ()
loc <- () -> Sem r (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  [RemoteConversationV2] -> GetConversationsResponseV2
GetConversationsResponseV2
    ([RemoteConversationV2] -> GetConversationsResponseV2)
-> ([Conversation] -> [RemoteConversationV2])
-> [Conversation]
-> GetConversationsResponseV2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Conversation -> Maybe RemoteConversationV2)
-> [Conversation] -> [RemoteConversationV2]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe (Domain
-> Remote UserId -> Conversation -> Maybe RemoteConversationV2
Mapping.conversationToRemote (Local () -> Domain
forall (t :: QTag) a. QualifiedWithTag t a -> Domain
tDomain Local ()
loc) Remote UserId
ruid)
    ([Conversation] -> GetConversationsResponseV2)
-> Sem r [Conversation] -> Sem r GetConversationsResponseV2
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [ConvId] -> Sem r [Conversation]
forall (r :: EffectRow).
Member ConversationStore r =>
[ConvId] -> Sem r [Conversation]
E.getConversations [ConvId]
cids

-- | Update the local database with information on conversation members joining
-- or leaving. Finally, push out notifications to local users.
onConversationUpdated ::
  ( Member BrigAccess r,
    Member NotificationSubsystem r,
    Member ExternalAccess r,
    Member (Input (Local ())) r,
    Member MemberStore r,
    Member P.TinyLog r
  ) =>
  Domain ->
  ConversationUpdate ->
  Sem r EmptyResponse
onConversationUpdated :: forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationUpdate -> Sem r EmptyResponse
onConversationUpdated Domain
requestingDomain ConversationUpdate
cu = do
  let rcu :: Remote ConversationUpdate
rcu = Domain -> ConversationUpdate -> Remote ConversationUpdate
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
requestingDomain ConversationUpdate
cu
  Sem r (Maybe Event) -> Sem r ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Sem r (Maybe Event) -> Sem r ())
-> Sem r (Maybe Event) -> Sem r ()
forall a b. (a -> b) -> a -> b
$ Remote ConversationUpdate -> Maybe ConnId -> Sem r (Maybe Event)
forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Remote ConversationUpdate -> Maybe ConnId -> Sem r (Maybe Event)
updateLocalStateOfRemoteConv Remote ConversationUpdate
rcu Maybe ConnId
forall a. Maybe a
Nothing
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

onConversationUpdatedV0 ::
  ( Member BrigAccess r,
    Member NotificationSubsystem r,
    Member ExternalAccess r,
    Member (Input (Local ())) r,
    Member MemberStore r,
    Member P.TinyLog r
  ) =>
  Domain ->
  ConversationUpdateV0 ->
  Sem r EmptyResponse
onConversationUpdatedV0 :: forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationUpdateV0 -> Sem r EmptyResponse
onConversationUpdatedV0 Domain
domain ConversationUpdateV0
cu =
  Domain -> ConversationUpdate -> Sem r EmptyResponse
forall (r :: EffectRow).
(Member BrigAccess r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Input (Local ())) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> ConversationUpdate -> Sem r EmptyResponse
onConversationUpdated Domain
domain (ConversationUpdateV0 -> ConversationUpdate
conversationUpdateFromV0 ConversationUpdateV0
cu)

-- as of now this will not generate the necessary events on the leaver's domain
leaveConversation ::
  ( Member BackendNotificationQueueAccess r,
    Member ConversationStore r,
    Member (Error InternalError) r,
    Member ExternalAccess r,
    Member FederatorAccess r,
    Member NotificationSubsystem r,
    Member (Input Env) r,
    Member (Input (Local ())) r,
    Member (Input UTCTime) r,
    Member MemberStore r,
    Member ProposalStore r,
    Member Random r,
    Member SubConversationStore r,
    Member TinyLog r
  ) =>
  Domain ->
  LeaveConversationRequest ->
  Sem r LeaveConversationResponse
leaveConversation :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error InternalError) r,
 Member ExternalAccess r, Member FederatorAccess r,
 Member NotificationSubsystem r, Member (Input Env) r,
 Member (Input (Local ())) r, Member (Input UTCTime) r,
 Member MemberStore r, Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain
-> LeaveConversationRequest -> Sem r LeaveConversationResponse
leaveConversation Domain
requestingDomain LeaveConversationRequest
lc = do
  let leaver :: Qualified UserId
leaver = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified LeaveConversationRequest
lc.leaver Domain
requestingDomain
  Local ConvId
lcnv <- ConvId -> Sem r (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal LeaveConversationRequest
lc.convId

  Either RemoveFromConversationError Conversation
res <-
    Sem (Error RemoveFromConversationError : r) Conversation
-> Sem r (Either RemoveFromConversationError Conversation)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError
      (Sem (Error RemoveFromConversationError : r) Conversation
 -> Sem r (Either RemoveFromConversationError Conversation))
-> (Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation
    -> Sem (Error RemoveFromConversationError : r) Conversation)
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
-> Sem r (Either RemoveFromConversationError Conversation)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (e :: k) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
forall (e :: GalleyError) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
mapToRuntimeError @'ConvNotFound RemoveFromConversationError
RemoveFromConversationErrorNotFound
      (Sem
   (ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
   Conversation
 -> Sem (Error RemoveFromConversationError : r) Conversation)
-> (Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation
    -> Sem
         (ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
         Conversation)
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
-> Sem (Error RemoveFromConversationError : r) Conversation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (e :: k) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
forall (e :: GalleyError) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
mapToRuntimeError @('ActionDenied 'LeaveConversation) RemoveFromConversationError
RemoveFromConversationErrorRemovalNotAllowed
      (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
   Conversation
 -> Sem
      (ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
      Conversation)
-> (Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation
    -> Sem
         (ErrorS ('ActionDenied 'LeaveConversation)
            : ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
         Conversation)
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
-> Sem
     (ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
     Conversation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (e :: k) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
forall (e :: GalleyError) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
mapToRuntimeError @'InvalidOperation RemoveFromConversationError
RemoveFromConversationErrorRemovalNotAllowed
      (Sem
   (ErrorS 'InvalidOperation
      : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
      : Error RemoveFromConversationError : r)
   Conversation
 -> Sem
      (ErrorS ('ActionDenied 'LeaveConversation)
         : ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
      Conversation)
-> (Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation
    -> Sem
         (ErrorS 'InvalidOperation
            : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
            : Error RemoveFromConversationError : r)
         Conversation)
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'ConvNotFound : Error RemoveFromConversationError : r)
     Conversation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e1 e2 (r :: EffectRow) a.
Member (Error e2) r =>
(e1 -> e2) -> Sem (Error e1 : r) a -> Sem r a
mapError @NoChanges (RemoveFromConversationError
-> NoChanges -> RemoveFromConversationError
forall a b. a -> b -> a
const RemoveFromConversationError
RemoveFromConversationErrorUnchanged)
      (Sem
   (Error NoChanges
      : ErrorS 'InvalidOperation
      : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
      : Error RemoveFromConversationError : r)
   Conversation
 -> Sem r (Either RemoveFromConversationError Conversation))
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
-> Sem r (Either RemoveFromConversationError Conversation)
forall a b. (a -> b) -> a -> b
$ do
        (Conversation
conv, Either LocalMember RemoteMember
_self) <- forall {k1} (e :: k1) uid mem (r :: EffectRow).
(Member ConversationStore r, Member (ErrorS 'ConvNotFound) r,
 Member (ErrorS e) r, IsConvMemberId uid mem) =>
uid -> Local ConvId -> Sem r (Conversation, mem)
forall (e :: GalleyError) uid mem (r :: EffectRow).
(Member ConversationStore r, Member (ErrorS 'ConvNotFound) r,
 Member (ErrorS e) r, IsConvMemberId uid mem) =>
uid -> Local ConvId -> Sem r (Conversation, mem)
getConversationAndMemberWithError @'ConvNotFound Qualified UserId
leaver Local ConvId
lcnv
        Either FederationError ConversationUpdate
outcome <-
          forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @FederationError (Sem
   (Error FederationError
      : Error NoChanges : ErrorS 'InvalidOperation
      : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
      : Error RemoveFromConversationError : r)
   ConversationUpdate
 -> Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      (Either FederationError ConversationUpdate))
-> Sem
     (Error FederationError
        : Error NoChanges : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     ConversationUpdate
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     (Either FederationError ConversationUpdate)
forall a b. (a -> b) -> a -> b
$
            LocalConversationUpdate -> ConversationUpdate
lcuUpdate
              (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error FederationError
        : Error NoChanges : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     LocalConversationUpdate
-> Sem
     (Error FederationError
        : Error NoChanges : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     ConversationUpdate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation
                @'ConversationLeaveTag
                Local ConvId
lcnv
                Qualified UserId
leaver
                Maybe ConnId
forall a. Maybe a
Nothing
                ()
        case Either FederationError ConversationUpdate
outcome of
          Left FederationError
e -> do
            Local ConvId
-> FederationError
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     ()
forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Local ConvId -> FederationError -> Sem r ()
logFederationError Local ConvId
lcnv FederationError
e
            InternalError
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (InternalError
 -> Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation)
-> (FederationError -> InternalError)
-> FederationError
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FederationError -> InternalError
internalErr (FederationError
 -> Sem
      (Error NoChanges
         : ErrorS 'InvalidOperation
         : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
         : Error RemoveFromConversationError : r)
      Conversation)
-> FederationError
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
forall a b. (a -> b) -> a -> b
$ FederationError
e
          Right ConversationUpdate
_ -> Conversation
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     Conversation
forall a.
a
-> Sem
     (Error NoChanges
        : ErrorS 'InvalidOperation
        : ErrorS ('ActionDenied 'LeaveConversation) : ErrorS 'ConvNotFound
        : Error RemoveFromConversationError : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Conversation
conv

  case Either RemoveFromConversationError Conversation
res of
    Left RemoveFromConversationError
e -> LeaveConversationResponse -> Sem r LeaveConversationResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (LeaveConversationResponse -> Sem r LeaveConversationResponse)
-> LeaveConversationResponse -> Sem r LeaveConversationResponse
forall a b. (a -> b) -> a -> b
$ Either RemoveFromConversationError () -> LeaveConversationResponse
LeaveConversationResponse (RemoveFromConversationError
-> Either RemoveFromConversationError ()
forall a b. a -> Either a b
Left RemoveFromConversationError
e)
    Right Conversation
conv -> do
      let remotes :: [Remote UserId]
remotes = (Remote UserId -> Bool) -> [Remote UserId] -> [Remote UserId]
forall a. (a -> Bool) -> [a] -> [a]
filter ((Domain -> Domain -> Bool
forall a. Eq a => a -> a -> Bool
== Qualified UserId -> Domain
forall a. Qualified a -> Domain
qDomain Qualified UserId
leaver) (Domain -> Bool)
-> (Remote UserId -> Domain) -> Remote UserId -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Remote UserId -> Domain
forall (t :: QTag) a. QualifiedWithTag t a -> Domain
tDomain) (RemoteMember -> Remote UserId
rmId (RemoteMember -> Remote UserId)
-> [RemoteMember] -> [Remote UserId]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Conversation -> [RemoteMember]
Data.convRemoteMembers Conversation
conv)
      let botsAndMembers :: BotsAndMembers
botsAndMembers = Set UserId
-> Set (Remote UserId) -> Set BotMember -> BotsAndMembers
BotsAndMembers Set UserId
forall a. Monoid a => a
mempty ([Remote UserId] -> Set (Remote UserId)
forall a. Ord a => [a] -> Set a
Set.fromList [Remote UserId]
remotes) Set BotMember
forall a. Monoid a => a
mempty
      do
        Either FederationError LocalConversationUpdate
outcome <-
          forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @FederationError (Sem (Error FederationError : r) LocalConversationUpdate
 -> Sem r (Either FederationError LocalConversationUpdate))
-> Sem (Error FederationError : r) LocalConversationUpdate
-> Sem r (Either FederationError LocalConversationUpdate)
forall a b. (a -> b) -> a -> b
$
            Sing 'ConversationLeaveTag
-> Qualified UserId
-> Bool
-> Maybe ConnId
-> Local Conversation
-> BotsAndMembers
-> ConversationAction 'ConversationLeaveTag
-> Sem (Error FederationError : r) LocalConversationUpdate
forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member ExternalAccess r,
 Member (Error FederationError) r, Member NotificationSubsystem r,
 Member (Input UTCTime) r) =>
Sing tag
-> Qualified UserId
-> Bool
-> Maybe ConnId
-> Local Conversation
-> BotsAndMembers
-> ConversationAction tag
-> Sem r LocalConversationUpdate
notifyConversationAction
              Sing 'ConversationLeaveTag
SConversationActionTag 'ConversationLeaveTag
SConversationLeaveTag
              Qualified UserId
leaver
              Bool
False
              Maybe ConnId
forall a. Maybe a
Nothing
              (Local ConvId -> Conversation -> Local Conversation
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ConvId
lcnv Conversation
conv)
              BotsAndMembers
botsAndMembers
              ()
        case Either FederationError LocalConversationUpdate
outcome of
          Left FederationError
e -> do
            Local ConvId -> FederationError -> Sem r ()
forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Local ConvId -> FederationError -> Sem r ()
logFederationError Local ConvId
lcnv FederationError
e
            InternalError -> Sem r ()
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (InternalError -> Sem r ())
-> (FederationError -> InternalError)
-> FederationError
-> Sem r ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FederationError -> InternalError
internalErr (FederationError -> Sem r ()) -> FederationError -> Sem r ()
forall a b. (a -> b) -> a -> b
$ FederationError
e
          Right LocalConversationUpdate
_ -> () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

      LeaveConversationResponse -> Sem r LeaveConversationResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (LeaveConversationResponse -> Sem r LeaveConversationResponse)
-> LeaveConversationResponse -> Sem r LeaveConversationResponse
forall a b. (a -> b) -> a -> b
$ Either RemoveFromConversationError () -> LeaveConversationResponse
LeaveConversationResponse (() -> Either RemoveFromConversationError ()
forall a b. b -> Either a b
Right ())
  where
    internalErr :: FederationError -> InternalError
internalErr = LText -> InternalError
InternalErrorWithDescription (LText -> InternalError)
-> (FederationError -> LText) -> FederationError -> InternalError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> LText
LT.pack (String -> LText)
-> (FederationError -> String) -> FederationError -> LText
forall b c a. (b -> c) -> (a -> b) -> a -> c
. FederationError -> String
forall e. Exception e => e -> String
displayException

-- FUTUREWORK: report errors to the originating backend
-- FUTUREWORK: error handling for missing / mismatched clients
-- FUTUREWORK: support bots
onMessageSent ::
  ( Member NotificationSubsystem r,
    Member ExternalAccess r,
    Member MemberStore r,
    Member (Input (Local ())) r,
    Member P.TinyLog r
  ) =>
  Domain ->
  RemoteMessage ConvId ->
  Sem r EmptyResponse
onMessageSent :: forall (r :: EffectRow).
(Member NotificationSubsystem r, Member ExternalAccess r,
 Member MemberStore r, Member (Input (Local ())) r,
 Member (Logger (Msg -> Msg)) r) =>
Domain -> RemoteMessage ConvId -> Sem r EmptyResponse
onMessageSent Domain
domain RemoteMessage ConvId
rmUnqualified = do
  let rm :: RemoteMessage (Remote ConvId)
rm = (ConvId -> Remote ConvId)
-> RemoteMessage ConvId -> RemoteMessage (Remote ConvId)
forall a b. (a -> b) -> RemoteMessage a -> RemoteMessage b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Domain -> ConvId -> Remote ConvId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain) RemoteMessage ConvId
rmUnqualified
      convId :: Qualified ConvId
convId = Remote ConvId -> Qualified ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged RemoteMessage (Remote ConvId)
rm.conversation
      msgMetadata :: MessageMetadata
msgMetadata =
        MessageMetadata
          { $sel:mmNativePush:MessageMetadata :: Bool
mmNativePush = RemoteMessage (Remote ConvId)
rm.push,
            $sel:mmTransient:MessageMetadata :: Bool
mmTransient = RemoteMessage (Remote ConvId) -> Bool
forall conv. RemoteMessage conv -> Bool
transient RemoteMessage (Remote ConvId)
rm,
            $sel:mmNativePriority:MessageMetadata :: Maybe Priority
mmNativePriority = RemoteMessage (Remote ConvId) -> Maybe Priority
forall conv. RemoteMessage conv -> Maybe Priority
priority RemoteMessage (Remote ConvId)
rm,
            $sel:mmData:MessageMetadata :: Maybe Text
mmData = RemoteMessage (Remote ConvId) -> Maybe Text
forall conv. RemoteMessage conv -> Maybe Text
_data RemoteMessage (Remote ConvId)
rm
          }
      recipientMap :: Map UserId (Map ClientId Text)
recipientMap = UserClientMap Text -> Map UserId (Map ClientId Text)
forall a. UserClientMap a -> Map UserId (Map ClientId a)
userClientMap RemoteMessage (Remote ConvId)
rm.recipients
      msgs :: Map (UserId, ClientId) Text
msgs = IndexedGetting
  (UserId, ClientId)
  (Map (UserId, ClientId) Text)
  (Map UserId (Map ClientId Text))
  Text
-> Map UserId (Map ClientId Text) -> Map (UserId, ClientId) Text
forall i a s. IndexedGetting i (Map i a) s a -> s -> Map i a
toMapOf (Indexed
  UserId
  (Map ClientId Text)
  (Const (Map (UserId, ClientId) Text) (Map ClientId Text))
-> Map UserId (Map ClientId Text)
-> Const
     (Map (UserId, ClientId) Text) (Map UserId (Map ClientId Text))
forall i (t :: * -> *) a b.
TraversableWithIndex i t =>
IndexedTraversal i (t a) (t b) a b
IndexedTraversal
  UserId
  (Map UserId (Map ClientId Text))
  (Map UserId (Map ClientId Text))
  (Map ClientId Text)
  (Map ClientId Text)
itraversed (Indexed
   UserId
   (Map ClientId Text)
   (Const (Map (UserId, ClientId) Text) (Map ClientId Text))
 -> Map UserId (Map ClientId Text)
 -> Const
      (Map (UserId, ClientId) Text) (Map UserId (Map ClientId Text)))
-> (Indexed
      ClientId Text (Const (Map (UserId, ClientId) Text) Text)
    -> Map ClientId Text
    -> Const (Map (UserId, ClientId) Text) (Map ClientId Text))
-> IndexedGetting
     (UserId, ClientId)
     (Map (UserId, ClientId) Text)
     (Map UserId (Map ClientId Text))
     Text
forall i j (p :: * -> * -> *) s t r a b.
Indexable (i, j) p =>
(Indexed i s t -> r) -> (Indexed j a b -> s -> t) -> p a b -> r
<.> Indexed ClientId Text (Const (Map (UserId, ClientId) Text) Text)
-> Map ClientId Text
-> Const (Map (UserId, ClientId) Text) (Map ClientId Text)
forall i (t :: * -> *) a b.
TraversableWithIndex i t =>
IndexedTraversal i (t a) (t b) a b
IndexedTraversal
  ClientId (Map ClientId Text) (Map ClientId Text) Text Text
itraversed) Map UserId (Map ClientId Text)
recipientMap
  (Set UserId
members, Bool
allMembers) <-
    ([UserId] -> Set UserId) -> ([UserId], Bool) -> (Set UserId, Bool)
forall a b c. (a -> b) -> (a, c) -> (b, c)
forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> p a c -> p b c
first [UserId] -> Set UserId
forall a. Ord a => [a] -> Set a
Set.fromList
      (([UserId], Bool) -> (Set UserId, Bool))
-> Sem r ([UserId], Bool) -> Sem r (Set UserId, Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [UserId] -> Remote ConvId -> Sem r ([UserId], Bool)
forall (r :: EffectRow).
Member MemberStore r =>
[UserId] -> Remote ConvId -> Sem r ([UserId], Bool)
E.selectRemoteMembers (Map UserId (Map ClientId Text) -> [UserId]
forall k a. Map k a -> [k]
Map.keys Map UserId (Map ClientId Text)
recipientMap) RemoteMessage (Remote ConvId)
rm.conversation
  Bool -> Sem r () -> Sem r ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless Bool
allMembers (Sem r () -> Sem r ()) -> Sem r () -> Sem r ()
forall a b. (a -> b) -> a -> b
$
    (Msg -> Msg) -> Sem r ()
forall msg (r :: EffectRow).
Member (Logger msg) r =>
msg -> Sem r ()
P.warn ((Msg -> Msg) -> Sem r ()) -> (Msg -> Msg) -> Sem r ()
forall a b. (a -> b) -> a -> b
$
      ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"conversation" (ConvId -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Qualified ConvId -> ConvId
forall a. Qualified a -> a
qUnqualified Qualified ConvId
convId))
        (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"domain" (Domain -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Qualified ConvId -> Domain
forall a. Qualified a -> Domain
qDomain Qualified ConvId
convId))
        (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> Msg -> Msg
forall a. ToBytes a => a -> Msg -> Msg
Log.msg
          ( ByteString
"Attempt to send remote message to local\
            \ users not in the conversation" ::
              ByteString
          )
  Local ()
loc <- () -> Sem r (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  Sem r (Set (UserId, ClientId)) -> Sem r ()
forall (f :: * -> *) a. Functor f => f a -> f ()
void (Sem r (Set (UserId, ClientId)) -> Sem r ())
-> Sem r (Set (UserId, ClientId)) -> Sem r ()
forall a b. (a -> b) -> a -> b
$
    Local ()
-> UTCTime
-> Qualified UserId
-> ClientId
-> Maybe ConnId
-> Maybe (Qualified ConvId)
-> BotMap
-> MessageMetadata
-> Map (UserId, ClientId) Text
-> Sem r (Set (UserId, ClientId))
forall (r :: EffectRow) x.
(Member ExternalAccess r, Member (Logger (Msg -> Msg)) r,
 Member NotificationSubsystem r) =>
Local x
-> UTCTime
-> Qualified UserId
-> ClientId
-> Maybe ConnId
-> Maybe (Qualified ConvId)
-> BotMap
-> MessageMetadata
-> Map (UserId, ClientId) Text
-> Sem r (Set (UserId, ClientId))
sendLocalMessages
      Local ()
loc
      RemoteMessage (Remote ConvId)
rm.time
      RemoteMessage (Remote ConvId)
rm.sender
      RemoteMessage (Remote ConvId)
rm.senderClient
      Maybe ConnId
forall a. Maybe a
Nothing
      (Qualified ConvId -> Maybe (Qualified ConvId)
forall a. a -> Maybe a
Just Qualified ConvId
convId)
      BotMap
forall a. Monoid a => a
mempty
      MessageMetadata
msgMetadata
      (((UserId, ClientId) -> Text -> Bool)
-> Map (UserId, ClientId) Text -> Map (UserId, ClientId) Text
forall k a. (k -> a -> Bool) -> Map k a -> Map k a
Map.filterWithKey (\(UserId
uid, ClientId
_) Text
_ -> UserId -> Set UserId -> Bool
forall a. Ord a => a -> Set a -> Bool
Set.member UserId
uid Set UserId
members) Map (UserId, ClientId) Text
msgs)
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

sendMessage ::
  ( Member BrigAccess r,
    Member ClientStore r,
    Member ConversationStore r,
    Member (Error InvalidInput) r,
    Member FederatorAccess r,
    Member BackendNotificationQueueAccess r,
    Member NotificationSubsystem r,
    Member (Input (Local ())) r,
    Member (Input Opts) r,
    Member (Input UTCTime) r,
    Member ExternalAccess r,
    Member TeamStore r,
    Member P.TinyLog r
  ) =>
  Domain ->
  ProteusMessageSendRequest ->
  Sem r MessageSendResponse
sendMessage :: forall (r :: EffectRow).
(Member BrigAccess r, Member ClientStore r,
 Member ConversationStore r, Member (Error InvalidInput) r,
 Member FederatorAccess r, Member BackendNotificationQueueAccess r,
 Member NotificationSubsystem r, Member (Input (Local ())) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member ExternalAccess r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r) =>
Domain -> ProteusMessageSendRequest -> Sem r MessageSendResponse
sendMessage Domain
originDomain ProteusMessageSendRequest
msr = do
  let sender :: Qualified UserId
sender = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified ProteusMessageSendRequest
msr.sender Domain
originDomain
  QualifiedNewOtrMessage
msg <- (String -> Sem r QualifiedNewOtrMessage)
-> (QualifiedNewOtrMessage -> Sem r QualifiedNewOtrMessage)
-> Either String QualifiedNewOtrMessage
-> Sem r QualifiedNewOtrMessage
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either String -> Sem r QualifiedNewOtrMessage
forall {a}. String -> Sem r a
throwErr QualifiedNewOtrMessage -> Sem r QualifiedNewOtrMessage
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (ByteString -> Either String QualifiedNewOtrMessage
forall a. FromProto a => ByteString -> Either String a
fromProto (Base64ByteString -> ByteString
fromBase64ByteString ProteusMessageSendRequest
msr.rawMessage))
  Local ConvId
lcnv <- ConvId -> Sem r (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ProteusMessageSendRequest
msr.convId
  PostOtrResponse MessageSendingStatus -> MessageSendResponse
MessageSendResponse (PostOtrResponse MessageSendingStatus -> MessageSendResponse)
-> Sem r (PostOtrResponse MessageSendingStatus)
-> Sem r MessageSendResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> UserType
-> Qualified UserId
-> Maybe ConnId
-> Local ConvId
-> QualifiedNewOtrMessage
-> Sem r (PostOtrResponse MessageSendingStatus)
forall (r :: EffectRow).
(Member BrigAccess r, Member ClientStore r,
 Member ConversationStore r, Member FederatorAccess r,
 Member BackendNotificationQueueAccess r, Member ExternalAccess r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member TeamStore r, Member (Logger (Msg -> Msg)) r,
 Member NotificationSubsystem r) =>
UserType
-> Qualified UserId
-> Maybe ConnId
-> Local ConvId
-> QualifiedNewOtrMessage
-> Sem r (PostOtrResponse MessageSendingStatus)
postQualifiedOtrMessage UserType
User Qualified UserId
sender Maybe ConnId
forall a. Maybe a
Nothing Local ConvId
lcnv QualifiedNewOtrMessage
msg
  where
    throwErr :: String -> Sem r a
throwErr = InvalidInput -> Sem r a
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (InvalidInput -> Sem r a)
-> (String -> InvalidInput) -> String -> Sem r a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LText -> InvalidInput
InvalidPayload (LText -> InvalidInput)
-> (String -> LText) -> String -> InvalidInput
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> LText
LT.pack

onUserDeleted ::
  ( Member BackendNotificationQueueAccess r,
    Member ConversationStore r,
    Member FireAndForget r,
    Member (Error FederationError) r,
    Member ExternalAccess r,
    Member NotificationSubsystem r,
    Member (Input (Local ())) r,
    Member (Input UTCTime) r,
    Member (Input Env) r,
    Member MemberStore r,
    Member ProposalStore r,
    Member Random r,
    Member SubConversationStore r,
    Member TinyLog r
  ) =>
  Domain ->
  UserDeletedConversationsNotification ->
  Sem r EmptyResponse
onUserDeleted :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member FireAndForget r,
 Member (Error FederationError) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input (Local ())) r,
 Member (Input UTCTime) r, Member (Input Env) r,
 Member MemberStore r, Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Domain
-> UserDeletedConversationsNotification -> Sem r EmptyResponse
onUserDeleted Domain
origDomain UserDeletedConversationsNotification
udcn = do
  let deletedUser :: Remote UserId
deletedUser = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
origDomain UserDeletedConversationsNotification
udcn.user
      untaggedDeletedUser :: Qualified UserId
untaggedDeletedUser = Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
deletedUser
      convIds :: Range 1 UserDeletedNotificationMaxConvs [ConvId]
convIds = UserDeletedConversationsNotification
-> Range 1 UserDeletedNotificationMaxConvs [ConvId]
conversations UserDeletedConversationsNotification
udcn

  [Sem r ()] -> Sem r ()
forall (r :: EffectRow).
Member FireAndForget r =>
[Sem r ()] -> Sem r ()
E.spawnMany ([Sem r ()] -> Sem r ()) -> [Sem r ()] -> Sem r ()
forall a b. (a -> b) -> a -> b
$
    Range 1 UserDeletedNotificationMaxConvs [ConvId] -> [ConvId]
forall (n :: Nat) (m :: Nat) a. Range n m a -> a
fromRange Range 1 UserDeletedNotificationMaxConvs [ConvId]
convIds [ConvId] -> (ConvId -> Sem r ()) -> [Sem r ()]
forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b
<&> \ConvId
c -> do
      Local ConvId
lc <- ConvId -> Sem r (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
c
      Maybe Conversation
mconv <- ConvId -> Sem r (Maybe Conversation)
forall (r :: EffectRow).
Member ConversationStore r =>
ConvId -> Sem r (Maybe Conversation)
E.getConversation ConvId
c
      ConvId -> UserList UserId -> Sem r ()
forall (r :: EffectRow).
Member MemberStore r =>
ConvId -> UserList UserId -> Sem r ()
E.deleteMembers ConvId
c ([UserId] -> [Remote UserId] -> UserList UserId
forall a. [a] -> [Remote a] -> UserList a
UserList [] [Remote UserId
deletedUser])
      Maybe Conversation -> (Conversation -> Sem r ()) -> Sem r ()
forall (t :: * -> *) (f :: * -> *) a b.
(Foldable t, Applicative f) =>
t a -> (a -> f b) -> f ()
for_ Maybe Conversation
mconv ((Conversation -> Sem r ()) -> Sem r ())
-> (Conversation -> Sem r ()) -> Sem r ()
forall a b. (a -> b) -> a -> b
$ \Conversation
conv -> do
        Bool -> Sem r () -> Sem r ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Remote UserId -> [RemoteMember] -> Bool
forall (m :: * -> *).
Foldable m =>
Remote UserId -> m RemoteMember -> Bool
isRemoteMember Remote UserId
deletedUser (Conversation -> [RemoteMember]
Data.convRemoteMembers Conversation
conv)) (Sem r () -> Sem r ()) -> Sem r () -> Sem r ()
forall a b. (a -> b) -> a -> b
$
          case Conversation -> ConvType
Data.convType Conversation
conv of
            -- No need for a notification on One2One conv as the user is being
            -- deleted and that notification should suffice.
            ConvType
Public.One2OneConv -> () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
            -- No need for a notification on Connect Conv as there should be no
            -- other user in the conv.
            ConvType
Public.ConnectConv -> () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
            -- The self conv cannot be on a remote backend.
            ConvType
Public.SelfConv -> () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
            ConvType
Public.RegularConv -> do
              let botsAndMembers :: BotsAndMembers
botsAndMembers = Conversation -> BotsAndMembers
convBotsAndMembers Conversation
conv
              Local Conversation
-> RemoveUserIncludeMain -> Qualified UserId -> Sem r ()
forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member (Error FederationError) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input Env) r,
 Member (Input UTCTime) r, Member MemberStore r,
 Member ProposalStore r, Member Random r,
 Member SubConversationStore r, Member (Logger (Msg -> Msg)) r) =>
Local Conversation
-> RemoveUserIncludeMain -> Qualified UserId -> Sem r ()
removeUser (Local ConvId -> Conversation -> Local Conversation
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ConvId
lc Conversation
conv) RemoveUserIncludeMain
RemoveUserIncludeMain (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
deletedUser)
              Either FederationError LocalConversationUpdate
outcome <-
                forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @FederationError (Sem (Error FederationError : r) LocalConversationUpdate
 -> Sem r (Either FederationError LocalConversationUpdate))
-> Sem (Error FederationError : r) LocalConversationUpdate
-> Sem r (Either FederationError LocalConversationUpdate)
forall a b. (a -> b) -> a -> b
$
                  Sing 'ConversationLeaveTag
-> Qualified UserId
-> Bool
-> Maybe ConnId
-> Local Conversation
-> BotsAndMembers
-> ConversationAction 'ConversationLeaveTag
-> Sem (Error FederationError : r) LocalConversationUpdate
forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member ExternalAccess r,
 Member (Error FederationError) r, Member NotificationSubsystem r,
 Member (Input UTCTime) r) =>
Sing tag
-> Qualified UserId
-> Bool
-> Maybe ConnId
-> Local Conversation
-> BotsAndMembers
-> ConversationAction tag
-> Sem r LocalConversationUpdate
notifyConversationAction
                    (forall {k} (a :: k). SingI a => Sing a
forall (a :: ConversationActionTag). SingI a => Sing a
sing @'ConversationLeaveTag)
                    Qualified UserId
untaggedDeletedUser
                    Bool
False
                    Maybe ConnId
forall a. Maybe a
Nothing
                    (Local ConvId -> Conversation -> Local Conversation
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ConvId
lc Conversation
conv)
                    BotsAndMembers
botsAndMembers
                    ()
              case Either FederationError LocalConversationUpdate
outcome of
                Left FederationError
e -> Local ConvId -> FederationError -> Sem r ()
forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Local ConvId -> FederationError -> Sem r ()
logFederationError Local ConvId
lc FederationError
e
                Right LocalConversationUpdate
_ -> () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

updateConversation ::
  forall r.
  ( Member BackendNotificationQueueAccess r,
    Member BrigAccess r,
    Member CodeStore r,
    Member BotAccess r,
    Member FireAndForget r,
    Member (Error FederationError) r,
    Member (Error InvalidInput) r,
    Member ExternalAccess r,
    Member FederatorAccess r,
    Member (Error InternalError) r,
    Member NotificationSubsystem r,
    Member (Input Env) r,
    Member (Input Opts) r,
    Member (Input UTCTime) r,
    Member LegalHoldStore r,
    Member MemberStore r,
    Member ProposalStore r,
    Member TeamStore r,
    Member TinyLog r,
    Member ConversationStore r,
    Member Random r,
    Member SubConversationStore r,
    Member TeamFeatureStore r,
    Member (Input (Local ())) r
  ) =>
  Domain ->
  ConversationUpdateRequest ->
  Sem r ConversationUpdateResponse
updateConversation :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member CodeStore r, Member BotAccess r, Member FireAndForget r,
 Member (Error FederationError) r, Member (Error InvalidInput) r,
 Member ExternalAccess r, Member FederatorAccess r,
 Member (Error InternalError) r, Member NotificationSubsystem r,
 Member (Input Env) r, Member (Input Opts) r,
 Member (Input UTCTime) r, Member LegalHoldStore r,
 Member MemberStore r, Member ProposalStore r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r, Member ConversationStore r,
 Member Random r, Member SubConversationStore r,
 Member TeamFeatureStore r, Member (Input (Local ())) r) =>
Domain
-> ConversationUpdateRequest -> Sem r ConversationUpdateResponse
updateConversation Domain
origDomain ConversationUpdateRequest
updateRequest = do
  Local ()
loc <- () -> Sem r (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  let rusr :: Remote UserId
rusr = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
origDomain ConversationUpdateRequest
updateRequest.user
      lcnv :: Local ConvId
lcnv = Local () -> ConvId -> Local ConvId
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ()
loc ConversationUpdateRequest
updateRequest.convId

  Sem
  (Error UnreachableBackends
     : Error NonFederatingBackends : Error NoChanges : Error GalleyError
     : r)
  ConversationUpdate
-> Sem r ConversationUpdateResponse
forall {r :: EffectRow}.
Sem
  (Error UnreachableBackends
     : Error NonFederatingBackends : Error NoChanges : Error GalleyError
     : r)
  ConversationUpdate
-> Sem r ConversationUpdateResponse
mkResponse (Sem
   (Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdate
 -> Sem r ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem r ConversationUpdateResponse
forall a b. (a -> b) -> a -> b
$ case ConversationUpdateRequest
updateRequest.action of
    SomeConversationAction Sing tag
tag ConversationAction tag
action -> case Sing tag
tag of
      Sing tag
SConversationActionTag tag
SConversationJoinTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @(HasConversationActionGalleyErrors 'ConversationJoinTag)
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : Error (Tagged ('ActionDenied 'AddConversationMember) ())
      : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
      : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
      : Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'TooManyMembers ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (ErrorS ('ActionDenied 'LeaveConversation)
         : Error (Tagged ('ActionDenied 'AddConversationMember) ())
         : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
         : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'TooManyMembers ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (ErrorS ('ActionDenied 'LeaveConversation)
            : Error (Tagged ('ActionDenied 'AddConversationMember) ())
            : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
            : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
            : Error (Tagged 'ConvAccessDenied ())
            : Error (Tagged 'TooManyMembers ())
            : Error (Tagged 'MissingLegalholdConsent ())
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : Error (Tagged ('ActionDenied 'AddConversationMember) ())
      : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
      : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
      : Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'TooManyMembers ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : Error (Tagged ('ActionDenied 'AddConversationMember) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error (Tagged 'NotConnected ())
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'TooManyMembers ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationJoinTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationJoinTag
action
      Sing tag
SConversationActionTag tag
SConversationLeaveTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationLeaveTag)
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (ErrorS ('ActionDenied 'LeaveConversation)
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (ErrorS ('ActionDenied 'LeaveConversation)
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationLeaveTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationLeaveTag
action
      Sing tag
SConversationActionTag tag
SConversationRemoveMembersTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationRemoveMembersTag)
          (Sem
   (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationRemoveMembersTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationRemoveMembersTag
action
      Sing tag
SConversationActionTag tag
SConversationMemberUpdateTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationMemberUpdateTag)
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
            : Error NonFederatingBackends : Error NoChanges : Error GalleyError
            : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyOtherConversationMember) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvMemberNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationMemberUpdateTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationMemberUpdateTag
action
      Sing tag
SConversationActionTag tag
SConversationDeleteTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationDeleteTag)
          (Sem
   (Error (Tagged ('ActionDenied 'DeleteConversation) ())
      : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
      : ErrorS 'ConvNotFound : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'DeleteConversation) ())
         : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
         : ErrorS 'ConvNotFound : Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'DeleteConversation) ())
            : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
            : ErrorS 'ConvNotFound : Error UnreachableBackends
            : Error NonFederatingBackends : Error NoChanges : Error GalleyError
            : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'DeleteConversation) ())
      : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
      : ErrorS 'ConvNotFound : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'DeleteConversation) ())
        : Error (Tagged 'NotATeamMember ()) : ErrorS 'InvalidOperation
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationDeleteTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationDeleteTag
action
      Sing tag
SConversationActionTag tag
SConversationRenameTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationRenameTag)
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationName) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationRenameTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationRenameTag
action
      Sing tag
SConversationActionTag tag
SConversationMessageTimerUpdateTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationMessageTimerUpdateTag)
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationMessageTimer) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationMessageTimerUpdateTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationMessageTimerUpdateTag
action
      Sing tag
SConversationActionTag tag
SConversationReceiptModeUpdateTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @(HasConversationActionGalleyErrors 'ConversationReceiptModeUpdateTag)
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error UnreachableBackends : Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error UnreachableBackends : Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error UnreachableBackends : Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'ModifyConversationReceiptMode) ())
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error UnreachableBackends : Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationReceiptModeUpdateTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationReceiptModeUpdateTag
action
      Sing tag
SConversationActionTag tag
SConversationAccessDataTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationAccessDataTag)
          (Sem
   (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
      : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
      : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
      : ErrorS 'ConvNotFound : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
         : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
         : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
         : ErrorS 'ConvNotFound : Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      LocalConversationUpdate
    -> Sem
         (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
            : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
            : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
            : ErrorS 'ConvNotFound : Error UnreachableBackends
            : Error NonFederatingBackends : Error NoChanges : Error GalleyError
            : r)
         ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     a
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
      : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
      : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
      : ErrorS 'ConvNotFound : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (Error (Tagged ('ActionDenied 'RemoveConversationMember) ())
        : Error (Tagged ('ActionDenied 'ModifyConversationAccess) ())
        : ErrorS 'InvalidOperation : Error (Tagged 'InvalidTargetAccess ())
        : ErrorS 'ConvNotFound : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationAccessDataTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationAccessDataTag
action
      Sing tag
SConversationActionTag tag
SConversationUpdateProtocolTag ->
        forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError
          @(HasConversationActionGalleyErrors 'ConversationUpdateProtocolTag)
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error (Tagged 'ConvInvalidProtocolTransition ())
      : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
      : Error (Tagged 'NotATeamMember ())
      : Error (Tagged OperationDenied ())
      : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> (Sem
      (ErrorS ('ActionDenied 'LeaveConversation)
         : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
         : Error (Tagged 'ConvInvalidProtocolTransition ())
         : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
         : Error (Tagged 'NotATeamMember ())
         : Error (Tagged OperationDenied ())
         : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      LocalConversationUpdate
    -> Sem
         (ErrorS ('ActionDenied 'LeaveConversation)
            : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
            : Error (Tagged 'ConvInvalidProtocolTransition ())
            : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
            : Error (Tagged 'NotATeamMember ())
            : Error (Tagged OperationDenied ())
            : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
            : Error NonFederatingBackends : Error NoChanges : Error GalleyError
            : r)
         ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b.
(a -> b)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     a
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
          (Sem
   (ErrorS ('ActionDenied 'LeaveConversation)
      : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
      : Error (Tagged 'ConvInvalidProtocolTransition ())
      : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
      : Error (Tagged 'NotATeamMember ())
      : Error (Tagged OperationDenied ())
      : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   LocalConversationUpdate
 -> Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate)
-> Sem
     (ErrorS ('ActionDenied 'LeaveConversation)
        : ErrorS 'InvalidOperation : ErrorS 'ConvNotFound
        : Error (Tagged 'ConvInvalidProtocolTransition ())
        : Error (Tagged 'MLSMigrationCriteriaNotSatisfied ())
        : Error (Tagged 'NotATeamMember ())
        : Error (Tagged OperationDenied ())
        : Error (Tagged 'TeamNotFound ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     LocalConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
forall a b. (a -> b) -> a -> b
$ forall (tag :: ConversationActionTag) (r :: EffectRow).
(Member BackendNotificationQueueAccess r,
 Member ConversationStore r, Member (Error FederationError) r,
 Member
   (ErrorS ('ActionDenied (ConversationActionPermission tag))) r,
 Member (ErrorS 'InvalidOperation) r,
 Member (ErrorS 'ConvNotFound) r, Member ExternalAccess r,
 Member NotificationSubsystem r, Member (Input UTCTime) r,
 HasConversationActionEffects tag r, SingI tag) =>
Local ConvId
-> Qualified UserId
-> Maybe ConnId
-> ConversationAction tag
-> Sem r LocalConversationUpdate
updateLocalConversation @'ConversationUpdateProtocolTag Local ConvId
lcnv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) Maybe ConnId
forall a. Maybe a
Nothing ConversationAction tag
ConversationAction 'ConversationUpdateProtocolTag
action
  where
    mkResponse :: Sem
  (Error UnreachableBackends
     : Error NonFederatingBackends : Error NoChanges : Error GalleyError
     : r)
  ConversationUpdate
-> Sem r ConversationUpdateResponse
mkResponse =
      (Either GalleyError ConversationUpdateResponse
 -> ConversationUpdateResponse)
-> Sem r (Either GalleyError ConversationUpdateResponse)
-> Sem r ConversationUpdateResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((GalleyError -> ConversationUpdateResponse)
-> (ConversationUpdateResponse -> ConversationUpdateResponse)
-> Either GalleyError ConversationUpdateResponse
-> ConversationUpdateResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> ConversationUpdateResponse
ConversationUpdateResponseError ConversationUpdateResponse -> ConversationUpdateResponse
forall a. a -> a
Imports.id)
        (Sem r (Either GalleyError ConversationUpdateResponse)
 -> Sem r ConversationUpdateResponse)
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem r (Either GalleyError ConversationUpdateResponse))
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem r ConversationUpdateResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @GalleyError
        (Sem (Error GalleyError : r) ConversationUpdateResponse
 -> Sem r (Either GalleyError ConversationUpdateResponse))
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem (Error GalleyError : r) ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem r (Either GalleyError ConversationUpdateResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either NoChanges ConversationUpdateResponse
 -> ConversationUpdateResponse)
-> Sem
     (Error GalleyError : r)
     (Either NoChanges ConversationUpdateResponse)
-> Sem (Error GalleyError : r) ConversationUpdateResponse
forall a b.
(a -> b)
-> Sem (Error GalleyError : r) a -> Sem (Error GalleyError : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (ConversationUpdateResponse
-> Either NoChanges ConversationUpdateResponse
-> ConversationUpdateResponse
forall b a. b -> Either a b -> b
fromRight ConversationUpdateResponse
ConversationUpdateResponseNoChanges)
        (Sem
   (Error GalleyError : r)
   (Either NoChanges ConversationUpdateResponse)
 -> Sem (Error GalleyError : r) ConversationUpdateResponse)
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error GalleyError : r)
         (Either NoChanges ConversationUpdateResponse))
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem (Error GalleyError : r) ConversationUpdateResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @NoChanges
        (Sem
   (Error NoChanges : Error GalleyError : r)
   ConversationUpdateResponse
 -> Sem
      (Error GalleyError : r)
      (Either NoChanges ConversationUpdateResponse))
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error NoChanges : Error GalleyError : r)
         ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error GalleyError : r)
     (Either NoChanges ConversationUpdateResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either NonFederatingBackends ConversationUpdateResponse
 -> ConversationUpdateResponse)
-> Sem
     (Error NoChanges : Error GalleyError : r)
     (Either NonFederatingBackends ConversationUpdateResponse)
-> Sem
     (Error NoChanges : Error GalleyError : r)
     ConversationUpdateResponse
forall a b.
(a -> b)
-> Sem (Error NoChanges : Error GalleyError : r) a
-> Sem (Error NoChanges : Error GalleyError : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((NonFederatingBackends -> ConversationUpdateResponse)
-> (ConversationUpdateResponse -> ConversationUpdateResponse)
-> Either NonFederatingBackends ConversationUpdateResponse
-> ConversationUpdateResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either NonFederatingBackends -> ConversationUpdateResponse
ConversationUpdateResponseNonFederatingBackends ConversationUpdateResponse -> ConversationUpdateResponse
forall a. a -> a
Imports.id)
        (Sem
   (Error NoChanges : Error GalleyError : r)
   (Either NonFederatingBackends ConversationUpdateResponse)
 -> Sem
      (Error NoChanges : Error GalleyError : r)
      ConversationUpdateResponse)
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error NoChanges : Error GalleyError : r)
         (Either NonFederatingBackends ConversationUpdateResponse))
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error NoChanges : Error GalleyError : r)
     ConversationUpdateResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @NonFederatingBackends
        (Sem
   (Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   ConversationUpdateResponse
 -> Sem
      (Error NoChanges : Error GalleyError : r)
      (Either NonFederatingBackends ConversationUpdateResponse))
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error NoChanges : Error GalleyError : r)
     (Either NonFederatingBackends ConversationUpdateResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either UnreachableBackends ConversationUpdateResponse
 -> ConversationUpdateResponse)
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     (Either UnreachableBackends ConversationUpdateResponse)
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdateResponse
forall a b.
(a -> b)
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     a
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((UnreachableBackends -> ConversationUpdateResponse)
-> (ConversationUpdateResponse -> ConversationUpdateResponse)
-> Either UnreachableBackends ConversationUpdateResponse
-> ConversationUpdateResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either UnreachableBackends -> ConversationUpdateResponse
ConversationUpdateResponseUnreachableBackends ConversationUpdateResponse -> ConversationUpdateResponse
forall a. a -> a
Imports.id)
        (Sem
   (Error NonFederatingBackends
      : Error NoChanges : Error GalleyError : r)
   (Either UnreachableBackends ConversationUpdateResponse)
 -> Sem
      (Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      ConversationUpdateResponse)
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error NonFederatingBackends
            : Error NoChanges : Error GalleyError : r)
         (Either UnreachableBackends ConversationUpdateResponse))
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     ConversationUpdateResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @UnreachableBackends
        (Sem
   (Error UnreachableBackends
      : Error NonFederatingBackends : Error NoChanges : Error GalleyError
      : r)
   ConversationUpdateResponse
 -> Sem
      (Error NonFederatingBackends
         : Error NoChanges : Error GalleyError : r)
      (Either UnreachableBackends ConversationUpdateResponse))
-> (Sem
      (Error UnreachableBackends
         : Error NonFederatingBackends : Error NoChanges : Error GalleyError
         : r)
      ConversationUpdate
    -> Sem
         (Error UnreachableBackends
            : Error NonFederatingBackends : Error NoChanges : Error GalleyError
            : r)
         ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error NonFederatingBackends
        : Error NoChanges : Error GalleyError : r)
     (Either UnreachableBackends ConversationUpdateResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ConversationUpdate -> ConversationUpdateResponse)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdate
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     ConversationUpdateResponse
forall a b.
(a -> b)
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     a
-> Sem
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error NoChanges : Error GalleyError
        : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ConversationUpdate -> ConversationUpdateResponse
ConversationUpdateResponseUpdate

handleMLSMessageErrors ::
  ( r1
      ~ Append
          MLSBundleStaticErrors
          ( Error UnreachableBackends
              ': Error NonFederatingBackends
              ': Error MLSProposalFailure
              ': Error GalleyError
              ': Error MLSProtocolError
              ': r
          )
  ) =>
  Sem r1 MLSMessageResponse ->
  Sem r MLSMessageResponse
handleMLSMessageErrors :: forall (r1 :: EffectRow) (r :: EffectRow).
(r1
 ~ Append
     MLSBundleStaticErrors
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)) =>
Sem r1 MLSMessageResponse -> Sem r MLSMessageResponse
handleMLSMessageErrors =
  (Either MLSProtocolError MLSMessageResponse -> MLSMessageResponse)
-> Sem r (Either MLSProtocolError MLSMessageResponse)
-> Sem r MLSMessageResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((MLSProtocolError -> MLSMessageResponse)
-> (MLSMessageResponse -> MLSMessageResponse)
-> Either MLSProtocolError MLSMessageResponse
-> MLSMessageResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Text -> MLSMessageResponse
MLSMessageResponseProtocolError (Text -> MLSMessageResponse)
-> (MLSProtocolError -> Text)
-> MLSProtocolError
-> MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MLSProtocolError -> Text
forall {k} (s :: k) b. Tagged s b -> b
unTagged) MLSMessageResponse -> MLSMessageResponse
forall a. a -> a
Imports.id)
    (Sem r (Either MLSProtocolError MLSMessageResponse)
 -> Sem r MLSMessageResponse)
-> (Sem r1 MLSMessageResponse
    -> Sem r (Either MLSProtocolError MLSMessageResponse))
-> Sem r1 MLSMessageResponse
-> Sem r MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @MLSProtocolError
    (Sem (Error MLSProtocolError : r) MLSMessageResponse
 -> Sem r (Either MLSProtocolError MLSMessageResponse))
-> (Sem r1 MLSMessageResponse
    -> Sem (Error MLSProtocolError : r) MLSMessageResponse)
-> Sem r1 MLSMessageResponse
-> Sem r (Either MLSProtocolError MLSMessageResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either GalleyError MLSMessageResponse -> MLSMessageResponse)
-> Sem
     (Error MLSProtocolError : r)
     (Either GalleyError MLSMessageResponse)
-> Sem (Error MLSProtocolError : r) MLSMessageResponse
forall a b.
(a -> b)
-> Sem (Error MLSProtocolError : r) a
-> Sem (Error MLSProtocolError : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((GalleyError -> MLSMessageResponse)
-> (MLSMessageResponse -> MLSMessageResponse)
-> Either GalleyError MLSMessageResponse
-> MLSMessageResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> MLSMessageResponse
MLSMessageResponseError MLSMessageResponse -> MLSMessageResponse
forall a. a -> a
Imports.id)
    (Sem
   (Error MLSProtocolError : r)
   (Either GalleyError MLSMessageResponse)
 -> Sem (Error MLSProtocolError : r) MLSMessageResponse)
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error MLSProtocolError : r)
         (Either GalleyError MLSMessageResponse))
-> Sem r1 MLSMessageResponse
-> Sem (Error MLSProtocolError : r) MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sem
  (Error GalleyError : Error MLSProtocolError : r) MLSMessageResponse
-> Sem
     (Error MLSProtocolError : r)
     (Either GalleyError MLSMessageResponse)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError
    (Sem
   (Error GalleyError : Error MLSProtocolError : r) MLSMessageResponse
 -> Sem
      (Error MLSProtocolError : r)
      (Either GalleyError MLSMessageResponse))
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error GalleyError : Error MLSProtocolError : r)
         MLSMessageResponse)
-> Sem r1 MLSMessageResponse
-> Sem
     (Error MLSProtocolError : r)
     (Either GalleyError MLSMessageResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either MLSProposalFailure MLSMessageResponse
 -> MLSMessageResponse)
-> Sem
     (Error GalleyError : Error MLSProtocolError : r)
     (Either MLSProposalFailure MLSMessageResponse)
-> Sem
     (Error GalleyError : Error MLSProtocolError : r) MLSMessageResponse
forall a b.
(a -> b)
-> Sem (Error GalleyError : Error MLSProtocolError : r) a
-> Sem (Error GalleyError : Error MLSProtocolError : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((MLSProposalFailure -> MLSMessageResponse)
-> (MLSMessageResponse -> MLSMessageResponse)
-> Either MLSProposalFailure MLSMessageResponse
-> MLSMessageResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (JSONResponse -> MLSMessageResponse
MLSMessageResponseProposalFailure (JSONResponse -> MLSMessageResponse)
-> (MLSProposalFailure -> JSONResponse)
-> MLSProposalFailure
-> MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MLSProposalFailure -> JSONResponse
pfInner) MLSMessageResponse -> MLSMessageResponse
forall a. a -> a
Imports.id)
    (Sem
   (Error GalleyError : Error MLSProtocolError : r)
   (Either MLSProposalFailure MLSMessageResponse)
 -> Sem
      (Error GalleyError : Error MLSProtocolError : r)
      MLSMessageResponse)
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error GalleyError : Error MLSProtocolError : r)
         (Either MLSProposalFailure MLSMessageResponse))
-> Sem r1 MLSMessageResponse
-> Sem
     (Error GalleyError : Error MLSProtocolError : r) MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sem
  (Error MLSProposalFailure
     : Error GalleyError : Error MLSProtocolError : r)
  MLSMessageResponse
-> Sem
     (Error GalleyError : Error MLSProtocolError : r)
     (Either MLSProposalFailure MLSMessageResponse)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError
    (Sem
   (Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   MLSMessageResponse
 -> Sem
      (Error GalleyError : Error MLSProtocolError : r)
      (Either MLSProposalFailure MLSMessageResponse))
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error MLSProposalFailure
            : Error GalleyError : Error MLSProtocolError : r)
         MLSMessageResponse)
-> Sem r1 MLSMessageResponse
-> Sem
     (Error GalleyError : Error MLSProtocolError : r)
     (Either MLSProposalFailure MLSMessageResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either NonFederatingBackends MLSMessageResponse
 -> MLSMessageResponse)
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (Either NonFederatingBackends MLSMessageResponse)
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
forall a b.
(a -> b)
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     a
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((NonFederatingBackends -> MLSMessageResponse)
-> (MLSMessageResponse -> MLSMessageResponse)
-> Either NonFederatingBackends MLSMessageResponse
-> MLSMessageResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either NonFederatingBackends -> MLSMessageResponse
MLSMessageResponseNonFederatingBackends MLSMessageResponse -> MLSMessageResponse
forall a. a -> a
Imports.id)
    (Sem
   (Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   (Either NonFederatingBackends MLSMessageResponse)
 -> Sem
      (Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      MLSMessageResponse)
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error MLSProposalFailure
            : Error GalleyError : Error MLSProtocolError : r)
         (Either NonFederatingBackends MLSMessageResponse))
-> Sem r1 MLSMessageResponse
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Sem
  (Error NonFederatingBackends
     : Error MLSProposalFailure : Error GalleyError
     : Error MLSProtocolError : r)
  MLSMessageResponse
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (Either NonFederatingBackends MLSMessageResponse)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError
    (Sem
   (Error NonFederatingBackends
      : Error MLSProposalFailure : Error GalleyError
      : Error MLSProtocolError : r)
   MLSMessageResponse
 -> Sem
      (Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (Either NonFederatingBackends MLSMessageResponse))
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error NonFederatingBackends
            : Error MLSProposalFailure : Error GalleyError
            : Error MLSProtocolError : r)
         MLSMessageResponse)
-> Sem r1 MLSMessageResponse
-> Sem
     (Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (Either NonFederatingBackends MLSMessageResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either UnreachableBackends MLSMessageResponse
 -> MLSMessageResponse)
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     (Either UnreachableBackends MLSMessageResponse)
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     MLSMessageResponse
forall a b.
(a -> b)
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     a
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((UnreachableBackends -> MLSMessageResponse)
-> (MLSMessageResponse -> MLSMessageResponse)
-> Either UnreachableBackends MLSMessageResponse
-> MLSMessageResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Set Domain -> MLSMessageResponse
MLSMessageResponseUnreachableBackends (Set Domain -> MLSMessageResponse)
-> (UnreachableBackends -> Set Domain)
-> UnreachableBackends
-> MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Domain] -> Set Domain
forall a. Ord a => [a] -> Set a
Set.fromList ([Domain] -> Set Domain)
-> (UnreachableBackends -> [Domain])
-> UnreachableBackends
-> Set Domain
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (.backends)) MLSMessageResponse -> MLSMessageResponse
forall a. a -> a
Imports.id)
    (Sem
   (Error NonFederatingBackends
      : Error MLSProposalFailure : Error GalleyError
      : Error MLSProtocolError : r)
   (Either UnreachableBackends MLSMessageResponse)
 -> Sem
      (Error NonFederatingBackends
         : Error MLSProposalFailure : Error GalleyError
         : Error MLSProtocolError : r)
      MLSMessageResponse)
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error NonFederatingBackends
            : Error MLSProposalFailure : Error GalleyError
            : Error MLSProtocolError : r)
         (Either UnreachableBackends MLSMessageResponse))
-> Sem r1 MLSMessageResponse
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @UnreachableBackends
    (Sem
   (Error UnreachableBackends
      : Error NonFederatingBackends : Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   MLSMessageResponse
 -> Sem
      (Error NonFederatingBackends
         : Error MLSProposalFailure : Error GalleyError
         : Error MLSProtocolError : r)
      (Either UnreachableBackends MLSMessageResponse))
-> (Sem r1 MLSMessageResponse
    -> Sem
         (Error UnreachableBackends
            : Error NonFederatingBackends : Error MLSProposalFailure
            : Error GalleyError : Error MLSProtocolError : r)
         MLSMessageResponse)
-> Sem r1 MLSMessageResponse
-> Sem
     (Error NonFederatingBackends
        : Error MLSProposalFailure : Error GalleyError
        : Error MLSProtocolError : r)
     (Either UnreachableBackends MLSMessageResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @MLSBundleStaticErrors

sendMLSCommitBundle ::
  ( Member BackendNotificationQueueAccess r,
    Member BrigAccess r,
    Member ConversationStore r,
    Member ExternalAccess r,
    Member (Error FederationError) r,
    Member (Error InternalError) r,
    Member FederatorAccess r,
    Member NotificationSubsystem r,
    Member (Input (Local ())) r,
    Member (Input Env) r,
    Member (Input Opts) r,
    Member (Input UTCTime) r,
    Member LegalHoldStore r,
    Member MemberStore r,
    Member Resource r,
    Member TeamStore r,
    Member P.TinyLog r,
    Member Random r,
    Member SubConversationStore r,
    Member ProposalStore r
  ) =>
  Domain ->
  MLSMessageSendRequest ->
  Sem r MLSMessageResponse
sendMLSCommitBundle :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member (Error InternalError) r,
 Member FederatorAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member LegalHoldStore r, Member MemberStore r, Member Resource r,
 Member TeamStore r, Member (Logger (Msg -> Msg)) r,
 Member Random r, Member SubConversationStore r,
 Member ProposalStore r) =>
Domain -> MLSMessageSendRequest -> Sem r MLSMessageResponse
sendMLSCommitBundle Domain
remoteDomain MLSMessageSendRequest
msr = Sem
  (Error (Tagged 'ConvAccessDenied ())
     : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
     : Error (Tagged 'MLSNotEnabled ())
     : Error (Tagged 'MLSUnsupportedMessage ())
     : Error (Tagged 'MLSStaleMessage ())
     : Error (Tagged 'MLSProposalNotFound ())
     : Error (Tagged 'MissingLegalholdConsent ())
     : Error (Tagged 'MLSInvalidLeafNodeIndex ())
     : Error (Tagged 'MLSClientMismatch ())
     : Error (Tagged 'MLSUnsupportedProposal ())
     : Error (Tagged 'MLSCommitMissingReferences ())
     : Error (Tagged 'MLSSelfRemovalNotAllowed ())
     : Error (Tagged 'MLSClientSenderUserMismatch ())
     : Error (Tagged 'MLSGroupConversationMismatch ())
     : Error (Tagged 'MLSSubConvClientNotInParent ())
     : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
     : Error NonFederatingBackends : Error MLSProposalFailure
     : Error GalleyError : Error MLSProtocolError : r)
  MLSMessageResponse
-> Sem r MLSMessageResponse
forall (r1 :: EffectRow) (r :: EffectRow).
(r1
 ~ Append
     MLSBundleStaticErrors
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)) =>
Sem r1 MLSMessageResponse -> Sem r MLSMessageResponse
handleMLSMessageErrors (Sem
   (Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
      : Error (Tagged 'MLSNotEnabled ())
      : Error (Tagged 'MLSUnsupportedMessage ())
      : Error (Tagged 'MLSStaleMessage ())
      : Error (Tagged 'MLSProposalNotFound ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error (Tagged 'MLSInvalidLeafNodeIndex ())
      : Error (Tagged 'MLSClientMismatch ())
      : Error (Tagged 'MLSUnsupportedProposal ())
      : Error (Tagged 'MLSCommitMissingReferences ())
      : Error (Tagged 'MLSSelfRemovalNotAllowed ())
      : Error (Tagged 'MLSClientSenderUserMismatch ())
      : Error (Tagged 'MLSGroupConversationMismatch ())
      : Error (Tagged 'MLSSubConvClientNotInParent ())
      : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   MLSMessageResponse
 -> Sem r MLSMessageResponse)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
-> Sem r MLSMessageResponse
forall a b. (a -> b) -> a -> b
$ do
  Sem
  (Error (Tagged 'ConvAccessDenied ())
     : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
     : Error (Tagged 'MLSNotEnabled ())
     : Error (Tagged 'MLSUnsupportedMessage ())
     : Error (Tagged 'MLSStaleMessage ())
     : Error (Tagged 'MLSProposalNotFound ())
     : Error (Tagged 'MissingLegalholdConsent ())
     : Error (Tagged 'MLSInvalidLeafNodeIndex ())
     : Error (Tagged 'MLSClientMismatch ())
     : Error (Tagged 'MLSUnsupportedProposal ())
     : Error (Tagged 'MLSCommitMissingReferences ())
     : Error (Tagged 'MLSSelfRemovalNotAllowed ())
     : Error (Tagged 'MLSClientSenderUserMismatch ())
     : Error (Tagged 'MLSGroupConversationMismatch ())
     : Error (Tagged 'MLSSubConvClientNotInParent ())
     : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
     : Error NonFederatingBackends : Error MLSProposalFailure
     : Error GalleyError : Error MLSProtocolError : r)
  ()
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r ()
assertMLSEnabled
  Local ()
loc <- ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  let sender :: Remote UserId
sender = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
remoteDomain MLSMessageSendRequest
msr.sender
  RawMLS CommitBundle
bundle <-
    (Text
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS CommitBundle))
-> (RawMLS CommitBundle
    -> Sem
         (Error (Tagged 'ConvAccessDenied ())
            : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
            : Error (Tagged 'MLSNotEnabled ())
            : Error (Tagged 'MLSUnsupportedMessage ())
            : Error (Tagged 'MLSStaleMessage ())
            : Error (Tagged 'MLSProposalNotFound ())
            : Error (Tagged 'MissingLegalholdConsent ())
            : Error (Tagged 'MLSInvalidLeafNodeIndex ())
            : Error (Tagged 'MLSClientMismatch ())
            : Error (Tagged 'MLSUnsupportedProposal ())
            : Error (Tagged 'MLSCommitMissingReferences ())
            : Error (Tagged 'MLSSelfRemovalNotAllowed ())
            : Error (Tagged 'MLSClientSenderUserMismatch ())
            : Error (Tagged 'MLSGroupConversationMismatch ())
            : Error (Tagged 'MLSSubConvClientNotInParent ())
            : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
            : Error NonFederatingBackends : Error MLSProposalFailure
            : Error GalleyError : Error MLSProtocolError : r)
         (RawMLS CommitBundle))
-> Either Text (RawMLS CommitBundle)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS CommitBundle)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (MLSProtocolError
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS CommitBundle)
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (MLSProtocolError
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS CommitBundle))
-> (Text -> MLSProtocolError)
-> Text
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS CommitBundle)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> MLSProtocolError
mlsProtocolError) RawMLS CommitBundle
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS CommitBundle)
forall a.
a
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either Text (RawMLS CommitBundle)
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS CommitBundle))
-> Either Text (RawMLS CommitBundle)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS CommitBundle)
forall a b. (a -> b) -> a -> b
$
      ByteString -> Either Text (RawMLS CommitBundle)
forall a. ParseMLS a => ByteString -> Either Text a
decodeMLS' (Base64ByteString -> ByteString
fromBase64ByteString MLSMessageSendRequest
msr.rawMessage)

  IncomingBundle
ibundle <- forall {k} (e :: k) (r :: EffectRow) a.
Member (ErrorS e) r =>
Maybe a -> Sem r a
forall (e :: GalleyError) (r :: EffectRow) a.
Member (ErrorS e) r =>
Maybe a -> Sem r a
noteS @'MLSUnsupportedMessage (Maybe IncomingBundle
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      IncomingBundle)
-> Maybe IncomingBundle
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     IncomingBundle
forall a b. (a -> b) -> a -> b
$ RawMLS CommitBundle -> Maybe IncomingBundle
mkIncomingBundle RawMLS CommitBundle
bundle
  (ConvType
ctype, Qualified ConvOrSubConvId
qConvOrSub) <- GroupId
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (ConvType, Qualified ConvOrSubConvId)
forall (r :: EffectRow).
Member (Error MLSProtocolError) r =>
GroupId -> Sem r (ConvType, Qualified ConvOrSubConvId)
getConvFromGroupId IncomingBundle
ibundle.groupId
  Bool
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Qualified ConvOrSubConvId -> ConvOrSubConvId
forall a. Qualified a -> a
qUnqualified Qualified ConvOrSubConvId
qConvOrSub ConvOrSubConvId -> ConvOrSubConvId -> Bool
forall a. Eq a => a -> a -> Bool
/= MLSMessageSendRequest
msr.convOrSubId) (Sem
   (Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
      : Error (Tagged 'MLSNotEnabled ())
      : Error (Tagged 'MLSUnsupportedMessage ())
      : Error (Tagged 'MLSStaleMessage ())
      : Error (Tagged 'MLSProposalNotFound ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error (Tagged 'MLSInvalidLeafNodeIndex ())
      : Error (Tagged 'MLSClientMismatch ())
      : Error (Tagged 'MLSUnsupportedProposal ())
      : Error (Tagged 'MLSCommitMissingReferences ())
      : Error (Tagged 'MLSSelfRemovalNotAllowed ())
      : Error (Tagged 'MLSClientSenderUserMismatch ())
      : Error (Tagged 'MLSGroupConversationMismatch ())
      : Error (Tagged 'MLSSubConvClientNotInParent ())
      : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   ()
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      ())
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
forall a b. (a -> b) -> a -> b
$ forall {k} (e :: k) (r :: EffectRow) a.
Member (ErrorS e) r =>
Sem r a
forall (e :: GalleyError) (r :: EffectRow) a.
Member (ErrorS e) r =>
Sem r a
throwS @'MLSGroupConversationMismatch
  -- this cannot throw the error since we always pass the sender which is qualified to be remote
  [ConversationUpdate] -> MLSMessageResponse
MLSMessageResponseUpdates
    ([ConversationUpdate] -> MLSMessageResponse)
-> ([LocalConversationUpdate] -> [ConversationUpdate])
-> [LocalConversationUpdate]
-> MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> [LocalConversationUpdate] -> [ConversationUpdate]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap LocalConversationUpdate -> ConversationUpdate
lcuUpdate
    ([LocalConversationUpdate] -> MLSMessageResponse)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     [LocalConversationUpdate]
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall {k} (e :: k) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
forall (e :: GalleyError) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
mapToRuntimeError @MLSLegalholdIncompatible
      (LText -> InternalError
InternalErrorWithDescription LText
"expected group conversation while handling policy conflicts")
      ( Local ()
-> Qualified UserId
-> ClientId
-> ConvType
-> Qualified ConvOrSubConvId
-> Maybe ConnId
-> IncomingBundle
-> Sem
     (ErrorS 'MLSLegalholdIncompatible
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     [LocalConversationUpdate]
forall (r :: EffectRow) x.
(Member (ErrorS 'MLSLegalholdIncompatible) r, Member Random r,
 Member Resource r, Member SubConversationStore r,
 Members MLSBundleStaticErrors r, HasProposalEffects r) =>
Local x
-> Qualified UserId
-> ClientId
-> ConvType
-> Qualified ConvOrSubConvId
-> Maybe ConnId
-> IncomingBundle
-> Sem r [LocalConversationUpdate]
postMLSCommitBundle
          Local ()
loc
          -- Type application to prevent future changes from introducing errors.
          -- It is only safe to assume that we can discard the error when the sender
          -- is actually remote.
          -- Since `tUntagged` works on local and remote, a future changed may
          -- go unchecked without this.
          (forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged @QRemote Remote UserId
sender)
          MLSMessageSendRequest
msr.senderClient
          ConvType
ctype
          Qualified ConvOrSubConvId
qConvOrSub
          Maybe ConnId
forall a. Maybe a
Nothing
          IncomingBundle
ibundle
      )

sendMLSMessage ::
  ( Member BackendNotificationQueueAccess r,
    Member BrigAccess r,
    Member ConversationStore r,
    Member ExternalAccess r,
    Member (Error FederationError) r,
    Member (Error InternalError) r,
    Member FederatorAccess r,
    Member NotificationSubsystem r,
    Member (Input (Local ())) r,
    Member (Input Env) r,
    Member (Input Opts) r,
    Member (Input UTCTime) r,
    Member LegalHoldStore r,
    Member MemberStore r,
    Member TeamStore r,
    Member P.TinyLog r,
    Member ProposalStore r,
    Member SubConversationStore r
  ) =>
  Domain ->
  MLSMessageSendRequest ->
  Sem r MLSMessageResponse
sendMLSMessage :: forall (r :: EffectRow).
(Member BackendNotificationQueueAccess r, Member BrigAccess r,
 Member ConversationStore r, Member ExternalAccess r,
 Member (Error FederationError) r, Member (Error InternalError) r,
 Member FederatorAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member (Input Opts) r, Member (Input UTCTime) r,
 Member LegalHoldStore r, Member MemberStore r, Member TeamStore r,
 Member (Logger (Msg -> Msg)) r, Member ProposalStore r,
 Member SubConversationStore r) =>
Domain -> MLSMessageSendRequest -> Sem r MLSMessageResponse
sendMLSMessage Domain
remoteDomain MLSMessageSendRequest
msr = Sem
  (Error (Tagged 'ConvAccessDenied ())
     : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
     : Error (Tagged 'MLSNotEnabled ())
     : Error (Tagged 'MLSUnsupportedMessage ())
     : Error (Tagged 'MLSStaleMessage ())
     : Error (Tagged 'MLSProposalNotFound ())
     : Error (Tagged 'MissingLegalholdConsent ())
     : Error (Tagged 'MLSInvalidLeafNodeIndex ())
     : Error (Tagged 'MLSClientMismatch ())
     : Error (Tagged 'MLSUnsupportedProposal ())
     : Error (Tagged 'MLSCommitMissingReferences ())
     : Error (Tagged 'MLSSelfRemovalNotAllowed ())
     : Error (Tagged 'MLSClientSenderUserMismatch ())
     : Error (Tagged 'MLSGroupConversationMismatch ())
     : Error (Tagged 'MLSSubConvClientNotInParent ())
     : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
     : Error NonFederatingBackends : Error MLSProposalFailure
     : Error GalleyError : Error MLSProtocolError : r)
  MLSMessageResponse
-> Sem r MLSMessageResponse
forall (r1 :: EffectRow) (r :: EffectRow).
(r1
 ~ Append
     MLSBundleStaticErrors
     (Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)) =>
Sem r1 MLSMessageResponse -> Sem r MLSMessageResponse
handleMLSMessageErrors (Sem
   (Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
      : Error (Tagged 'MLSNotEnabled ())
      : Error (Tagged 'MLSUnsupportedMessage ())
      : Error (Tagged 'MLSStaleMessage ())
      : Error (Tagged 'MLSProposalNotFound ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error (Tagged 'MLSInvalidLeafNodeIndex ())
      : Error (Tagged 'MLSClientMismatch ())
      : Error (Tagged 'MLSUnsupportedProposal ())
      : Error (Tagged 'MLSCommitMissingReferences ())
      : Error (Tagged 'MLSSelfRemovalNotAllowed ())
      : Error (Tagged 'MLSClientSenderUserMismatch ())
      : Error (Tagged 'MLSGroupConversationMismatch ())
      : Error (Tagged 'MLSSubConvClientNotInParent ())
      : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   MLSMessageResponse
 -> Sem r MLSMessageResponse)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
-> Sem r MLSMessageResponse
forall a b. (a -> b) -> a -> b
$ do
  Sem
  (Error (Tagged 'ConvAccessDenied ())
     : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
     : Error (Tagged 'MLSNotEnabled ())
     : Error (Tagged 'MLSUnsupportedMessage ())
     : Error (Tagged 'MLSStaleMessage ())
     : Error (Tagged 'MLSProposalNotFound ())
     : Error (Tagged 'MissingLegalholdConsent ())
     : Error (Tagged 'MLSInvalidLeafNodeIndex ())
     : Error (Tagged 'MLSClientMismatch ())
     : Error (Tagged 'MLSUnsupportedProposal ())
     : Error (Tagged 'MLSCommitMissingReferences ())
     : Error (Tagged 'MLSSelfRemovalNotAllowed ())
     : Error (Tagged 'MLSClientSenderUserMismatch ())
     : Error (Tagged 'MLSGroupConversationMismatch ())
     : Error (Tagged 'MLSSubConvClientNotInParent ())
     : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
     : Error NonFederatingBackends : Error MLSProposalFailure
     : Error GalleyError : Error MLSProtocolError : r)
  ()
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r ()
assertMLSEnabled
  Local ()
loc <- ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
  let sender :: Remote UserId
sender = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
remoteDomain MLSMessageSendRequest
msr.sender
  RawMLS Message
raw <- (Text
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS Message))
-> (RawMLS Message
    -> Sem
         (Error (Tagged 'ConvAccessDenied ())
            : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
            : Error (Tagged 'MLSNotEnabled ())
            : Error (Tagged 'MLSUnsupportedMessage ())
            : Error (Tagged 'MLSStaleMessage ())
            : Error (Tagged 'MLSProposalNotFound ())
            : Error (Tagged 'MissingLegalholdConsent ())
            : Error (Tagged 'MLSInvalidLeafNodeIndex ())
            : Error (Tagged 'MLSClientMismatch ())
            : Error (Tagged 'MLSUnsupportedProposal ())
            : Error (Tagged 'MLSCommitMissingReferences ())
            : Error (Tagged 'MLSSelfRemovalNotAllowed ())
            : Error (Tagged 'MLSClientSenderUserMismatch ())
            : Error (Tagged 'MLSGroupConversationMismatch ())
            : Error (Tagged 'MLSSubConvClientNotInParent ())
            : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
            : Error NonFederatingBackends : Error MLSProposalFailure
            : Error GalleyError : Error MLSProtocolError : r)
         (RawMLS Message))
-> Either Text (RawMLS Message)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS Message)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (MLSProtocolError
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS Message)
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (MLSProtocolError
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS Message))
-> (Text -> MLSProtocolError)
-> Text
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS Message)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> MLSProtocolError
mlsProtocolError) RawMLS Message
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS Message)
forall a.
a
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either Text (RawMLS Message)
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      (RawMLS Message))
-> Either Text (RawMLS Message)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (RawMLS Message)
forall a b. (a -> b) -> a -> b
$ ByteString -> Either Text (RawMLS Message)
forall a. ParseMLS a => ByteString -> Either Text a
decodeMLS' (Base64ByteString -> ByteString
fromBase64ByteString MLSMessageSendRequest
msr.rawMessage)
  IncomingMessage
msg <- forall {k} (e :: k) (r :: EffectRow) a.
Member (ErrorS e) r =>
Maybe a -> Sem r a
forall (e :: GalleyError) (r :: EffectRow) a.
Member (ErrorS e) r =>
Maybe a -> Sem r a
noteS @'MLSUnsupportedMessage (Maybe IncomingMessage
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      IncomingMessage)
-> Maybe IncomingMessage
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     IncomingMessage
forall a b. (a -> b) -> a -> b
$ RawMLS Message -> Maybe IncomingMessage
mkIncomingMessage RawMLS Message
raw
  (ConvType
ctype, Qualified ConvOrSubConvId
qConvOrSub) <- GroupId
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     (ConvType, Qualified ConvOrSubConvId)
forall (r :: EffectRow).
Member (Error MLSProtocolError) r =>
GroupId -> Sem r (ConvType, Qualified ConvOrSubConvId)
getConvFromGroupId IncomingMessage
msg.groupId
  Bool
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
when (Qualified ConvOrSubConvId -> ConvOrSubConvId
forall a. Qualified a -> a
qUnqualified Qualified ConvOrSubConvId
qConvOrSub ConvOrSubConvId -> ConvOrSubConvId -> Bool
forall a. Eq a => a -> a -> Bool
/= MLSMessageSendRequest
msr.convOrSubId) (Sem
   (Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
      : Error (Tagged 'MLSNotEnabled ())
      : Error (Tagged 'MLSUnsupportedMessage ())
      : Error (Tagged 'MLSStaleMessage ())
      : Error (Tagged 'MLSProposalNotFound ())
      : Error (Tagged 'MissingLegalholdConsent ())
      : Error (Tagged 'MLSInvalidLeafNodeIndex ())
      : Error (Tagged 'MLSClientMismatch ())
      : Error (Tagged 'MLSUnsupportedProposal ())
      : Error (Tagged 'MLSCommitMissingReferences ())
      : Error (Tagged 'MLSSelfRemovalNotAllowed ())
      : Error (Tagged 'MLSClientSenderUserMismatch ())
      : Error (Tagged 'MLSGroupConversationMismatch ())
      : Error (Tagged 'MLSSubConvClientNotInParent ())
      : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
      : Error NonFederatingBackends : Error MLSProposalFailure
      : Error GalleyError : Error MLSProtocolError : r)
   ()
 -> Sem
      (Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
         : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSUnsupportedMessage ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSProposalNotFound ())
         : Error (Tagged 'MissingLegalholdConsent ())
         : Error (Tagged 'MLSInvalidLeafNodeIndex ())
         : Error (Tagged 'MLSClientMismatch ())
         : Error (Tagged 'MLSUnsupportedProposal ())
         : Error (Tagged 'MLSCommitMissingReferences ())
         : Error (Tagged 'MLSSelfRemovalNotAllowed ())
         : Error (Tagged 'MLSClientSenderUserMismatch ())
         : Error (Tagged 'MLSGroupConversationMismatch ())
         : Error (Tagged 'MLSSubConvClientNotInParent ())
         : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
         : Error NonFederatingBackends : Error MLSProposalFailure
         : Error GalleyError : Error MLSProtocolError : r)
      ())
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     ()
forall a b. (a -> b) -> a -> b
$ forall {k} (e :: k) (r :: EffectRow) a.
Member (ErrorS e) r =>
Sem r a
forall (e :: GalleyError) (r :: EffectRow) a.
Member (ErrorS e) r =>
Sem r a
throwS @'MLSGroupConversationMismatch
  [ConversationUpdate] -> MLSMessageResponse
MLSMessageResponseUpdates ([ConversationUpdate] -> MLSMessageResponse)
-> ([LocalConversationUpdate] -> [ConversationUpdate])
-> [LocalConversationUpdate]
-> MLSMessageResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (LocalConversationUpdate -> ConversationUpdate)
-> [LocalConversationUpdate] -> [ConversationUpdate]
forall a b. (a -> b) -> [a] -> [b]
map LocalConversationUpdate -> ConversationUpdate
lcuUpdate
    ([LocalConversationUpdate] -> MLSMessageResponse)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     [LocalConversationUpdate]
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     MLSMessageResponse
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Local ()
-> Qualified UserId
-> ClientId
-> ConvType
-> Qualified ConvOrSubConvId
-> Maybe ConnId
-> IncomingMessage
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'ConvMemberNotFound ()) : ErrorS 'ConvNotFound
        : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSUnsupportedMessage ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSProposalNotFound ())
        : Error (Tagged 'MissingLegalholdConsent ())
        : Error (Tagged 'MLSInvalidLeafNodeIndex ())
        : Error (Tagged 'MLSClientMismatch ())
        : Error (Tagged 'MLSUnsupportedProposal ())
        : Error (Tagged 'MLSCommitMissingReferences ())
        : Error (Tagged 'MLSSelfRemovalNotAllowed ())
        : Error (Tagged 'MLSClientSenderUserMismatch ())
        : Error (Tagged 'MLSGroupConversationMismatch ())
        : Error (Tagged 'MLSSubConvClientNotInParent ())
        : Error (Tagged 'MLSWelcomeMismatch ()) : Error UnreachableBackends
        : Error NonFederatingBackends : Error MLSProposalFailure
        : Error GalleyError : Error MLSProtocolError : r)
     [LocalConversationUpdate]
forall (r :: EffectRow) x.
(HasProposalEffects r,
 Member (Error (Tagged 'ConvAccessDenied ())) r,
 Member (Error (Tagged 'ConvMemberNotFound ())) r,
 Member (ErrorS 'ConvNotFound) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r,
 Member (Error (Tagged 'MissingLegalholdConsent ())) r,
 Member (Error (Tagged 'MLSClientSenderUserMismatch ())) r,
 Member (Error (Tagged 'MLSCommitMissingReferences ())) r,
 Member (Error (Tagged 'MLSGroupConversationMismatch ())) 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 x
-> Qualified UserId
-> ClientId
-> ConvType
-> Qualified ConvOrSubConvId
-> Maybe ConnId
-> IncomingMessage
-> Sem r [LocalConversationUpdate]
postMLSMessage
      Local ()
loc
      (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
sender)
      MLSMessageSendRequest
msr.senderClient
      ConvType
ctype
      Qualified ConvOrSubConvId
qConvOrSub
      Maybe ConnId
forall a. Maybe a
Nothing
      IncomingMessage
msg

getSubConversationForRemoteUser ::
  ( Members
      '[ SubConversationStore,
         ConversationStore,
         Input (Local ()),
         Error InternalError,
         P.TinyLog
       ]
      r
  ) =>
  Domain ->
  GetSubConversationsRequest ->
  Sem r GetSubConversationsResponse
getSubConversationForRemoteUser :: forall (r :: EffectRow).
Members
  '[SubConversationStore, ConversationStore, Input (Local ()),
    Error InternalError, Logger (Msg -> Msg)]
  r =>
Domain
-> GetSubConversationsRequest -> Sem r GetSubConversationsResponse
getSubConversationForRemoteUser Domain
domain GetSubConversationsRequest {ConvId
UserId
SubConvId
gsreqUser :: UserId
gsreqConv :: ConvId
gsreqSubConv :: SubConvId
$sel:gsreqUser:GetSubConversationsRequest :: GetSubConversationsRequest -> UserId
$sel:gsreqConv:GetSubConversationsRequest :: GetSubConversationsRequest -> ConvId
$sel:gsreqSubConv:GetSubConversationsRequest :: GetSubConversationsRequest -> SubConvId
..} =
  (Either GalleyError PublicSubConversation
 -> GetSubConversationsResponse)
-> Sem r (Either GalleyError PublicSubConversation)
-> Sem r GetSubConversationsResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((GalleyError -> GetSubConversationsResponse)
-> (PublicSubConversation -> GetSubConversationsResponse)
-> Either GalleyError PublicSubConversation
-> GetSubConversationsResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> GetSubConversationsResponse
GetSubConversationsResponseError PublicSubConversation -> GetSubConversationsResponse
GetSubConversationsResponseSuccess)
    (Sem r (Either GalleyError PublicSubConversation)
 -> Sem r GetSubConversationsResponse)
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSSubConvUnsupportedConvType ())
         : Error GalleyError : r)
      PublicSubConversation
    -> Sem r (Either GalleyError PublicSubConversation))
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSSubConvUnsupportedConvType ())
        : Error GalleyError : r)
     PublicSubConversation
-> Sem r GetSubConversationsResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @GalleyError
    (Sem (Error GalleyError : r) PublicSubConversation
 -> Sem r (Either GalleyError PublicSubConversation))
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSSubConvUnsupportedConvType ())
         : Error GalleyError : r)
      PublicSubConversation
    -> Sem (Error GalleyError : r) PublicSubConversation)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSSubConvUnsupportedConvType ())
        : Error GalleyError : r)
     PublicSubConversation
-> Sem r (Either GalleyError PublicSubConversation)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @MLSGetSubConvStaticErrors
    (Sem
   (ErrorS 'ConvNotFound
      : Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'MLSSubConvUnsupportedConvType ())
      : Error GalleyError : r)
   PublicSubConversation
 -> Sem r GetSubConversationsResponse)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSSubConvUnsupportedConvType ())
        : Error GalleyError : r)
     PublicSubConversation
-> Sem r GetSubConversationsResponse
forall a b. (a -> b) -> a -> b
$ do
      let qusr :: Qualified UserId
qusr = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified UserId
gsreqUser Domain
domain
      Local ConvId
lconv <- ConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSSubConvUnsupportedConvType ())
        : Error GalleyError : r)
     (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
gsreqConv
      Qualified UserId
-> Local ConvId
-> SubConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSSubConvUnsupportedConvType ())
        : Error GalleyError : r)
     PublicSubConversation
forall (r :: EffectRow).
Members
  (SubConversationStore
     : ConversationStore : MLSGetSubConvStaticErrors)
  r =>
Qualified UserId
-> Local ConvId -> SubConvId -> Sem r PublicSubConversation
getLocalSubConversation Qualified UserId
qusr Local ConvId
lconv SubConvId
gsreqSubConv

leaveSubConversation ::
  ( HasLeaveSubConversationEffects r,
    Member (Error FederationError) r,
    Member (Input (Local ())) r,
    Member Resource r
  ) =>
  Domain ->
  LeaveSubConversationRequest ->
  Sem r LeaveSubConversationResponse
leaveSubConversation :: forall (r :: EffectRow).
(HasLeaveSubConversationEffects r,
 Member (Error FederationError) r, Member (Input (Local ())) r,
 Member Resource r) =>
Domain
-> LeaveSubConversationRequest
-> Sem r LeaveSubConversationResponse
leaveSubConversation Domain
domain LeaveSubConversationRequest
lscr = do
  let rusr :: Remote UserId
rusr = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain (LeaveSubConversationRequest -> UserId
lscrUser LeaveSubConversationRequest
lscr)
      cid :: ClientIdentity
cid = Qualified UserId -> ClientId -> ClientIdentity
mkClientIdentity (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rusr) (LeaveSubConversationRequest -> ClientId
lscrClient LeaveSubConversationRequest
lscr)
  Local ConvId
lcnv <- ConvId -> Sem r (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal (LeaveSubConversationRequest -> ConvId
lscrConv LeaveSubConversationRequest
lscr)
  (Either MLSProtocolError LeaveSubConversationResponse
 -> LeaveSubConversationResponse)
-> Sem r (Either MLSProtocolError LeaveSubConversationResponse)
-> Sem r LeaveSubConversationResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((MLSProtocolError -> LeaveSubConversationResponse)
-> (LeaveSubConversationResponse -> LeaveSubConversationResponse)
-> Either MLSProtocolError LeaveSubConversationResponse
-> LeaveSubConversationResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Text -> LeaveSubConversationResponse
LeaveSubConversationResponseProtocolError (Text -> LeaveSubConversationResponse)
-> (MLSProtocolError -> Text)
-> MLSProtocolError
-> LeaveSubConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MLSProtocolError -> Text
forall {k} (s :: k) b. Tagged s b -> b
unTagged) LeaveSubConversationResponse -> LeaveSubConversationResponse
forall a. a -> a
Imports.id)
    (Sem r (Either MLSProtocolError LeaveSubConversationResponse)
 -> Sem r LeaveSubConversationResponse)
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
         : Error MLSProtocolError : r)
      LeaveSubConversationResponse
    -> Sem r (Either MLSProtocolError LeaveSubConversationResponse))
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
-> Sem r LeaveSubConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @MLSProtocolError
    (Sem (Error MLSProtocolError : r) LeaveSubConversationResponse
 -> Sem r (Either MLSProtocolError LeaveSubConversationResponse))
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
         : Error MLSProtocolError : r)
      LeaveSubConversationResponse
    -> Sem (Error MLSProtocolError : r) LeaveSubConversationResponse)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
-> Sem r (Either MLSProtocolError LeaveSubConversationResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either GalleyError LeaveSubConversationResponse
 -> LeaveSubConversationResponse)
-> Sem
     (Error MLSProtocolError : r)
     (Either GalleyError LeaveSubConversationResponse)
-> Sem (Error MLSProtocolError : r) LeaveSubConversationResponse
forall a b.
(a -> b)
-> Sem (Error MLSProtocolError : r) a
-> Sem (Error MLSProtocolError : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((GalleyError -> LeaveSubConversationResponse)
-> (LeaveSubConversationResponse -> LeaveSubConversationResponse)
-> Either GalleyError LeaveSubConversationResponse
-> LeaveSubConversationResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> LeaveSubConversationResponse
LeaveSubConversationResponseError LeaveSubConversationResponse -> LeaveSubConversationResponse
forall a. a -> a
Imports.id)
    (Sem
   (Error MLSProtocolError : r)
   (Either GalleyError LeaveSubConversationResponse)
 -> Sem (Error MLSProtocolError : r) LeaveSubConversationResponse)
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
         : Error MLSProtocolError : r)
      LeaveSubConversationResponse
    -> Sem
         (Error MLSProtocolError : r)
         (Either GalleyError LeaveSubConversationResponse))
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
-> Sem (Error MLSProtocolError : r) LeaveSubConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @GalleyError
    (Sem
   (Error GalleyError : Error MLSProtocolError : r)
   LeaveSubConversationResponse
 -> Sem
      (Error MLSProtocolError : r)
      (Either GalleyError LeaveSubConversationResponse))
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'ConvAccessDenied ())
         : Error (Tagged 'MLSStaleMessage ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
         : Error MLSProtocolError : r)
      LeaveSubConversationResponse
    -> Sem
         (Error GalleyError : Error MLSProtocolError : r)
         LeaveSubConversationResponse)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
-> Sem
     (Error MLSProtocolError : r)
     (Either GalleyError LeaveSubConversationResponse)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @LeaveSubConversationStaticErrors
    (Sem
   (ErrorS 'ConvNotFound
      : Error (Tagged 'ConvAccessDenied ())
      : Error (Tagged 'MLSStaleMessage ())
      : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
      : Error MLSProtocolError : r)
   LeaveSubConversationResponse
 -> Sem r LeaveSubConversationResponse)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
-> Sem r LeaveSubConversationResponse
forall a b. (a -> b) -> a -> b
$ ClientIdentity
-> Local ConvId
-> SubConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     ()
forall (r :: EffectRow).
(HasLeaveSubConversationEffects r,
 Member (Error MLSProtocolError) r,
 Member (Error (Tagged 'MLSStaleMessage ())) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r,
 Member (Error FederationError) r, Member Resource r,
 Members LeaveSubConversationStaticErrors r) =>
ClientIdentity -> Local ConvId -> SubConvId -> Sem r ()
leaveLocalSubConversation ClientIdentity
cid Local ConvId
lcnv (LeaveSubConversationRequest -> SubConvId
lscrSubConv LeaveSubConversationRequest
lscr)
      Sem
  (ErrorS 'ConvNotFound
     : Error (Tagged 'ConvAccessDenied ())
     : Error (Tagged 'MLSStaleMessage ())
     : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
     : Error MLSProtocolError : r)
  ()
-> LeaveSubConversationResponse
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'ConvAccessDenied ())
        : Error (Tagged 'MLSStaleMessage ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError
        : Error MLSProtocolError : r)
     LeaveSubConversationResponse
forall (f :: * -> *) a b. Functor f => f a -> b -> f b
$> LeaveSubConversationResponse
LeaveSubConversationResponseOk

deleteSubConversationForRemoteUser ::
  ( Members
      '[ ConversationStore,
         FederatorAccess,
         Input (Local ()),
         Input Env,
         MemberStore,
         Resource,
         SubConversationStore
       ]
      r
  ) =>
  Domain ->
  DeleteSubConversationFedRequest ->
  Sem r DeleteSubConversationResponse
deleteSubConversationForRemoteUser :: forall (r :: EffectRow).
Members
  '[ConversationStore, FederatorAccess, Input (Local ()), Input Env,
    MemberStore, Resource, SubConversationStore]
  r =>
Domain
-> DeleteSubConversationFedRequest
-> Sem r DeleteSubConversationResponse
deleteSubConversationForRemoteUser Domain
domain DeleteSubConversationFedRequest {ConvId
UserId
GroupId
Epoch
SubConvId
dscreqUser :: UserId
dscreqConv :: ConvId
dscreqSubConv :: SubConvId
dscreqGroupId :: GroupId
dscreqEpoch :: Epoch
$sel:dscreqUser:DeleteSubConversationFedRequest :: DeleteSubConversationFedRequest -> UserId
$sel:dscreqConv:DeleteSubConversationFedRequest :: DeleteSubConversationFedRequest -> ConvId
$sel:dscreqSubConv:DeleteSubConversationFedRequest :: DeleteSubConversationFedRequest -> SubConvId
$sel:dscreqGroupId:DeleteSubConversationFedRequest :: DeleteSubConversationFedRequest -> GroupId
$sel:dscreqEpoch:DeleteSubConversationFedRequest :: DeleteSubConversationFedRequest -> Epoch
..} =
  (Either GalleyError () -> DeleteSubConversationResponse)
-> Sem r (Either GalleyError ())
-> Sem r DeleteSubConversationResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap
    ( (GalleyError -> DeleteSubConversationResponse)
-> (() -> DeleteSubConversationResponse)
-> Either GalleyError ()
-> DeleteSubConversationResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either
        GalleyError -> DeleteSubConversationResponse
DeleteSubConversationResponseError
        (\() -> DeleteSubConversationResponse
DeleteSubConversationResponseSuccess)
    )
    (Sem r (Either GalleyError ())
 -> Sem r DeleteSubConversationResponse)
-> (Sem
      (Error (Tagged 'ConvAccessDenied ())
         : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
      ()
    -> Sem r (Either GalleyError ()))
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
     ()
-> Sem r DeleteSubConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @GalleyError
    (Sem (Error GalleyError : r) () -> Sem r (Either GalleyError ()))
-> (Sem
      (Error (Tagged 'ConvAccessDenied ())
         : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
         : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
      ()
    -> Sem (Error GalleyError : r) ())
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
     ()
-> Sem r (Either GalleyError ())
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @MLSDeleteSubConvStaticErrors
    (Sem
   (Error (Tagged 'ConvAccessDenied ())
      : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
      : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
   ()
 -> Sem r DeleteSubConversationResponse)
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
     ()
-> Sem r DeleteSubConversationResponse
forall a b. (a -> b) -> a -> b
$ do
      let qusr :: Qualified UserId
qusr = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified UserId
dscreqUser Domain
domain
          dsc :: DeleteSubConversationRequest
dsc = GroupId -> Epoch -> DeleteSubConversationRequest
DeleteSubConversationRequest GroupId
dscreqGroupId Epoch
dscreqEpoch
      Local ConvId
lconv <- ConvId
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
     (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
dscreqConv
      Qualified UserId
-> Local ConvId
-> SubConvId
-> DeleteSubConversationRequest
-> Sem
     (Error (Tagged 'ConvAccessDenied ())
        : ErrorS 'ConvNotFound : Error (Tagged 'MLSNotEnabled ())
        : Error (Tagged 'MLSStaleMessage ()) : Error GalleyError : r)
     ()
forall (r :: EffectRow).
Members
  '[ConversationStore, Error (Tagged 'ConvAccessDenied ()),
    ErrorS 'ConvNotFound, Error (Tagged 'MLSNotEnabled ()),
    Error (Tagged 'MLSStaleMessage ()), FederatorAccess, Input Env,
    MemberStore, Resource, SubConversationStore]
  r =>
Qualified UserId
-> Local ConvId
-> SubConvId
-> DeleteSubConversationRequest
-> Sem r ()
deleteLocalSubConversation Qualified UserId
qusr Local ConvId
lconv SubConvId
dscreqSubConv DeleteSubConversationRequest
dsc

getOne2OneConversationV1 ::
  ( Member (Input (Local ())) r,
    Member BrigAccess r,
    Member (Error InvalidInput) r
  ) =>
  Domain ->
  GetOne2OneConversationRequest ->
  Sem r GetOne2OneConversationResponse
getOne2OneConversationV1 :: forall (r :: EffectRow).
(Member (Input (Local ())) r, Member BrigAccess r,
 Member (Error InvalidInput) r) =>
Domain
-> GetOne2OneConversationRequest
-> Sem r GetOne2OneConversationResponse
getOne2OneConversationV1 Domain
domain (GetOne2OneConversationRequest UserId
self UserId
other) =
  (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponse
 -> GetOne2OneConversationResponse)
-> Sem
     r (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponse)
-> Sem r GetOne2OneConversationResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (GetOne2OneConversationResponse
-> Either (Tagged 'NotConnected ()) GetOne2OneConversationResponse
-> GetOne2OneConversationResponse
forall b a. b -> Either a b -> b
Imports.fromRight GetOne2OneConversationResponse
GetOne2OneConversationNotConnected)
    (Sem
   r (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponse)
 -> Sem r GetOne2OneConversationResponse)
-> (Sem
      (Error (Tagged 'NotConnected ()) : r)
      GetOne2OneConversationResponse
    -> Sem
         r
         (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponse))
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
-> Sem r GetOne2OneConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @(Tagged 'NotConnected ())
    (Sem
   (Error (Tagged 'NotConnected ()) : r)
   GetOne2OneConversationResponse
 -> Sem r GetOne2OneConversationResponse)
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
-> Sem r GetOne2OneConversationResponse
forall a b. (a -> b) -> a -> b
$ do
      Local UserId
lother <- UserId -> Sem (Error (Tagged 'NotConnected ()) : r) (Local UserId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal UserId
other
      let rself :: Remote UserId
rself = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain UserId
self
      Local UserId
-> [Remote UserId] -> Sem (Error (Tagged 'NotConnected ()) : r) ()
forall (r :: EffectRow).
(Member BrigAccess r,
 Member (Error (Tagged 'NotConnected ())) r) =>
Local UserId -> [Remote UserId] -> Sem r ()
ensureConnectedToRemotes Local UserId
lother [Remote UserId
rself]
      Local UserId
-> (Local ConvId
    -> Sem
         (Error (Tagged 'NotConnected ()) : r)
         GetOne2OneConversationResponse)
-> (Remote ConvId
    -> Sem
         (Error (Tagged 'NotConnected ()) : r)
         GetOne2OneConversationResponse)
-> Qualified ConvId
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall x a b.
Local x -> (Local a -> b) -> (Remote a -> b) -> Qualified a -> b
foldQualified
        Local UserId
lother
        (Sem
  (Error (Tagged 'NotConnected ()) : r)
  GetOne2OneConversationResponse
-> Local ConvId
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall a b. a -> b -> a
const (Sem
   (Error (Tagged 'NotConnected ()) : r)
   GetOne2OneConversationResponse
 -> Local ConvId
 -> Sem
      (Error (Tagged 'NotConnected ()) : r)
      GetOne2OneConversationResponse)
-> (InvalidInput
    -> Sem
         (Error (Tagged 'NotConnected ()) : r)
         GetOne2OneConversationResponse)
-> InvalidInput
-> Local ConvId
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. InvalidInput
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (InvalidInput
 -> Local ConvId
 -> Sem
      (Error (Tagged 'NotConnected ()) : r)
      GetOne2OneConversationResponse)
-> InvalidInput
-> Local ConvId
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall a b. (a -> b) -> a -> b
$ LText -> InvalidInput
FederationFunctionNotSupported LText
"Getting 1:1 conversations is not supported over federation API < V2.")
        (Sem
  (Error (Tagged 'NotConnected ()) : r)
  GetOne2OneConversationResponse
-> Remote ConvId
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall a b. a -> b -> a
const (GetOne2OneConversationResponse
-> Sem
     (Error (Tagged 'NotConnected ()) : r)
     GetOne2OneConversationResponse
forall a. a -> Sem (Error (Tagged 'NotConnected ()) : r) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure GetOne2OneConversationResponse
GetOne2OneConversationBackendMismatch))
        (BaseProtocolTag
-> Qualified UserId -> Qualified UserId -> Qualified ConvId
one2OneConvId BaseProtocolTag
BaseProtocolMLSTag (Local UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Local UserId
lother) (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rself))

getOne2OneConversation ::
  ( Member ConversationStore r,
    Member (Input (Local ())) r,
    Member (Error InternalError) r,
    Member BrigAccess r,
    Member (Input Env) r
  ) =>
  Domain ->
  GetOne2OneConversationRequest ->
  Sem r GetOne2OneConversationResponseV2
getOne2OneConversation :: forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r,
 Member (Error InternalError) r, Member BrigAccess r,
 Member (Input Env) r) =>
Domain
-> GetOne2OneConversationRequest
-> Sem r GetOne2OneConversationResponseV2
getOne2OneConversation Domain
domain (GetOne2OneConversationRequest UserId
self UserId
other) =
  (Either (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2
 -> GetOne2OneConversationResponseV2)
-> Sem
     r
     (Either
        (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2)
-> Sem r GetOne2OneConversationResponseV2
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (GetOne2OneConversationResponseV2
-> Either
     (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2
-> GetOne2OneConversationResponseV2
forall b a. b -> Either a b -> b
Imports.fromRight GetOne2OneConversationResponseV2
GetOne2OneConversationV2MLSNotEnabled)
    (Sem
   r
   (Either
      (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2)
 -> Sem r GetOne2OneConversationResponseV2)
-> (Sem
      (Error (Tagged 'NotConnected ())
         : Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2
    -> Sem
         r
         (Either
            (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2))
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
-> Sem r GetOne2OneConversationResponseV2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @(Tagged 'MLSNotEnabled ())
    (Sem
   (Error (Tagged 'MLSNotEnabled ()) : r)
   GetOne2OneConversationResponseV2
 -> Sem
      r
      (Either
         (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2))
-> (Sem
      (Error (Tagged 'NotConnected ())
         : Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2
    -> Sem
         (Error (Tagged 'MLSNotEnabled ()) : r)
         GetOne2OneConversationResponseV2)
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
-> Sem
     r
     (Either
        (Tagged 'MLSNotEnabled ()) GetOne2OneConversationResponseV2)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponseV2
 -> GetOne2OneConversationResponseV2)
-> Sem
     (Error (Tagged 'MLSNotEnabled ()) : r)
     (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponseV2)
-> Sem
     (Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall a b.
(a -> b)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) a
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (GetOne2OneConversationResponseV2
-> Either
     (Tagged 'NotConnected ()) GetOne2OneConversationResponseV2
-> GetOne2OneConversationResponseV2
forall b a. b -> Either a b -> b
Imports.fromRight GetOne2OneConversationResponseV2
GetOne2OneConversationV2NotConnected)
    (Sem
   (Error (Tagged 'MLSNotEnabled ()) : r)
   (Either (Tagged 'NotConnected ()) GetOne2OneConversationResponseV2)
 -> Sem
      (Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2)
-> (Sem
      (Error (Tagged 'NotConnected ())
         : Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2
    -> Sem
         (Error (Tagged 'MLSNotEnabled ()) : r)
         (Either
            (Tagged 'NotConnected ()) GetOne2OneConversationResponseV2))
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
-> Sem
     (Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @(Tagged 'NotConnected ())
    (Sem
   (Error (Tagged 'NotConnected ())
      : Error (Tagged 'MLSNotEnabled ()) : r)
   GetOne2OneConversationResponseV2
 -> Sem r GetOne2OneConversationResponseV2)
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
-> Sem r GetOne2OneConversationResponseV2
forall a b. (a -> b) -> a -> b
$ do
      Local UserId
lother <- UserId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     (Local UserId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal UserId
other
      let rself :: Remote UserId
rself = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain UserId
self
      let getLocal :: Local ConvId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
getLocal Local ConvId
lconv = do
            Maybe Conversation
mconv <- ConvId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     (Maybe Conversation)
forall (r :: EffectRow).
Member ConversationStore r =>
ConvId -> Sem r (Maybe Conversation)
E.getConversation (Local ConvId -> ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> a
tUnqualified Local ConvId
lconv)
            MLSKeysByPurpose MLSPublicKeys
mlsPublicKeys <- MLSPrivateKeys -> MLSPublicKeys
mlsKeysToPublic (MLSPrivateKeys -> MLSPublicKeys)
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     (MLSKeysByPurpose MLSPrivateKeys)
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     (MLSKeysByPurpose MLSPublicKeys)
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<$$> Sem
  (Error (Tagged 'NotConnected ())
     : Error (Tagged 'MLSNotEnabled ()) : r)
  (MLSKeysByPurpose MLSPrivateKeys)
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r (MLSKeysByPurpose MLSPrivateKeys)
getMLSPrivateKeys
            RemoteConversationV2
conv <- case Maybe Conversation
mconv of
              Maybe Conversation
Nothing -> RemoteConversationV2
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     RemoteConversationV2
forall a.
a
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Local ConvId -> RemoteConversationV2
localMLSOne2OneConversationAsRemote Local ConvId
lconv)
              Just Conversation
conv ->
                InternalError
-> Maybe RemoteConversationV2
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     RemoteConversationV2
forall e (r :: EffectRow) a.
Member (Error e) r =>
e -> Maybe a -> Sem r a
note
                  (LText -> InternalError
InternalErrorWithDescription LText
"Unexpected member list in 1-1 conversation")
                  (Domain
-> Remote UserId -> Conversation -> Maybe RemoteConversationV2
conversationToRemote (Local UserId -> Domain
forall (t :: QTag) a. QualifiedWithTag t a -> Domain
tDomain Local UserId
lother) Remote UserId
rself Conversation
conv)
            GetOne2OneConversationResponseV2
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall a.
a
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (GetOne2OneConversationResponseV2
 -> Sem
      (Error (Tagged 'NotConnected ())
         : Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2)
-> (RemoteMLSOne2OneConversation
    -> GetOne2OneConversationResponseV2)
-> RemoteMLSOne2OneConversation
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RemoteMLSOne2OneConversation -> GetOne2OneConversationResponseV2
GetOne2OneConversationV2Ok (RemoteMLSOne2OneConversation
 -> Sem
      (Error (Tagged 'NotConnected ())
         : Error (Tagged 'MLSNotEnabled ()) : r)
      GetOne2OneConversationResponseV2)
-> RemoteMLSOne2OneConversation
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall a b. (a -> b) -> a -> b
$ RemoteConversationV2
-> MLSKeysByPurpose MLSPublicKeys -> RemoteMLSOne2OneConversation
RemoteMLSOne2OneConversation RemoteConversationV2
conv MLSKeysByPurpose MLSPublicKeys
mlsPublicKeys

      Local UserId
-> [Remote UserId]
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     ()
forall (r :: EffectRow).
(Member BrigAccess r,
 Member (Error (Tagged 'NotConnected ())) r) =>
Local UserId -> [Remote UserId] -> Sem r ()
ensureConnectedToRemotes Local UserId
lother [Remote UserId
rself]

      Local UserId
-> (Local ConvId
    -> Sem
         (Error (Tagged 'NotConnected ())
            : Error (Tagged 'MLSNotEnabled ()) : r)
         GetOne2OneConversationResponseV2)
-> (Remote ConvId
    -> Sem
         (Error (Tagged 'NotConnected ())
            : Error (Tagged 'MLSNotEnabled ()) : r)
         GetOne2OneConversationResponseV2)
-> Qualified ConvId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall x a b.
Local x -> (Local a -> b) -> (Remote a -> b) -> Qualified a -> b
foldQualified
        Local UserId
lother
        Local ConvId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
getLocal
        (Sem
  (Error (Tagged 'NotConnected ())
     : Error (Tagged 'MLSNotEnabled ()) : r)
  GetOne2OneConversationResponseV2
-> Remote ConvId
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall a b. a -> b -> a
const (GetOne2OneConversationResponseV2
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     GetOne2OneConversationResponseV2
forall a.
a
-> Sem
     (Error (Tagged 'NotConnected ())
        : Error (Tagged 'MLSNotEnabled ()) : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure GetOne2OneConversationResponseV2
GetOne2OneConversationV2BackendMismatch))
        (BaseProtocolTag
-> Qualified UserId -> Qualified UserId -> Qualified ConvId
one2OneConvId BaseProtocolTag
BaseProtocolMLSTag (Local UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Local UserId
lother) (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
rself))

--------------------------------------------------------------------------------
-- Error handling machinery

class ToGalleyRuntimeError (effs :: EffectRow) r where
  mapToGalleyError ::
    (Member (Error GalleyError) r) =>
    Sem (Append effs r) a ->
    Sem r a

instance ToGalleyRuntimeError '[] r where
  mapToGalleyError :: forall a.
Member (Error GalleyError) r =>
Sem (Append '[] r) a -> Sem r a
mapToGalleyError = Sem r a -> Sem r a
Sem (Append '[] r) a -> Sem r a
forall a. a -> a
Imports.id

instance
  forall (err :: GalleyError) effs r.
  ( ToGalleyRuntimeError effs r,
    SingI err,
    Member (Error GalleyError) (Append effs r)
  ) =>
  ToGalleyRuntimeError (ErrorS err ': effs) r
  where
  mapToGalleyError :: forall a.
Member (Error GalleyError) r =>
Sem (Append (ErrorS err : effs) r) a -> Sem r a
mapToGalleyError Sem (Append (ErrorS err : effs) r) a
act =
    forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @effs @r (Sem (Append effs r) a -> Sem r a)
-> Sem (Append effs r) a -> Sem r a
forall a b. (a -> b) -> a -> b
$
      Sem (ErrorS err : Append effs r) a
-> Sem (Append effs r) (Either (Tagged err ()) a)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError Sem (ErrorS err : Append effs r) a
Sem (Append (ErrorS err : effs) r) a
act Sem (Append effs r) (Either (Tagged err ()) a)
-> (Either (Tagged err ()) a -> Sem (Append effs r) a)
-> Sem (Append effs r) a
forall a b.
Sem (Append effs r) a
-> (a -> Sem (Append effs r) b) -> Sem (Append effs r) b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \case
        Left Tagged err ()
_ -> GalleyError -> Sem (Append effs r) a
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (forall {k} (a :: k). (SingKind k, SingI a) => Demote k
forall (a :: GalleyError).
(SingKind GalleyError, SingI a) =>
Demote GalleyError
demote @err)
        Right a
res -> a -> Sem (Append effs r) a
forall a. a -> Sem (Append effs r) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure a
res

onMLSMessageSent ::
  ( Member ExternalAccess r,
    Member NotificationSubsystem r,
    Member (Input (Local ())) r,
    Member (Input Env) r,
    Member MemberStore r,
    Member P.TinyLog r
  ) =>
  Domain ->
  RemoteMLSMessage ->
  Sem r EmptyResponse
onMLSMessageSent :: forall (r :: EffectRow).
(Member ExternalAccess r, Member NotificationSubsystem r,
 Member (Input (Local ())) r, Member (Input Env) r,
 Member MemberStore r, Member (Logger (Msg -> Msg)) r) =>
Domain -> RemoteMLSMessage -> Sem r EmptyResponse
onMLSMessageSent Domain
domain RemoteMLSMessage
rmm =
  (EmptyResponse
EmptyResponse <$)
    (Sem r () -> Sem r EmptyResponse)
-> (Sem (Error (Tagged 'MLSNotEnabled ()) : r) () -> Sem r ())
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem r EmptyResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Either (Tagged 'MLSNotEnabled ()) () -> Sem r ()
forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Either (Tagged 'MLSNotEnabled ()) () -> Sem r ()
logError =<<)
    (Sem r (Either (Tagged 'MLSNotEnabled ()) ()) -> Sem r ())
-> (Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
    -> Sem r (Either (Tagged 'MLSNotEnabled ()) ()))
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem r ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @(Tagged 'MLSNotEnabled ())
    (Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
 -> Sem r EmptyResponse)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem r EmptyResponse
forall a b. (a -> b) -> a -> b
$ do
      Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r ()
assertMLSEnabled
      Local ()
loc <- () -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
      let rcnv :: Remote ConvId
rcnv = Domain -> ConvId -> Remote ConvId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
domain RemoteMLSMessage
rmm.conversation
      let users :: [UserId]
users = Map UserId (NonEmpty ClientId) -> [UserId]
forall k a. Map k a -> [k]
Map.keys RemoteMLSMessage
rmm.recipients
      (Set UserId
members, Bool
allMembers) <-
        ([UserId] -> Set UserId) -> ([UserId], Bool) -> (Set UserId, Bool)
forall a b c. (a -> b) -> (a, c) -> (b, c)
forall (p :: * -> * -> *) a b c.
Bifunctor p =>
(a -> b) -> p a c -> p b c
first [UserId] -> Set UserId
forall a. Ord a => [a] -> Set a
Set.fromList
          (([UserId], Bool) -> (Set UserId, Bool))
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ([UserId], Bool)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (Set UserId, Bool)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> [UserId]
-> Remote ConvId
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ([UserId], Bool)
forall (r :: EffectRow).
Member MemberStore r =>
[UserId] -> Remote ConvId -> Sem r ([UserId], Bool)
E.selectRemoteMembers ([UserId] -> [UserId]
forall a. [a] -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList [UserId]
users) Remote ConvId
rcnv
      Bool
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall (f :: * -> *). Applicative f => Bool -> f () -> f ()
unless Bool
allMembers (Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
 -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ())
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall a b. (a -> b) -> a -> b
$
        (Msg -> Msg) -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall msg (r :: EffectRow).
Member (Logger msg) r =>
msg -> Sem r ()
P.warn ((Msg -> Msg) -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ())
-> (Msg -> Msg) -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall a b. (a -> b) -> a -> b
$
          ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"conversation" (ConvId -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Remote ConvId -> ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> a
tUnqualified Remote ConvId
rcnv))
            (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"domain" (Domain -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Remote ConvId -> Domain
forall (t :: QTag) a. QualifiedWithTag t a -> Domain
tDomain Remote ConvId
rcnv))
            (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> Msg -> Msg
forall a. ToBytes a => a -> Msg -> Msg
Log.msg
              ( ByteString
"Attempt to send remote message to local\
                \ users not in the conversation" ::
                  ByteString
              )
      let recipients :: [Recipient]
recipients =
            (Recipient -> Bool) -> [Recipient] -> [Recipient]
forall a. (a -> Bool) -> [a] -> [a]
filter (\Recipient
r -> UserId -> Set UserId -> Bool
forall a. Ord a => a -> Set a -> Bool
Set.member (Recipient -> UserId
recipientUserId Recipient
r) Set UserId
members)
              ([Recipient] -> [Recipient])
-> (Map UserId (NonEmpty ClientId) -> [Recipient])
-> Map UserId (NonEmpty ClientId)
-> [Recipient]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((UserId, NonEmpty ClientId) -> Recipient)
-> [(UserId, NonEmpty ClientId)] -> [Recipient]
forall a b. (a -> b) -> [a] -> [b]
map (\(UserId
u, NonEmpty ClientId
clts) -> UserId -> RecipientClients -> Recipient
Recipient UserId
u (List1 ClientId -> RecipientClients
RecipientClientsSome (NonEmpty ClientId -> List1 ClientId
forall a. NonEmpty a -> List1 a
List1 NonEmpty ClientId
clts)))
              ([(UserId, NonEmpty ClientId)] -> [Recipient])
-> (Map UserId (NonEmpty ClientId)
    -> [(UserId, NonEmpty ClientId)])
-> Map UserId (NonEmpty ClientId)
-> [Recipient]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Map UserId (NonEmpty ClientId) -> [(UserId, NonEmpty ClientId)]
forall k a. Map k a -> [(k, a)]
Map.assocs
              (Map UserId (NonEmpty ClientId) -> [Recipient])
-> Map UserId (NonEmpty ClientId) -> [Recipient]
forall a b. (a -> b) -> a -> b
$ RemoteMLSMessage
rmm.recipients
      -- FUTUREWORK: support local bots
      let e :: Event
e =
            Qualified ConvId
-> Maybe SubConvId
-> Qualified UserId
-> UTCTime
-> EventData
-> Event
Event (Remote ConvId -> Qualified ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote ConvId
rcnv) RemoteMLSMessage
rmm.subConversation RemoteMLSMessage
rmm.sender RemoteMLSMessage
rmm.time (EventData -> Event) -> EventData -> Event
forall a b. (a -> b) -> a -> b
$
              ByteString -> EventData
EdMLSMessage (Base64ByteString -> ByteString
fromBase64ByteString RemoteMLSMessage
rmm.message)

      Local ()
-> Maybe (Qualified ConvId)
-> MessagePush
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall x (r :: EffectRow).
(Member ExternalAccess r, Member (Logger (Msg -> Msg)) r,
 Member NotificationSubsystem r) =>
Local x -> Maybe (Qualified ConvId) -> MessagePush -> Sem r ()
runMessagePush Local ()
loc (Qualified ConvId -> Maybe (Qualified ConvId)
forall a. a -> Maybe a
Just (Remote ConvId -> Qualified ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote ConvId
rcnv)) (MessagePush -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ())
-> MessagePush -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall a b. (a -> b) -> a -> b
$
        BotMap
-> Maybe ConnId
-> MessageMetadata
-> [Recipient]
-> Event
-> MessagePush
forall r.
ToRecipient r =>
BotMap
-> Maybe ConnId -> MessageMetadata -> [r] -> Event -> MessagePush
newMessagePush BotMap
forall a. Monoid a => a
mempty Maybe ConnId
forall a. Maybe a
Nothing RemoteMLSMessage
rmm.metadata [Recipient]
recipients Event
e
  where
    logError :: (Member P.TinyLog r) => Either (Tagged 'MLSNotEnabled ()) () -> Sem r ()
    logError :: forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Either (Tagged 'MLSNotEnabled ()) () -> Sem r ()
logError (Left Tagged 'MLSNotEnabled ()
_) =
      (Msg -> Msg) -> Sem r ()
forall msg (r :: EffectRow).
Member (Logger msg) r =>
msg -> Sem r ()
P.warn ((Msg -> Msg) -> Sem r ()) -> (Msg -> Msg) -> Sem r ()
forall a b. (a -> b) -> a -> b
$
        ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"conversation" (ConvId -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' RemoteMLSMessage
rmm.conversation)
          (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"domain" (Domain -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' Domain
domain)
          (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> Msg -> Msg
forall a. ToBytes a => a -> Msg -> Msg
Log.msg
            (ByteString
"Cannot process remote MLS message because MLS is disabled on this backend" :: ByteString)
    logError Either (Tagged 'MLSNotEnabled ()) ()
_ = () -> Sem r ()
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()

mlsSendWelcome ::
  ( Member (Error InternalError) r,
    Member NotificationSubsystem r,
    Member ExternalAccess r,
    Member P.TinyLog r,
    Member (Input Env) r,
    Member (Input (Local ())) r,
    Member (Input UTCTime) r
  ) =>
  Domain ->
  MLSWelcomeRequest ->
  Sem r MLSWelcomeResponse
mlsSendWelcome :: forall (r :: EffectRow).
(Member (Error InternalError) r, Member NotificationSubsystem r,
 Member ExternalAccess r, Member (Logger (Msg -> Msg)) r,
 Member (Input Env) r, Member (Input (Local ())) r,
 Member (Input UTCTime) r) =>
Domain -> MLSWelcomeRequest -> Sem r MLSWelcomeResponse
mlsSendWelcome Domain
origDomain MLSWelcomeRequest
req = do
  (Either (Tagged 'MLSNotEnabled ()) () -> MLSWelcomeResponse)
-> Sem r (Either (Tagged 'MLSNotEnabled ()) ())
-> Sem r MLSWelcomeResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((Tagged 'MLSNotEnabled () -> MLSWelcomeResponse)
-> (() -> MLSWelcomeResponse)
-> Either (Tagged 'MLSNotEnabled ()) ()
-> MLSWelcomeResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (MLSWelcomeResponse
-> Tagged 'MLSNotEnabled () -> MLSWelcomeResponse
forall a b. a -> b -> a
const MLSWelcomeResponse
MLSWelcomeMLSNotEnabled) (MLSWelcomeResponse -> () -> MLSWelcomeResponse
forall a b. a -> b -> a
const MLSWelcomeResponse
MLSWelcomeSent))
    (Sem r (Either (Tagged 'MLSNotEnabled ()) ())
 -> Sem r MLSWelcomeResponse)
-> (Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
    -> Sem r (Either (Tagged 'MLSNotEnabled ()) ()))
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem r MLSWelcomeResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @(Tagged 'MLSNotEnabled ())
    (Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
 -> Sem r MLSWelcomeResponse)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
-> Sem r MLSWelcomeResponse
forall a b. (a -> b) -> a -> b
$ do
      Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r ()
assertMLSEnabled
      Local ()
loc <- () -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (Local ())
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ()
      UTCTime
now <- Sem (Error (Tagged 'MLSNotEnabled ()) : r) UTCTime
forall i (r :: EffectRow). Member (Input i) r => Sem r i
input
      RawMLS Message
welcome <-
        (Text
 -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message))
-> (RawMLS Message
    -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message))
-> Either Text (RawMLS Message)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message)
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (InternalError
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message)
forall e (r :: EffectRow) a. Member (Error e) r => e -> Sem r a
throw (InternalError
 -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message))
-> (Text -> InternalError)
-> Text
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. LText -> InternalError
InternalErrorWithDescription (LText -> InternalError)
-> (Text -> LText) -> Text -> InternalError
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> LText
LT.fromStrict) RawMLS Message
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message)
forall a. a -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either Text (RawMLS Message)
 -> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message))
-> Either Text (RawMLS Message)
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) (RawMLS Message)
forall a b. (a -> b) -> a -> b
$
          ByteString -> Either Text (RawMLS Message)
forall a. ParseMLS a => ByteString -> Either Text a
decodeMLS' (Base64ByteString -> ByteString
fromBase64ByteString MLSWelcomeRequest
req.welcomeMessage)
      Qualified ConvId
-> Qualified UserId
-> Maybe ConnId
-> UTCTime
-> RawMLS Message
-> Local [(UserId, ClientId)]
-> Sem (Error (Tagged 'MLSNotEnabled ()) : r) ()
forall (r :: EffectRow).
(Member (Logger (Msg -> Msg)) r, Member ExternalAccess r,
 Member NotificationSubsystem r) =>
Qualified ConvId
-> Qualified UserId
-> Maybe ConnId
-> UTCTime
-> RawMLS Message
-> Local [(UserId, ClientId)]
-> Sem r ()
sendLocalWelcomes MLSWelcomeRequest
req.qualifiedConvId (UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified MLSWelcomeRequest
req.originatingUser Domain
origDomain) Maybe ConnId
forall a. Maybe a
Nothing UTCTime
now RawMLS Message
welcome (Local () -> [(UserId, ClientId)] -> Local [(UserId, ClientId)]
forall (t :: QTag) x a.
QualifiedWithTag t x -> a -> QualifiedWithTag t a
qualifyAs Local ()
loc MLSWelcomeRequest
req.recipients)

queryGroupInfo ::
  ( Member ConversationStore r,
    Member (Input (Local ())) r,
    Member (Input Env) r,
    Member SubConversationStore r,
    Member MemberStore r
  ) =>
  Domain ->
  GetGroupInfoRequest ->
  Sem r GetGroupInfoResponse
queryGroupInfo :: forall (r :: EffectRow).
(Member ConversationStore r, Member (Input (Local ())) r,
 Member (Input Env) r, Member SubConversationStore r,
 Member MemberStore r) =>
Domain -> GetGroupInfoRequest -> Sem r GetGroupInfoResponse
queryGroupInfo Domain
origDomain GetGroupInfoRequest
req =
  (Either GalleyError Base64ByteString -> GetGroupInfoResponse)
-> Sem r (Either GalleyError Base64ByteString)
-> Sem r GetGroupInfoResponse
forall a b. (a -> b) -> Sem r a -> Sem r b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap ((GalleyError -> GetGroupInfoResponse)
-> (Base64ByteString -> GetGroupInfoResponse)
-> Either GalleyError Base64ByteString
-> GetGroupInfoResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> GetGroupInfoResponse
GetGroupInfoResponseError Base64ByteString -> GetGroupInfoResponse
GetGroupInfoResponseState)
    (Sem r (Either GalleyError Base64ByteString)
 -> Sem r GetGroupInfoResponse)
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'MLSMissingGroupInfo ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
      Base64ByteString
    -> Sem r (Either GalleyError Base64ByteString))
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
-> Sem r GetGroupInfoResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError @GalleyError
    (Sem (Error GalleyError : r) Base64ByteString
 -> Sem r (Either GalleyError Base64ByteString))
-> (Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'MLSMissingGroupInfo ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
      Base64ByteString
    -> Sem (Error GalleyError : r) Base64ByteString)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
-> Sem r (Either GalleyError Base64ByteString)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (effs :: EffectRow) (r :: EffectRow) a.
(ToGalleyRuntimeError effs r, Member (Error GalleyError) r) =>
Sem (Append effs r) a -> Sem r a
mapToGalleyError @MLSGroupInfoStaticErrors
    (Sem
   (ErrorS 'ConvNotFound
      : Error (Tagged 'MLSMissingGroupInfo ())
      : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
   Base64ByteString
 -> Sem r GetGroupInfoResponse)
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
-> Sem r GetGroupInfoResponse
forall a b. (a -> b) -> a -> b
$ do
      Sem
  (ErrorS 'ConvNotFound
     : Error (Tagged 'MLSMissingGroupInfo ())
     : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
  ()
forall (r :: EffectRow).
(Member (Input Env) r,
 Member (Error (Tagged 'MLSNotEnabled ())) r) =>
Sem r ()
assertMLSEnabled
      let sender :: Remote UserId
sender = Domain -> UserId -> Remote UserId
forall a. Domain -> a -> Remote a
toRemoteUnsafe Domain
origDomain (UserId -> Remote UserId)
-> (GetGroupInfoRequest -> UserId)
-> GetGroupInfoRequest
-> Remote UserId
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (.sender) (GetGroupInfoRequest -> Remote UserId)
-> GetGroupInfoRequest -> Remote UserId
forall a b. (a -> b) -> a -> b
$ GetGroupInfoRequest
req
      GroupInfoData
state <- case GetGroupInfoRequest
req.conv of
        Conv ConvId
convId -> do
          Local ConvId
lconvId <- ConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
convId
          Qualified UserId
-> Local ConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     GroupInfoData
forall (r :: EffectRow).
(Member ConversationStore r, Member MemberStore r,
 Members MLSGroupInfoStaticErrors r) =>
Qualified UserId -> Local ConvId -> Sem r GroupInfoData
getGroupInfoFromLocalConv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
sender) Local ConvId
lconvId
        SubConv ConvId
convId SubConvId
subConvId -> do
          Local ConvId
lconvId <- ConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
convId
          Qualified UserId
-> SubConvId
-> Local ConvId
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     GroupInfoData
forall (r :: EffectRow).
(Members '[ConversationStore, SubConversationStore, MemberStore] r,
 Members MLSGroupInfoStaticErrors r) =>
Qualified UserId
-> SubConvId -> Local ConvId -> Sem r GroupInfoData
getSubConversationGroupInfoFromLocalConv (Remote UserId -> Qualified UserId
forall (t :: QTag) a. QualifiedWithTag t a -> Qualified a
tUntagged Remote UserId
sender) SubConvId
subConvId Local ConvId
lconvId
      Base64ByteString
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
forall a.
a
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
        (Base64ByteString
 -> Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'MLSMissingGroupInfo ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
      Base64ByteString)
-> (GroupInfoData -> Base64ByteString)
-> GroupInfoData
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Base64ByteString
Base64ByteString
        (ByteString -> Base64ByteString)
-> (GroupInfoData -> ByteString)
-> GroupInfoData
-> Base64ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. GroupInfoData -> ByteString
unGroupInfoData
        (GroupInfoData
 -> Sem
      (ErrorS 'ConvNotFound
         : Error (Tagged 'MLSMissingGroupInfo ())
         : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
      Base64ByteString)
-> GroupInfoData
-> Sem
     (ErrorS 'ConvNotFound
        : Error (Tagged 'MLSMissingGroupInfo ())
        : Error (Tagged 'MLSNotEnabled ()) : Error GalleyError : r)
     Base64ByteString
forall a b. (a -> b) -> a -> b
$ GroupInfoData
state

updateTypingIndicator ::
  ( Member NotificationSubsystem r,
    Member FederatorAccess r,
    Member ConversationStore r,
    Member (Input UTCTime) r,
    Member (Input (Local ())) r
  ) =>
  Domain ->
  TypingDataUpdateRequest ->
  Sem r TypingDataUpdateResponse
updateTypingIndicator :: forall (r :: EffectRow).
(Member NotificationSubsystem r, Member FederatorAccess r,
 Member ConversationStore r, Member (Input UTCTime) r,
 Member (Input (Local ())) r) =>
Domain -> TypingDataUpdateRequest -> Sem r TypingDataUpdateResponse
updateTypingIndicator Domain
origDomain TypingDataUpdateRequest {ConvId
UserId
TypingStatus
typingStatus :: TypingStatus
userId :: UserId
convId :: ConvId
$sel:typingStatus:TypingDataUpdateRequest :: TypingDataUpdateRequest -> TypingStatus
$sel:userId:TypingDataUpdateRequest :: TypingDataUpdateRequest -> UserId
$sel:convId:TypingDataUpdateRequest :: TypingDataUpdateRequest -> ConvId
..} = do
  let qusr :: Qualified UserId
qusr = UserId -> Domain -> Qualified UserId
forall a. a -> Domain -> Qualified a
Qualified UserId
userId Domain
origDomain
  Local ConvId
lcnv <- ConvId -> Sem r (Local ConvId)
forall (r :: EffectRow) a.
Member (Input (Local ())) r =>
a -> Sem r (Local a)
qualifyLocal ConvId
convId

  Either GalleyError TypingDataUpdated
ret <- Sem (Error GalleyError : r) TypingDataUpdated
-> Sem r (Either GalleyError TypingDataUpdated)
forall e (r :: EffectRow) a.
Sem (Error e : r) a -> Sem r (Either e a)
runError
    (Sem (Error GalleyError : r) TypingDataUpdated
 -> Sem r (Either GalleyError TypingDataUpdated))
-> (Sem
      (ErrorS 'ConvNotFound : Error GalleyError : r) TypingDataUpdated
    -> Sem (Error GalleyError : r) TypingDataUpdated)
-> Sem
     (ErrorS 'ConvNotFound : Error GalleyError : r) TypingDataUpdated
-> Sem r (Either GalleyError TypingDataUpdated)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall {k} (e :: k) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
forall (e :: GalleyError) e' (r :: EffectRow) a.
Member (Error e') r =>
e' -> Sem (ErrorS e : r) a -> Sem r a
mapToRuntimeError @'ConvNotFound GalleyError
ConvNotFound
    (Sem
   (ErrorS 'ConvNotFound : Error GalleyError : r) TypingDataUpdated
 -> Sem r (Either GalleyError TypingDataUpdated))
-> Sem
     (ErrorS 'ConvNotFound : Error GalleyError : r) TypingDataUpdated
-> Sem r (Either GalleyError TypingDataUpdated)
forall a b. (a -> b) -> a -> b
$ do
      (Conversation
conv, Either LocalMember RemoteMember
_) <- forall {k1} (e :: k1) uid mem (r :: EffectRow).
(Member ConversationStore r, Member (ErrorS 'ConvNotFound) r,
 Member (ErrorS e) r, IsConvMemberId uid mem) =>
uid -> Local ConvId -> Sem r (Conversation, mem)
forall (e :: GalleyError) uid mem (r :: EffectRow).
(Member ConversationStore r, Member (ErrorS 'ConvNotFound) r,
 Member (ErrorS e) r, IsConvMemberId uid mem) =>
uid -> Local ConvId -> Sem r (Conversation, mem)
getConversationAndMemberWithError @'ConvNotFound Qualified UserId
qusr Local ConvId
lcnv
      Conversation
-> Qualified UserId
-> Maybe ConnId
-> TypingStatus
-> Sem
     (ErrorS 'ConvNotFound : Error GalleyError : r) TypingDataUpdated
forall (r :: EffectRow).
(Member (Input UTCTime) r, Member (Input (Local ())) r,
 Member NotificationSubsystem r, Member FederatorAccess r) =>
Conversation
-> Qualified UserId
-> Maybe ConnId
-> TypingStatus
-> Sem r TypingDataUpdated
notifyTypingIndicator Conversation
conv Qualified UserId
qusr Maybe ConnId
forall a. Maybe a
Nothing TypingStatus
typingStatus

  TypingDataUpdateResponse -> Sem r TypingDataUpdateResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ((GalleyError -> TypingDataUpdateResponse)
-> (TypingDataUpdated -> TypingDataUpdateResponse)
-> Either GalleyError TypingDataUpdated
-> TypingDataUpdateResponse
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either GalleyError -> TypingDataUpdateResponse
TypingDataUpdateError TypingDataUpdated -> TypingDataUpdateResponse
TypingDataUpdateSuccess Either GalleyError TypingDataUpdated
ret)

onTypingIndicatorUpdated ::
  ( Member NotificationSubsystem r
  ) =>
  Domain ->
  TypingDataUpdated ->
  Sem r EmptyResponse
onTypingIndicatorUpdated :: forall (r :: EffectRow).
Member NotificationSubsystem r =>
Domain -> TypingDataUpdated -> Sem r EmptyResponse
onTypingIndicatorUpdated Domain
origDomain TypingDataUpdated {[UserId]
UTCTime
ConvId
Qualified UserId
TypingStatus
time :: UTCTime
origUserId :: Qualified UserId
convId :: ConvId
usersInConv :: [UserId]
typingStatus :: TypingStatus
$sel:time:TypingDataUpdated :: TypingDataUpdated -> UTCTime
$sel:origUserId:TypingDataUpdated :: TypingDataUpdated -> Qualified UserId
$sel:convId:TypingDataUpdated :: TypingDataUpdated -> ConvId
$sel:usersInConv:TypingDataUpdated :: TypingDataUpdated -> [UserId]
$sel:typingStatus:TypingDataUpdated :: TypingDataUpdated -> TypingStatus
..} = do
  let qcnv :: Qualified ConvId
qcnv = ConvId -> Domain -> Qualified ConvId
forall a. a -> Domain -> Qualified a
Qualified ConvId
convId Domain
origDomain
  Qualified UserId
-> UTCTime
-> [UserId]
-> Maybe ConnId
-> Qualified ConvId
-> TypingStatus
-> Sem r ()
forall (r :: EffectRow).
Member NotificationSubsystem r =>
Qualified UserId
-> UTCTime
-> [UserId]
-> Maybe ConnId
-> Qualified ConvId
-> TypingStatus
-> Sem r ()
pushTypingIndicatorEvents Qualified UserId
origUserId UTCTime
time [UserId]
usersInConv Maybe ConnId
forall a. Maybe a
Nothing Qualified ConvId
qcnv TypingStatus
typingStatus
  EmptyResponse -> Sem r EmptyResponse
forall a. a -> Sem r a
forall (f :: * -> *) a. Applicative f => a -> f a
pure EmptyResponse
EmptyResponse

--------------------------------------------------------------------------------
-- Utilities
--------------------------------------------------------------------------------

-- | Log a federation error that is impossible in processing a remote request
-- for a local conversation.
logFederationError ::
  (Member P.TinyLog r) =>
  Local ConvId ->
  FederationError ->
  Sem r ()
logFederationError :: forall (r :: EffectRow).
Member (Logger (Msg -> Msg)) r =>
Local ConvId -> FederationError -> Sem r ()
logFederationError Local ConvId
lc FederationError
e =
  (Msg -> Msg) -> Sem r ()
forall msg (r :: EffectRow).
Member (Logger msg) r =>
msg -> Sem r ()
P.warn ((Msg -> Msg) -> Sem r ()) -> (Msg -> Msg) -> Sem r ()
forall a b. (a -> b) -> a -> b
$
    ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"conversation" (ConvId -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Local ConvId -> ConvId
forall (t :: QTag) a. QualifiedWithTag t a -> a
tUnqualified Local ConvId
lc))
      (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ ByteString -> ByteString -> Msg -> Msg
forall a. ToBytes a => ByteString -> a -> Msg -> Msg
Log.field ByteString
"domain" (Domain -> ByteString
forall a. ToByteString a => a -> ByteString
toByteString' (Local ConvId -> Domain
forall (t :: QTag) a. QualifiedWithTag t a -> Domain
tDomain Local ConvId
lc))
      (Msg -> Msg) -> (Msg -> Msg) -> Msg -> Msg
forall b c a. (b -> c) -> (a -> b) -> a -> c
Log.~~ String -> Msg -> Msg
forall a. ToBytes a => a -> Msg -> Msg
Log.msg
        ( String
"An impossible federation error occurred when deleting\
          \ a user from a local conversation: "
            String -> String -> String
forall a. Semigroup a => a -> a -> a
<> FederationError -> String
forall e. Exception e => e -> String
displayException FederationError
e
        )