wire-api-0.1.0
Safe HaskellSafe-Inferred
LanguageGHC2021

Wire.API.Call.Config

Synopsis

RTCConfiguration

data RTCConfiguration Source #

A configuration object resembling "RTCConfiguration"

The "ttl" field is a proprietary extension The "sft_servers" field is a proprietary extension

cf. https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/RTCPeerConnection#RTCConfiguration_dictionary

Instances

Instances details
Arbitrary RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

Generic RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep RTCConfiguration :: Type -> Type #

Show RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

Eq RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep RTCConfiguration Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep RTCConfiguration = D1 ('MetaData "RTCConfiguration" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "RTCConfiguration" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_rtcConfIceServers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (NonEmpty RTCIceServer)) :*: S1 ('MetaSel ('Just "_rtcConfSftServers") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe (NonEmpty SFTServer)))) :*: (S1 ('MetaSel ('Just "_rtcConfTTL") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "_rtcConfSftServersAll") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe [AuthSFTServer])) :*: S1 ('MetaSel ('Just "_rtcConfIsFederating") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Bool))))))

RTCIceServer

data RTCIceServer Source #

A configuration object resembling "RTCIceServer"

cf. https://developer.mozilla.org/en-US/docs/Web/API/RTCIceServer

Instances

Instances details
Arbitrary RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

Generic RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep RTCIceServer :: Type -> Type #

Show RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

Eq RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep RTCIceServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep RTCIceServer = D1 ('MetaData "RTCIceServer" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "RTCIceServer" 'PrefixI 'True) (S1 ('MetaSel ('Just "_iceURLs") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (NonEmpty TurnURI)) :*: (S1 ('MetaSel ('Just "_iceUsername") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TurnUsername) :*: S1 ('MetaSel ('Just "_iceCredential") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 AsciiBase64))))

TurnURI

data TurnURI Source #

TURN server URI as described in https://tools.ietf.org/html/rfc7065, minus ext | | turnURI = scheme ":" host [ ":" port ] | [ "?transport=" transport ] | scheme = "turn" / "turns" | transport = "udp" "tcp" transport-ext | transport-ext = 1*unreserved

FUTUREWORK: Can contain, but refuses to deserialize IPv6 hosts, see parseTurnURI and the Arbitrary instance. Please fix this.

Instances

Instances details
Arbitrary TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

Generic TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep TurnURI :: Type -> Type #

Methods

from :: TurnURI -> Rep TurnURI x #

to :: Rep TurnURI x -> TurnURI #

Show TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

FromByteString TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

parser :: Parser TurnURI Source #

ToByteString TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

Eq TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

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

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

Ord TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnURI Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnURI = D1 ('MetaData "TurnURI" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "TurnURI" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_turiScheme") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Scheme) :*: S1 ('MetaSel ('Just "_turiHost") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TurnHost)) :*: (S1 ('MetaSel ('Just "_turiPort") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Port) :*: S1 ('MetaSel ('Just "_turiTransport") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe Transport)))))

data Scheme Source #

Constructors

SchemeTurn 
SchemeTurns 

Instances

Instances details
Arbitrary Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

Generic Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep Scheme :: Type -> Type #

Methods

from :: Scheme -> Rep Scheme x #

to :: Rep Scheme x -> Scheme #

Show Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

FromByteString Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

parser :: Parser Scheme Source #

ToByteString Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

Eq Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

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

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

Ord Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep Scheme Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep Scheme = D1 ('MetaData "Scheme" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "SchemeTurn" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "SchemeTurns" 'PrefixI 'False) (U1 :: Type -> Type))

data Transport Source #

Constructors

TransportUDP 
TransportTCP 

Instances

Instances details
Arbitrary Transport Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON Transport Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON Transport Source # 
Instance details

Defined in Wire.API.Call.Config

Generic Transport Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep Transport :: Type -> Type #

Show Transport Source # 
Instance details

Defined in Wire.API.Call.Config

FromByteString Transport Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

parser :: Parser Transport Source #

ToByteString Transport Source # 
Instance details

Defined in Wire.API.Call.Config

Eq Transport Source # 
Instance details

Defined in Wire.API.Call.Config

Ord Transport Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema Transport Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema Transport Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep Transport Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep Transport = D1 ('MetaData "Transport" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "TransportUDP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TransportTCP" 'PrefixI 'False) (U1 :: Type -> Type))

data TurnHost Source #

Instances

Instances details
Arbitrary TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

Generic TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep TurnHost :: Type -> Type #

Methods

from :: TurnHost -> Rep TurnHost x #

to :: Rep TurnHost x -> TurnHost #

Show TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

FromByteString TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

Methods

parser :: Parser TurnHost Source #

ToByteString TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

Eq TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

Ord TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnHost Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnHost = D1 ('MetaData "TurnHost" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "TurnHostIp" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 IpAddr)) :+: C1 ('MetaCons "TurnHostName" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)))

SFTUsername

data SFTUsername Source #

Instances

Instances details
Arbitrary SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Generic SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep SFTUsername :: Type -> Type #

Show SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToByteString SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Eq SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Ord SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep SFTUsername Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep SFTUsername = D1 ('MetaData "SFTUsername" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "SFTUsername" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_suExpiresAt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 POSIXTime) :*: S1 ('MetaSel ('Just "_suVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word)) :*: (S1 ('MetaSel ('Just "_suKeyindex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "_suShared") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Bool) :*: S1 ('MetaSel ('Just "_suRandom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)))))

TurnUsername

data TurnUsername Source #

Instances

Instances details
Arbitrary TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Generic TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep TurnUsername :: Type -> Type #

Show TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToByteString TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

Eq TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnUsername Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep TurnUsername = D1 ('MetaData "TurnUsername" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "TurnUsername" 'PrefixI 'True) ((S1 ('MetaSel ('Just "_tuExpiresAt") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 POSIXTime) :*: S1 ('MetaSel ('Just "_tuVersion") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word)) :*: (S1 ('MetaSel ('Just "_tuKeyindex") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Word32) :*: (S1 ('MetaSel ('Just "_tuT") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Char) :*: S1 ('MetaSel ('Just "_tuRandom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Text)))))

SFTServer

data SFTServer Source #

Instances

Instances details
Arbitrary SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Generic SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep SFTServer :: Type -> Type #

Show SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Eq SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Ord SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep SFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep SFTServer = D1 ('MetaData "SFTServer" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'True) (C1 ('MetaCons "SFTServer" 'PrefixI 'True) (S1 ('MetaSel ('Just "_sftURL") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 HttpsUrl)))

AuthSFTServer

data AuthSFTServer Source #

Instances

Instances details
Arbitrary AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

FromJSON AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToJSON AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Generic AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Associated Types

type Rep AuthSFTServer :: Type -> Type #

Show AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Eq AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

Ord AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

ToSchema AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep AuthSFTServer Source # 
Instance details

Defined in Wire.API.Call.Config

type Rep AuthSFTServer = D1 ('MetaData "AuthSFTServer" "Wire.API.Call.Config" "wire-api-0.1.0-EbZS9CKNOfZ8BBy5DRJfXi" 'False) (C1 ('MetaCons "AuthSFTServer" 'PrefixI 'True) (S1 ('MetaSel ('Just "_authURL") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 HttpsUrl) :*: (S1 ('MetaSel ('Just "_authUsername") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe SFTUsername)) :*: S1 ('MetaSel ('Just "_authCredential") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (Maybe AsciiBase64)))))

convenience

limitServers :: [TurnURI] -> Int -> [TurnURI] Source #

given a list of URIs and a size, limit URIs with order priority from highest to lowest: UDP -> TLS -> TCP i.e. (if enough servers of each type are available) 1 -> 1x UDP 2 -> 1x UDP, 1x TLS 3 -> 1x UDP, 1x TLS, 1x TCP 4 -> 2x UDP, 1x TLS, 1x TCP 5 -> 2x UDP, 2x TLS, 1x TCP ... etc if not enough servers are available, prefer udp, then tls