wire-api-federation-0.1.0: The Wire server-to-server API for federation
Safe HaskellSafe-Inferred
LanguageGHC2021

Wire.API.Federation.API

Contents

Synopsis

Documentation

type family FedApi (comp :: Component) = (api :: Type) | api -> comp Source #

Instances

Instances details
type FedApi 'Brig Source # 
Instance details

Defined in Wire.API.Federation.API

type FedApi 'Cargohold Source # 
Instance details

Defined in Wire.API.Federation.API

type FedApi 'Galley Source # 
Instance details

Defined in Wire.API.Federation.API

type HasFedEndpoint comp api name = HasUnsafeFedEndpoint comp api name Source #

type HasUnsafeFedEndpoint comp api name = 'Just api ~ LookupEndpoint (FedApi comp) name Source #

Like HasFedEndpoint, but doesn't propagate a CallsFed constraint. Useful for tests, but unsafe in the sense that incorrect usage will allow you to forget about some federated calls.

class FederationMonad (fedM :: Component -> Type -> Type) where Source #

Methods

fedClientWithProxy :: forall (comp :: Component) name api. (HasClient (fedM comp) api, HasFedEndpoint comp api name, KnownComponent comp, IsNamed name, Typeable (Client (fedM comp) api)) => Proxy name -> Proxy api -> Proxy (fedM comp) -> Client (fedM comp) api Source #

Instances

Instances details
FederationMonad FederatorClient Source # 
Instance details

Defined in Wire.API.Federation.API

Methods

fedClientWithProxy :: forall {k} (comp :: Component) (name :: k) api. (HasClient (FederatorClient comp) api, HasFedEndpoint comp api name, KnownComponent comp, IsNamed name, Typeable (Client (FederatorClient comp) api)) => Proxy name -> Proxy api -> Proxy (FederatorClient comp) -> Client (FederatorClient comp) api Source #

class IsNamed (name :: k) where Source #

Methods

nameVal' :: Text Source #

Instances

Instances details
KnownSymbol name => IsNamed (name :: Symbol) Source # 
Instance details

Defined in Wire.API.Federation.API

Methods

nameVal' :: Text Source #

(IsNamed name, SingI v) => IsNamed (Versioned v name :: Type) Source # 
Instance details

Defined in Wire.API.Federation.API

Methods

nameVal' :: Text Source #

nameVal :: forall {k} (name :: k). IsNamed name => Text Source #

fedClient :: forall (comp :: Component) name fedM (showcomp :: Symbol) api. (showcomp ~ ShowComponent comp, HasFedEndpoint comp api name, HasClient (fedM comp) api, KnownComponent comp, IsNamed name, FederationMonad fedM, Typeable (Client (fedM comp) api)) => Client (fedM comp) api Source #

Return a client for a named endpoint.

fedClientIn :: forall (comp :: Component) (name :: Symbol) m api. (HasFedEndpoint comp api name, HasClient m api) => Client m api Source #

Re-exports

data Component Source #

Constructors

Brig 
Galley 
Cargohold 

Instances

Instances details
Arbitrary Component 
Instance details

Defined in Wire.API.Component

FromJSON Component 
Instance details

Defined in Wire.API.Component

ToJSON Component 
Instance details

Defined in Wire.API.Component

Generic Component 
Instance details

Defined in Wire.API.Component

Associated Types

type Rep Component :: Type -> Type #

Show Component 
Instance details

Defined in Wire.API.Component

Eq Component 
Instance details

Defined in Wire.API.Component

FromHttpApiData Component 
Instance details

Defined in Wire.API.Component

ToHttpApiData Component 
Instance details

Defined in Wire.API.Component

ToSchema Component 
Instance details

Defined in Wire.API.Component

type Rep Component 
Instance details

Defined in Wire.API.Component

type Rep Component = D1 ('MetaData "Component" "Wire.API.Component" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "Brig" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Galley" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Cargohold" 'PrefixI 'False) (U1 :: Type -> Type)))