{-# LANGUAGE TemplateHaskell #-}
module Wire.API.Routes.FederationDomainConfig
( FederationDomainConfig (..),
FederationDomainConfigs (..),
defFederationDomainConfigs,
FederationStrategy (..),
FederationRemoteTeam (..),
FederationRestriction (..),
)
where
import Control.Lens (makePrisms, (?~))
import Control.Lens.Tuple (_1)
import Data.Aeson (FromJSON, ToJSON)
import Data.Domain (Domain)
import Data.Id
import Data.OpenApi qualified as S
import Data.Schema
import GHC.Generics
import Imports
import Wire.API.User.Search (FederatedUserSearchPolicy)
import Wire.Arbitrary (Arbitrary, GenericUniform (..))
data FederationRestriction = FederationRestrictionAllowAll | FederationRestrictionByTeam [TeamId]
deriving (FederationRestriction -> FederationRestriction -> Bool
(FederationRestriction -> FederationRestriction -> Bool)
-> (FederationRestriction -> FederationRestriction -> Bool)
-> Eq FederationRestriction
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationRestriction -> FederationRestriction -> Bool
== :: FederationRestriction -> FederationRestriction -> Bool
$c/= :: FederationRestriction -> FederationRestriction -> Bool
/= :: FederationRestriction -> FederationRestriction -> Bool
Eq, Int -> FederationRestriction -> ShowS
[FederationRestriction] -> ShowS
FederationRestriction -> String
(Int -> FederationRestriction -> ShowS)
-> (FederationRestriction -> String)
-> ([FederationRestriction] -> ShowS)
-> Show FederationRestriction
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FederationRestriction -> ShowS
showsPrec :: Int -> FederationRestriction -> ShowS
$cshow :: FederationRestriction -> String
show :: FederationRestriction -> String
$cshowList :: [FederationRestriction] -> ShowS
showList :: [FederationRestriction] -> ShowS
Show, (forall x. FederationRestriction -> Rep FederationRestriction x)
-> (forall x. Rep FederationRestriction x -> FederationRestriction)
-> Generic FederationRestriction
forall x. Rep FederationRestriction x -> FederationRestriction
forall x. FederationRestriction -> Rep FederationRestriction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FederationRestriction -> Rep FederationRestriction x
from :: forall x. FederationRestriction -> Rep FederationRestriction x
$cto :: forall x. Rep FederationRestriction x -> FederationRestriction
to :: forall x. Rep FederationRestriction x -> FederationRestriction
Generic, Eq FederationRestriction
Eq FederationRestriction =>
(FederationRestriction -> FederationRestriction -> Ordering)
-> (FederationRestriction -> FederationRestriction -> Bool)
-> (FederationRestriction -> FederationRestriction -> Bool)
-> (FederationRestriction -> FederationRestriction -> Bool)
-> (FederationRestriction -> FederationRestriction -> Bool)
-> (FederationRestriction
-> FederationRestriction -> FederationRestriction)
-> (FederationRestriction
-> FederationRestriction -> FederationRestriction)
-> Ord FederationRestriction
FederationRestriction -> FederationRestriction -> Bool
FederationRestriction -> FederationRestriction -> Ordering
FederationRestriction
-> FederationRestriction -> FederationRestriction
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FederationRestriction -> FederationRestriction -> Ordering
compare :: FederationRestriction -> FederationRestriction -> Ordering
$c< :: FederationRestriction -> FederationRestriction -> Bool
< :: FederationRestriction -> FederationRestriction -> Bool
$c<= :: FederationRestriction -> FederationRestriction -> Bool
<= :: FederationRestriction -> FederationRestriction -> Bool
$c> :: FederationRestriction -> FederationRestriction -> Bool
> :: FederationRestriction -> FederationRestriction -> Bool
$c>= :: FederationRestriction -> FederationRestriction -> Bool
>= :: FederationRestriction -> FederationRestriction -> Bool
$cmax :: FederationRestriction
-> FederationRestriction -> FederationRestriction
max :: FederationRestriction
-> FederationRestriction -> FederationRestriction
$cmin :: FederationRestriction
-> FederationRestriction -> FederationRestriction
min :: FederationRestriction
-> FederationRestriction -> FederationRestriction
Ord)
deriving (Gen FederationRestriction
Gen FederationRestriction
-> (FederationRestriction -> [FederationRestriction])
-> Arbitrary FederationRestriction
FederationRestriction -> [FederationRestriction]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen FederationRestriction
arbitrary :: Gen FederationRestriction
$cshrink :: FederationRestriction -> [FederationRestriction]
shrink :: FederationRestriction -> [FederationRestriction]
Arbitrary) via (GenericUniform FederationRestriction)
makePrisms ''FederationRestriction
data FederationRestrictionTag = FederationRestrictionAllowAllTag | FederationRestrictionByTeamTag
deriving (FederationRestrictionTag -> FederationRestrictionTag -> Bool
(FederationRestrictionTag -> FederationRestrictionTag -> Bool)
-> (FederationRestrictionTag -> FederationRestrictionTag -> Bool)
-> Eq FederationRestrictionTag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationRestrictionTag -> FederationRestrictionTag -> Bool
== :: FederationRestrictionTag -> FederationRestrictionTag -> Bool
$c/= :: FederationRestrictionTag -> FederationRestrictionTag -> Bool
/= :: FederationRestrictionTag -> FederationRestrictionTag -> Bool
Eq, Int -> FederationRestrictionTag
FederationRestrictionTag -> Int
FederationRestrictionTag -> [FederationRestrictionTag]
FederationRestrictionTag -> FederationRestrictionTag
FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag]
FederationRestrictionTag
-> FederationRestrictionTag
-> FederationRestrictionTag
-> [FederationRestrictionTag]
(FederationRestrictionTag -> FederationRestrictionTag)
-> (FederationRestrictionTag -> FederationRestrictionTag)
-> (Int -> FederationRestrictionTag)
-> (FederationRestrictionTag -> Int)
-> (FederationRestrictionTag -> [FederationRestrictionTag])
-> (FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag])
-> (FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag])
-> (FederationRestrictionTag
-> FederationRestrictionTag
-> FederationRestrictionTag
-> [FederationRestrictionTag])
-> Enum FederationRestrictionTag
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: FederationRestrictionTag -> FederationRestrictionTag
succ :: FederationRestrictionTag -> FederationRestrictionTag
$cpred :: FederationRestrictionTag -> FederationRestrictionTag
pred :: FederationRestrictionTag -> FederationRestrictionTag
$ctoEnum :: Int -> FederationRestrictionTag
toEnum :: Int -> FederationRestrictionTag
$cfromEnum :: FederationRestrictionTag -> Int
fromEnum :: FederationRestrictionTag -> Int
$cenumFrom :: FederationRestrictionTag -> [FederationRestrictionTag]
enumFrom :: FederationRestrictionTag -> [FederationRestrictionTag]
$cenumFromThen :: FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag]
enumFromThen :: FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag]
$cenumFromTo :: FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag]
enumFromTo :: FederationRestrictionTag
-> FederationRestrictionTag -> [FederationRestrictionTag]
$cenumFromThenTo :: FederationRestrictionTag
-> FederationRestrictionTag
-> FederationRestrictionTag
-> [FederationRestrictionTag]
enumFromThenTo :: FederationRestrictionTag
-> FederationRestrictionTag
-> FederationRestrictionTag
-> [FederationRestrictionTag]
Enum, FederationRestrictionTag
FederationRestrictionTag
-> FederationRestrictionTag -> Bounded FederationRestrictionTag
forall a. a -> a -> Bounded a
$cminBound :: FederationRestrictionTag
minBound :: FederationRestrictionTag
$cmaxBound :: FederationRestrictionTag
maxBound :: FederationRestrictionTag
Bounded)
deriving via Schema FederationRestriction instance (S.ToSchema FederationRestriction)
deriving via Schema FederationRestriction instance (FromJSON FederationRestriction)
deriving via Schema FederationRestriction instance (ToJSON FederationRestriction)
tagSchema :: ValueSchema NamedSwaggerDoc FederationRestrictionTag
tagSchema :: ValueSchema NamedSwaggerDoc FederationRestrictionTag
tagSchema =
forall v doc a b.
(With v, HasEnum v doc) =>
Text
-> SchemaP [Value] v (Alt Maybe v) a b
-> SchemaP doc Value Value a b
enum @Text Text
"FederationRestrictionTag" (SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag
-> ValueSchema NamedSwaggerDoc FederationRestrictionTag)
-> SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag
-> ValueSchema NamedSwaggerDoc FederationRestrictionTag
forall a b. (a -> b) -> a -> b
$
[SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag]
-> SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag
forall a. Monoid a => [a] -> a
mconcat [Text
-> FederationRestrictionTag
-> SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag
forall a b.
(ToJSON a, Eq a, Eq b) =>
a -> b -> SchemaP [Value] a (Alt Maybe a) b b
element Text
"allow_all" FederationRestrictionTag
FederationRestrictionAllowAllTag, Text
-> FederationRestrictionTag
-> SchemaP
[Value]
Text
(Alt Maybe Text)
FederationRestrictionTag
FederationRestrictionTag
forall a b.
(ToJSON a, Eq a, Eq b) =>
a -> b -> SchemaP [Value] a (Alt Maybe a) b b
element Text
"restrict_by_team" FederationRestrictionTag
FederationRestrictionByTeamTag]
instance ToSchema FederationRestriction where
schema :: ValueSchema NamedSwaggerDoc FederationRestriction
schema =
Text
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
-> ValueSchema NamedSwaggerDoc FederationRestriction
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"FederationRestriction" (SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
-> ValueSchema NamedSwaggerDoc FederationRestriction)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
-> ValueSchema NamedSwaggerDoc FederationRestriction
forall a b. (a -> b) -> a -> b
$
(FederationRestrictionTag, FederationRestriction)
-> FederationRestriction
fromTagged
((FederationRestrictionTag, FederationRestriction)
-> FederationRestriction)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
(FederationRestrictionTag, FederationRestriction)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> FederationRestriction
-> (FederationRestrictionTag, FederationRestriction)
toTagged
(FederationRestriction
-> (FederationRestrictionTag, FederationRestriction))
-> SchemaP
SwaggerDoc
Object
[Pair]
(FederationRestrictionTag, FederationRestriction)
(FederationRestrictionTag, FederationRestriction)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
(FederationRestrictionTag, FederationRestriction)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP
SwaggerDoc
Object
[Pair]
(FederationRestrictionTag, FederationRestriction)
FederationRestrictionTag
-> SchemaP
SwaggerDoc
(Object, FederationRestrictionTag)
[Pair]
(FederationRestrictionTag, FederationRestriction)
FederationRestriction
-> SchemaP
SwaggerDoc
Object
[Pair]
(FederationRestrictionTag, FederationRestriction)
(FederationRestrictionTag, FederationRestriction)
forall d w v a b c.
(Monoid d, Monoid w) =>
SchemaP d v w a b
-> SchemaP d (v, b) w a c -> SchemaP d v w a (b, c)
bind
((FederationRestrictionTag, FederationRestriction)
-> FederationRestrictionTag
forall a b. (a, b) -> a
fst ((FederationRestrictionTag, FederationRestriction)
-> FederationRestrictionTag)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestrictionTag
FederationRestrictionTag
-> SchemaP
SwaggerDoc
Object
[Pair]
(FederationRestrictionTag, FederationRestriction)
FederationRestrictionTag
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> ValueSchema NamedSwaggerDoc FederationRestrictionTag
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestrictionTag
FederationRestrictionTag
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"tag" ValueSchema NamedSwaggerDoc FederationRestrictionTag
tagSchema)
((FederationRestrictionTag, FederationRestriction)
-> FederationRestriction
forall a b. (a, b) -> b
snd ((FederationRestrictionTag, FederationRestriction)
-> FederationRestriction)
-> SchemaP
SwaggerDoc
(Object, FederationRestrictionTag)
[Pair]
FederationRestriction
FederationRestriction
-> SchemaP
SwaggerDoc
(Object, FederationRestrictionTag)
[Pair]
(FederationRestrictionTag, FederationRestriction)
FederationRestriction
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Lens
(Object, FederationRestrictionTag)
(Value, FederationRestrictionTag)
Object
Value
-> Text
-> SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction
-> SchemaP
SwaggerDoc
(Object, FederationRestrictionTag)
[Pair]
FederationRestriction
FederationRestriction
forall doc' doc v v' a b.
HasField doc' doc =>
Lens v v' Object Value
-> Text -> SchemaP doc' v' Value a b -> SchemaP doc v [Pair] a b
fieldOver (Object -> f Value)
-> (Object, FederationRestrictionTag)
-> f (Value, FederationRestrictionTag)
forall s t a b. Field1 s t a b => Lens s t a b
Lens
(Object, FederationRestrictionTag)
(Value, FederationRestrictionTag)
Object
Value
_1 Text
"value" SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction
untaggedSchema)
where
toTagged :: FederationRestriction -> (FederationRestrictionTag, FederationRestriction)
toTagged :: FederationRestriction
-> (FederationRestrictionTag, FederationRestriction)
toTagged d :: FederationRestriction
d@(FederationRestriction
FederationRestrictionAllowAll) = (FederationRestrictionTag
FederationRestrictionAllowAllTag, FederationRestriction
d)
toTagged d :: FederationRestriction
d@(FederationRestrictionByTeam [TeamId]
_) = (FederationRestrictionTag
FederationRestrictionByTeamTag, FederationRestriction
d)
fromTagged :: (FederationRestrictionTag, FederationRestriction) -> FederationRestriction
fromTagged :: (FederationRestrictionTag, FederationRestriction)
-> FederationRestriction
fromTagged = (FederationRestrictionTag, FederationRestriction)
-> FederationRestriction
forall a b. (a, b) -> b
snd
untaggedSchema :: SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction
untaggedSchema = (FederationRestrictionTag
-> SchemaP
SwaggerDoc Value Value FederationRestriction FederationRestriction)
-> SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction
forall t d v w a b.
(Bounded t, Enum t, Monoid d) =>
(t -> SchemaP d v w a b) -> SchemaP d (v, t) w a b
dispatch ((FederationRestrictionTag
-> SchemaP
SwaggerDoc Value Value FederationRestriction FederationRestriction)
-> SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction)
-> (FederationRestrictionTag
-> SchemaP
SwaggerDoc Value Value FederationRestriction FederationRestriction)
-> SchemaP
SwaggerDoc
(Value, FederationRestrictionTag)
Value
FederationRestriction
FederationRestriction
forall a b. (a -> b) -> a -> b
$ \case
FederationRestrictionTag
FederationRestrictionAllowAllTag -> Prism' FederationRestriction ()
-> SchemaP SwaggerDoc Value Value () ()
-> SchemaP
SwaggerDoc Value Value FederationRestriction FederationRestriction
forall b b' a a' ss v m.
Prism b b' a a' -> SchemaP ss v m a a' -> SchemaP ss v m b b'
tag p () (f ()) -> p FederationRestriction (f FederationRestriction)
Prism' FederationRestriction ()
_FederationRestrictionAllowAll SchemaP SwaggerDoc Value Value () ()
forall d. Monoid d => ValueSchemaP d () ()
null_
FederationRestrictionTag
FederationRestrictionByTeamTag -> Prism' FederationRestriction [TeamId]
-> SchemaP SwaggerDoc Value Value [TeamId] [TeamId]
-> SchemaP
SwaggerDoc Value Value FederationRestriction FederationRestriction
forall b b' a a' ss v m.
Prism b b' a a' -> SchemaP ss v m a a' -> SchemaP ss v m b b'
tag p [TeamId] (f [TeamId])
-> p FederationRestriction (f FederationRestriction)
Prism' FederationRestriction [TeamId]
_FederationRestrictionByTeam (ValueSchema NamedSwaggerDoc TeamId
-> SchemaP SwaggerDoc Value Value [TeamId] [TeamId]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc TeamId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
data FederationDomainConfig = FederationDomainConfig
{ FederationDomainConfig -> Domain
domain :: Domain,
FederationDomainConfig -> FederatedUserSearchPolicy
searchPolicy :: FederatedUserSearchPolicy,
FederationDomainConfig -> FederationRestriction
restriction :: FederationRestriction
}
deriving (FederationDomainConfig -> FederationDomainConfig -> Bool
(FederationDomainConfig -> FederationDomainConfig -> Bool)
-> (FederationDomainConfig -> FederationDomainConfig -> Bool)
-> Eq FederationDomainConfig
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationDomainConfig -> FederationDomainConfig -> Bool
== :: FederationDomainConfig -> FederationDomainConfig -> Bool
$c/= :: FederationDomainConfig -> FederationDomainConfig -> Bool
/= :: FederationDomainConfig -> FederationDomainConfig -> Bool
Eq, Eq FederationDomainConfig
Eq FederationDomainConfig =>
(FederationDomainConfig -> FederationDomainConfig -> Ordering)
-> (FederationDomainConfig -> FederationDomainConfig -> Bool)
-> (FederationDomainConfig -> FederationDomainConfig -> Bool)
-> (FederationDomainConfig -> FederationDomainConfig -> Bool)
-> (FederationDomainConfig -> FederationDomainConfig -> Bool)
-> (FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig)
-> (FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig)
-> Ord FederationDomainConfig
FederationDomainConfig -> FederationDomainConfig -> Bool
FederationDomainConfig -> FederationDomainConfig -> Ordering
FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: FederationDomainConfig -> FederationDomainConfig -> Ordering
compare :: FederationDomainConfig -> FederationDomainConfig -> Ordering
$c< :: FederationDomainConfig -> FederationDomainConfig -> Bool
< :: FederationDomainConfig -> FederationDomainConfig -> Bool
$c<= :: FederationDomainConfig -> FederationDomainConfig -> Bool
<= :: FederationDomainConfig -> FederationDomainConfig -> Bool
$c> :: FederationDomainConfig -> FederationDomainConfig -> Bool
> :: FederationDomainConfig -> FederationDomainConfig -> Bool
$c>= :: FederationDomainConfig -> FederationDomainConfig -> Bool
>= :: FederationDomainConfig -> FederationDomainConfig -> Bool
$cmax :: FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig
max :: FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig
$cmin :: FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig
min :: FederationDomainConfig
-> FederationDomainConfig -> FederationDomainConfig
Ord, Int -> FederationDomainConfig -> ShowS
[FederationDomainConfig] -> ShowS
FederationDomainConfig -> String
(Int -> FederationDomainConfig -> ShowS)
-> (FederationDomainConfig -> String)
-> ([FederationDomainConfig] -> ShowS)
-> Show FederationDomainConfig
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FederationDomainConfig -> ShowS
showsPrec :: Int -> FederationDomainConfig -> ShowS
$cshow :: FederationDomainConfig -> String
show :: FederationDomainConfig -> String
$cshowList :: [FederationDomainConfig] -> ShowS
showList :: [FederationDomainConfig] -> ShowS
Show, (forall x. FederationDomainConfig -> Rep FederationDomainConfig x)
-> (forall x.
Rep FederationDomainConfig x -> FederationDomainConfig)
-> Generic FederationDomainConfig
forall x. Rep FederationDomainConfig x -> FederationDomainConfig
forall x. FederationDomainConfig -> Rep FederationDomainConfig x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FederationDomainConfig -> Rep FederationDomainConfig x
from :: forall x. FederationDomainConfig -> Rep FederationDomainConfig x
$cto :: forall x. Rep FederationDomainConfig x -> FederationDomainConfig
to :: forall x. Rep FederationDomainConfig x -> FederationDomainConfig
Generic)
deriving ([FederationDomainConfig] -> Value
[FederationDomainConfig] -> Encoding
FederationDomainConfig -> Value
FederationDomainConfig -> Encoding
(FederationDomainConfig -> Value)
-> (FederationDomainConfig -> Encoding)
-> ([FederationDomainConfig] -> Value)
-> ([FederationDomainConfig] -> Encoding)
-> ToJSON FederationDomainConfig
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: FederationDomainConfig -> Value
toJSON :: FederationDomainConfig -> Value
$ctoEncoding :: FederationDomainConfig -> Encoding
toEncoding :: FederationDomainConfig -> Encoding
$ctoJSONList :: [FederationDomainConfig] -> Value
toJSONList :: [FederationDomainConfig] -> Value
$ctoEncodingList :: [FederationDomainConfig] -> Encoding
toEncodingList :: [FederationDomainConfig] -> Encoding
ToJSON, Value -> Parser [FederationDomainConfig]
Value -> Parser FederationDomainConfig
(Value -> Parser FederationDomainConfig)
-> (Value -> Parser [FederationDomainConfig])
-> FromJSON FederationDomainConfig
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser FederationDomainConfig
parseJSON :: Value -> Parser FederationDomainConfig
$cparseJSONList :: Value -> Parser [FederationDomainConfig]
parseJSONList :: Value -> Parser [FederationDomainConfig]
FromJSON, Typeable FederationDomainConfig
Typeable FederationDomainConfig =>
(Proxy FederationDomainConfig
-> Declare (Definitions Schema) NamedSchema)
-> ToSchema FederationDomainConfig
Proxy FederationDomainConfig
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy FederationDomainConfig
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy FederationDomainConfig
-> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema FederationDomainConfig
deriving (Gen FederationDomainConfig
Gen FederationDomainConfig
-> (FederationDomainConfig -> [FederationDomainConfig])
-> Arbitrary FederationDomainConfig
FederationDomainConfig -> [FederationDomainConfig]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen FederationDomainConfig
arbitrary :: Gen FederationDomainConfig
$cshrink :: FederationDomainConfig -> [FederationDomainConfig]
shrink :: FederationDomainConfig -> [FederationDomainConfig]
Arbitrary) via (GenericUniform FederationDomainConfig)
instance ToSchema FederationDomainConfig where
schema :: ValueSchema NamedSwaggerDoc FederationDomainConfig
schema =
Text
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationDomainConfig
-> ValueSchema NamedSwaggerDoc FederationDomainConfig
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"FederationDomainConfig" (SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationDomainConfig
-> ValueSchema NamedSwaggerDoc FederationDomainConfig)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationDomainConfig
-> ValueSchema NamedSwaggerDoc FederationDomainConfig
forall a b. (a -> b) -> a -> b
$
Domain
-> FederatedUserSearchPolicy
-> FederationRestriction
-> FederationDomainConfig
FederationDomainConfig
(Domain
-> FederatedUserSearchPolicy
-> FederationRestriction
-> FederationDomainConfig)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig Domain
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
(FederatedUserSearchPolicy
-> FederationRestriction -> FederationDomainConfig)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> FederationDomainConfig -> Domain
domain (FederationDomainConfig -> Domain)
-> SchemaP SwaggerDoc Object [Pair] Domain Domain
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig Domain
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value Domain Domain
-> SchemaP SwaggerDoc Object [Pair] Domain Domain
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"domain" SchemaP NamedSwaggerDoc Value Value Domain Domain
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
(FederatedUserSearchPolicy
-> FederationRestriction -> FederationDomainConfig)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederatedUserSearchPolicy
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
(FederationRestriction -> FederationDomainConfig)
forall a b.
SchemaP SwaggerDoc Object [Pair] FederationDomainConfig (a -> b)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig a
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> FederationDomainConfig -> FederatedUserSearchPolicy
searchPolicy (FederationDomainConfig -> FederatedUserSearchPolicy)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederatedUserSearchPolicy
FederatedUserSearchPolicy
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederatedUserSearchPolicy
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc
Value
Value
FederatedUserSearchPolicy
FederatedUserSearchPolicy
-> SchemaP
SwaggerDoc
Object
[Pair]
FederatedUserSearchPolicy
FederatedUserSearchPolicy
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"search_policy" SchemaP
NamedSwaggerDoc
Value
Value
FederatedUserSearchPolicy
FederatedUserSearchPolicy
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
(FederationRestriction -> FederationDomainConfig)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationRestriction
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationDomainConfig
forall a b.
SchemaP SwaggerDoc Object [Pair] FederationDomainConfig (a -> b)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig a
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfig b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> FederationDomainConfig -> FederationRestriction
restriction (FederationDomainConfig -> FederationRestriction)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfig
FederationRestriction
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> ValueSchema NamedSwaggerDoc FederationRestriction
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationRestriction
FederationRestriction
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"restriction" ValueSchema NamedSwaggerDoc FederationRestriction
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
data FederationDomainConfigs = FederationDomainConfigs
{ FederationDomainConfigs -> FederationStrategy
strategy :: FederationStrategy,
FederationDomainConfigs -> [FederationDomainConfig]
remotes :: [FederationDomainConfig],
FederationDomainConfigs -> Int
updateInterval :: Int
}
deriving (Int -> FederationDomainConfigs -> ShowS
[FederationDomainConfigs] -> ShowS
FederationDomainConfigs -> String
(Int -> FederationDomainConfigs -> ShowS)
-> (FederationDomainConfigs -> String)
-> ([FederationDomainConfigs] -> ShowS)
-> Show FederationDomainConfigs
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FederationDomainConfigs -> ShowS
showsPrec :: Int -> FederationDomainConfigs -> ShowS
$cshow :: FederationDomainConfigs -> String
show :: FederationDomainConfigs -> String
$cshowList :: [FederationDomainConfigs] -> ShowS
showList :: [FederationDomainConfigs] -> ShowS
Show, (forall x.
FederationDomainConfigs -> Rep FederationDomainConfigs x)
-> (forall x.
Rep FederationDomainConfigs x -> FederationDomainConfigs)
-> Generic FederationDomainConfigs
forall x. Rep FederationDomainConfigs x -> FederationDomainConfigs
forall x. FederationDomainConfigs -> Rep FederationDomainConfigs x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FederationDomainConfigs -> Rep FederationDomainConfigs x
from :: forall x. FederationDomainConfigs -> Rep FederationDomainConfigs x
$cto :: forall x. Rep FederationDomainConfigs x -> FederationDomainConfigs
to :: forall x. Rep FederationDomainConfigs x -> FederationDomainConfigs
Generic, FederationDomainConfigs -> FederationDomainConfigs -> Bool
(FederationDomainConfigs -> FederationDomainConfigs -> Bool)
-> (FederationDomainConfigs -> FederationDomainConfigs -> Bool)
-> Eq FederationDomainConfigs
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationDomainConfigs -> FederationDomainConfigs -> Bool
== :: FederationDomainConfigs -> FederationDomainConfigs -> Bool
$c/= :: FederationDomainConfigs -> FederationDomainConfigs -> Bool
/= :: FederationDomainConfigs -> FederationDomainConfigs -> Bool
Eq)
deriving ([FederationDomainConfigs] -> Value
[FederationDomainConfigs] -> Encoding
FederationDomainConfigs -> Value
FederationDomainConfigs -> Encoding
(FederationDomainConfigs -> Value)
-> (FederationDomainConfigs -> Encoding)
-> ([FederationDomainConfigs] -> Value)
-> ([FederationDomainConfigs] -> Encoding)
-> ToJSON FederationDomainConfigs
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: FederationDomainConfigs -> Value
toJSON :: FederationDomainConfigs -> Value
$ctoEncoding :: FederationDomainConfigs -> Encoding
toEncoding :: FederationDomainConfigs -> Encoding
$ctoJSONList :: [FederationDomainConfigs] -> Value
toJSONList :: [FederationDomainConfigs] -> Value
$ctoEncodingList :: [FederationDomainConfigs] -> Encoding
toEncodingList :: [FederationDomainConfigs] -> Encoding
ToJSON, Value -> Parser [FederationDomainConfigs]
Value -> Parser FederationDomainConfigs
(Value -> Parser FederationDomainConfigs)
-> (Value -> Parser [FederationDomainConfigs])
-> FromJSON FederationDomainConfigs
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser FederationDomainConfigs
parseJSON :: Value -> Parser FederationDomainConfigs
$cparseJSONList :: Value -> Parser [FederationDomainConfigs]
parseJSONList :: Value -> Parser [FederationDomainConfigs]
FromJSON, Typeable FederationDomainConfigs
Typeable FederationDomainConfigs =>
(Proxy FederationDomainConfigs
-> Declare (Definitions Schema) NamedSchema)
-> ToSchema FederationDomainConfigs
Proxy FederationDomainConfigs
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy FederationDomainConfigs
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy FederationDomainConfigs
-> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema FederationDomainConfigs
deriving (Gen FederationDomainConfigs
Gen FederationDomainConfigs
-> (FederationDomainConfigs -> [FederationDomainConfigs])
-> Arbitrary FederationDomainConfigs
FederationDomainConfigs -> [FederationDomainConfigs]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen FederationDomainConfigs
arbitrary :: Gen FederationDomainConfigs
$cshrink :: FederationDomainConfigs -> [FederationDomainConfigs]
shrink :: FederationDomainConfigs -> [FederationDomainConfigs]
Arbitrary) via (GenericUniform FederationDomainConfigs)
defFederationDomainConfigs :: FederationDomainConfigs
defFederationDomainConfigs :: FederationDomainConfigs
defFederationDomainConfigs =
FederationDomainConfigs
{ $sel:strategy:FederationDomainConfigs :: FederationStrategy
strategy = FederationStrategy
AllowNone,
$sel:remotes:FederationDomainConfigs :: [FederationDomainConfig]
remotes = [],
$sel:updateInterval:FederationDomainConfigs :: Int
updateInterval = Int
10
}
instance ToSchema FederationDomainConfigs where
schema :: ValueSchema NamedSwaggerDoc FederationDomainConfigs
schema =
Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> ObjectSchema SwaggerDoc FederationDomainConfigs
-> ValueSchema NamedSwaggerDoc FederationDomainConfigs
forall doc doc' a.
HasObject doc doc' =>
Text -> (doc' -> doc') -> ObjectSchema doc a -> ValueSchema doc' a
objectWithDocModifier
Text
"FederationDomainConfigs"
((Maybe Text -> Identity (Maybe Text))
-> NamedSwaggerDoc -> Identity NamedSwaggerDoc
forall s a. HasDescription s a => Lens' s a
Lens' NamedSwaggerDoc (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
-> NamedSwaggerDoc -> Identity NamedSwaggerDoc)
-> Text -> NamedSwaggerDoc -> NamedSwaggerDoc
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"See https://docs.wire.com/understand/federation/backend-communication.html#configuring-remote-connections.")
(ObjectSchema SwaggerDoc FederationDomainConfigs
-> ValueSchema NamedSwaggerDoc FederationDomainConfigs)
-> ObjectSchema SwaggerDoc FederationDomainConfigs
-> ValueSchema NamedSwaggerDoc FederationDomainConfigs
forall a b. (a -> b) -> a -> b
$ FederationStrategy
-> [FederationDomainConfig] -> Int -> FederationDomainConfigs
FederationDomainConfigs
(FederationStrategy
-> [FederationDomainConfig] -> Int -> FederationDomainConfigs)
-> SchemaP
SwaggerDoc Object [Pair] FederationDomainConfigs FederationStrategy
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
([FederationDomainConfig] -> Int -> FederationDomainConfigs)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> FederationDomainConfigs -> FederationStrategy
strategy (FederationDomainConfigs -> FederationStrategy)
-> SchemaP
SwaggerDoc Object [Pair] FederationStrategy FederationStrategy
-> SchemaP
SwaggerDoc Object [Pair] FederationDomainConfigs FederationStrategy
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc Value Value FederationStrategy FederationStrategy
-> SchemaP
SwaggerDoc Object [Pair] FederationStrategy FederationStrategy
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"strategy" SchemaP
NamedSwaggerDoc Value Value FederationStrategy FederationStrategy
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
([FederationDomainConfig] -> Int -> FederationDomainConfigs)
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
[FederationDomainConfig]
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
(Int -> FederationDomainConfigs)
forall a b.
SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs (a -> b)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs a
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> FederationDomainConfigs -> [FederationDomainConfig]
remotes (FederationDomainConfigs -> [FederationDomainConfig])
-> SchemaP
SwaggerDoc
Object
[Pair]
[FederationDomainConfig]
[FederationDomainConfig]
-> SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
[FederationDomainConfig]
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
SwaggerDoc
Value
Value
[FederationDomainConfig]
[FederationDomainConfig]
-> SchemaP
SwaggerDoc
Object
[Pair]
[FederationDomainConfig]
[FederationDomainConfig]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"remotes" (ValueSchema NamedSwaggerDoc FederationDomainConfig
-> SchemaP
SwaggerDoc
Value
Value
[FederationDomainConfig]
[FederationDomainConfig]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc FederationDomainConfig
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
FederationDomainConfigs
(Int -> FederationDomainConfigs)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs Int
-> ObjectSchema SwaggerDoc FederationDomainConfigs
forall a b.
SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs (a -> b)
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs a
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> FederationDomainConfigs -> Int
updateInterval (FederationDomainConfigs -> Int)
-> SchemaP SwaggerDoc Object [Pair] Int Int
-> SchemaP SwaggerDoc Object [Pair] FederationDomainConfigs Int
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value Int Int
-> SchemaP SwaggerDoc Object [Pair] Int Int
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"update_interval" SchemaP NamedSwaggerDoc Value Value Int Int
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
data FederationStrategy
=
AllowNone
|
AllowAll
|
AllowDynamic
deriving (FederationStrategy -> FederationStrategy -> Bool
(FederationStrategy -> FederationStrategy -> Bool)
-> (FederationStrategy -> FederationStrategy -> Bool)
-> Eq FederationStrategy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationStrategy -> FederationStrategy -> Bool
== :: FederationStrategy -> FederationStrategy -> Bool
$c/= :: FederationStrategy -> FederationStrategy -> Bool
/= :: FederationStrategy -> FederationStrategy -> Bool
Eq, Int -> FederationStrategy -> ShowS
[FederationStrategy] -> ShowS
FederationStrategy -> String
(Int -> FederationStrategy -> ShowS)
-> (FederationStrategy -> String)
-> ([FederationStrategy] -> ShowS)
-> Show FederationStrategy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FederationStrategy -> ShowS
showsPrec :: Int -> FederationStrategy -> ShowS
$cshow :: FederationStrategy -> String
show :: FederationStrategy -> String
$cshowList :: [FederationStrategy] -> ShowS
showList :: [FederationStrategy] -> ShowS
Show, (forall x. FederationStrategy -> Rep FederationStrategy x)
-> (forall x. Rep FederationStrategy x -> FederationStrategy)
-> Generic FederationStrategy
forall x. Rep FederationStrategy x -> FederationStrategy
forall x. FederationStrategy -> Rep FederationStrategy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FederationStrategy -> Rep FederationStrategy x
from :: forall x. FederationStrategy -> Rep FederationStrategy x
$cto :: forall x. Rep FederationStrategy x -> FederationStrategy
to :: forall x. Rep FederationStrategy x -> FederationStrategy
Generic)
deriving ([FederationStrategy] -> Value
[FederationStrategy] -> Encoding
FederationStrategy -> Value
FederationStrategy -> Encoding
(FederationStrategy -> Value)
-> (FederationStrategy -> Encoding)
-> ([FederationStrategy] -> Value)
-> ([FederationStrategy] -> Encoding)
-> ToJSON FederationStrategy
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: FederationStrategy -> Value
toJSON :: FederationStrategy -> Value
$ctoEncoding :: FederationStrategy -> Encoding
toEncoding :: FederationStrategy -> Encoding
$ctoJSONList :: [FederationStrategy] -> Value
toJSONList :: [FederationStrategy] -> Value
$ctoEncodingList :: [FederationStrategy] -> Encoding
toEncodingList :: [FederationStrategy] -> Encoding
ToJSON, Value -> Parser [FederationStrategy]
Value -> Parser FederationStrategy
(Value -> Parser FederationStrategy)
-> (Value -> Parser [FederationStrategy])
-> FromJSON FederationStrategy
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser FederationStrategy
parseJSON :: Value -> Parser FederationStrategy
$cparseJSONList :: Value -> Parser [FederationStrategy]
parseJSONList :: Value -> Parser [FederationStrategy]
FromJSON, Typeable FederationStrategy
Typeable FederationStrategy =>
(Proxy FederationStrategy
-> Declare (Definitions Schema) NamedSchema)
-> ToSchema FederationStrategy
Proxy FederationStrategy
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy FederationStrategy
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy FederationStrategy
-> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema FederationStrategy
deriving (Gen FederationStrategy
Gen FederationStrategy
-> (FederationStrategy -> [FederationStrategy])
-> Arbitrary FederationStrategy
FederationStrategy -> [FederationStrategy]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen FederationStrategy
arbitrary :: Gen FederationStrategy
$cshrink :: FederationStrategy -> [FederationStrategy]
shrink :: FederationStrategy -> [FederationStrategy]
Arbitrary) via (GenericUniform FederationStrategy)
instance ToSchema FederationStrategy where
schema :: SchemaP
NamedSwaggerDoc Value Value FederationStrategy FederationStrategy
schema =
forall v doc a b.
(With v, HasEnum v doc) =>
Text
-> SchemaP [Value] v (Alt Maybe v) a b
-> SchemaP doc Value Value a b
enum @Text Text
"FederationStrategy" (SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
-> SchemaP
NamedSwaggerDoc Value Value FederationStrategy FederationStrategy)
-> SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
-> SchemaP
NamedSwaggerDoc Value Value FederationStrategy FederationStrategy
forall a b. (a -> b) -> a -> b
$
[SchemaP
[Value]
Text
(Alt Maybe Text)
FederationStrategy
FederationStrategy]
-> SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
forall a. Monoid a => [a] -> a
mconcat
[ Text
-> FederationStrategy
-> SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
forall a b.
(ToJSON a, Eq a, Eq b) =>
a -> b -> SchemaP [Value] a (Alt Maybe a) b b
element Text
"allowNone" FederationStrategy
AllowNone,
Text
-> FederationStrategy
-> SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
forall a b.
(ToJSON a, Eq a, Eq b) =>
a -> b -> SchemaP [Value] a (Alt Maybe a) b b
element Text
"allowAll" FederationStrategy
AllowAll,
Text
-> FederationStrategy
-> SchemaP
[Value] Text (Alt Maybe Text) FederationStrategy FederationStrategy
forall a b.
(ToJSON a, Eq a, Eq b) =>
a -> b -> SchemaP [Value] a (Alt Maybe a) b b
element Text
"allowDynamic" FederationStrategy
AllowDynamic
]
newtype FederationRemoteTeam = FederationRemoteTeam
{ FederationRemoteTeam -> TeamId
teamId :: TeamId
}
deriving (FederationRemoteTeam -> FederationRemoteTeam -> Bool
(FederationRemoteTeam -> FederationRemoteTeam -> Bool)
-> (FederationRemoteTeam -> FederationRemoteTeam -> Bool)
-> Eq FederationRemoteTeam
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: FederationRemoteTeam -> FederationRemoteTeam -> Bool
== :: FederationRemoteTeam -> FederationRemoteTeam -> Bool
$c/= :: FederationRemoteTeam -> FederationRemoteTeam -> Bool
/= :: FederationRemoteTeam -> FederationRemoteTeam -> Bool
Eq, Int -> FederationRemoteTeam -> ShowS
[FederationRemoteTeam] -> ShowS
FederationRemoteTeam -> String
(Int -> FederationRemoteTeam -> ShowS)
-> (FederationRemoteTeam -> String)
-> ([FederationRemoteTeam] -> ShowS)
-> Show FederationRemoteTeam
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> FederationRemoteTeam -> ShowS
showsPrec :: Int -> FederationRemoteTeam -> ShowS
$cshow :: FederationRemoteTeam -> String
show :: FederationRemoteTeam -> String
$cshowList :: [FederationRemoteTeam] -> ShowS
showList :: [FederationRemoteTeam] -> ShowS
Show, (forall x. FederationRemoteTeam -> Rep FederationRemoteTeam x)
-> (forall x. Rep FederationRemoteTeam x -> FederationRemoteTeam)
-> Generic FederationRemoteTeam
forall x. Rep FederationRemoteTeam x -> FederationRemoteTeam
forall x. FederationRemoteTeam -> Rep FederationRemoteTeam x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. FederationRemoteTeam -> Rep FederationRemoteTeam x
from :: forall x. FederationRemoteTeam -> Rep FederationRemoteTeam x
$cto :: forall x. Rep FederationRemoteTeam x -> FederationRemoteTeam
to :: forall x. Rep FederationRemoteTeam x -> FederationRemoteTeam
Generic)
deriving ([FederationRemoteTeam] -> Value
[FederationRemoteTeam] -> Encoding
FederationRemoteTeam -> Value
FederationRemoteTeam -> Encoding
(FederationRemoteTeam -> Value)
-> (FederationRemoteTeam -> Encoding)
-> ([FederationRemoteTeam] -> Value)
-> ([FederationRemoteTeam] -> Encoding)
-> ToJSON FederationRemoteTeam
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: FederationRemoteTeam -> Value
toJSON :: FederationRemoteTeam -> Value
$ctoEncoding :: FederationRemoteTeam -> Encoding
toEncoding :: FederationRemoteTeam -> Encoding
$ctoJSONList :: [FederationRemoteTeam] -> Value
toJSONList :: [FederationRemoteTeam] -> Value
$ctoEncodingList :: [FederationRemoteTeam] -> Encoding
toEncodingList :: [FederationRemoteTeam] -> Encoding
ToJSON, Value -> Parser [FederationRemoteTeam]
Value -> Parser FederationRemoteTeam
(Value -> Parser FederationRemoteTeam)
-> (Value -> Parser [FederationRemoteTeam])
-> FromJSON FederationRemoteTeam
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser FederationRemoteTeam
parseJSON :: Value -> Parser FederationRemoteTeam
$cparseJSONList :: Value -> Parser [FederationRemoteTeam]
parseJSONList :: Value -> Parser [FederationRemoteTeam]
FromJSON, Typeable FederationRemoteTeam
Typeable FederationRemoteTeam =>
(Proxy FederationRemoteTeam
-> Declare (Definitions Schema) NamedSchema)
-> ToSchema FederationRemoteTeam
Proxy FederationRemoteTeam
-> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy FederationRemoteTeam
-> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy FederationRemoteTeam
-> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema FederationRemoteTeam
deriving (Gen FederationRemoteTeam
Gen FederationRemoteTeam
-> (FederationRemoteTeam -> [FederationRemoteTeam])
-> Arbitrary FederationRemoteTeam
FederationRemoteTeam -> [FederationRemoteTeam]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen FederationRemoteTeam
arbitrary :: Gen FederationRemoteTeam
$cshrink :: FederationRemoteTeam -> [FederationRemoteTeam]
shrink :: FederationRemoteTeam -> [FederationRemoteTeam]
Arbitrary) via (GenericUniform FederationRemoteTeam)
instance ToSchema FederationRemoteTeam where
schema :: ValueSchema NamedSwaggerDoc FederationRemoteTeam
schema =
Text
-> SchemaP
SwaggerDoc Object [Pair] FederationRemoteTeam FederationRemoteTeam
-> ValueSchema NamedSwaggerDoc FederationRemoteTeam
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"FederationRemoteTeam" (SchemaP
SwaggerDoc Object [Pair] FederationRemoteTeam FederationRemoteTeam
-> ValueSchema NamedSwaggerDoc FederationRemoteTeam)
-> SchemaP
SwaggerDoc Object [Pair] FederationRemoteTeam FederationRemoteTeam
-> ValueSchema NamedSwaggerDoc FederationRemoteTeam
forall a b. (a -> b) -> a -> b
$
TeamId -> FederationRemoteTeam
FederationRemoteTeam
(TeamId -> FederationRemoteTeam)
-> SchemaP SwaggerDoc Object [Pair] FederationRemoteTeam TeamId
-> SchemaP
SwaggerDoc Object [Pair] FederationRemoteTeam FederationRemoteTeam
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> FederationRemoteTeam -> TeamId
teamId (FederationRemoteTeam -> TeamId)
-> SchemaP SwaggerDoc Object [Pair] TeamId TeamId
-> SchemaP SwaggerDoc Object [Pair] FederationRemoteTeam TeamId
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> ValueSchema NamedSwaggerDoc TeamId
-> SchemaP SwaggerDoc Object [Pair] TeamId TeamId
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"team_id" ValueSchema NamedSwaggerDoc TeamId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema