{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StrictData #-}
module Wire.API.Conversation.Member
( ConvMembers (..),
Member (..),
defMember,
MutedStatus (..),
OtherMember (..),
MemberUpdate (..),
memberUpdate,
OtherMemberUpdate (..),
)
where
import Control.Applicative
import Control.Lens ((?~))
import Data.Aeson (FromJSON (..), ToJSON (..))
import Data.Aeson qualified as A
import Data.Id
import Data.OpenApi (deprecated)
import Data.OpenApi qualified as S
import Data.Qualified
import Data.Schema
import Imports
import Test.QuickCheck qualified as QC
import Wire.API.Conversation.Role
import Wire.API.Provider.Service (ServiceRef)
import Wire.Arbitrary (Arbitrary (arbitrary), GenericUniform (..))
data ConvMembers = ConvMembers
{ ConvMembers -> Member
cmSelf :: Member,
ConvMembers -> [OtherMember]
cmOthers :: [OtherMember]
}
deriving stock (ConvMembers -> ConvMembers -> Bool
(ConvMembers -> ConvMembers -> Bool)
-> (ConvMembers -> ConvMembers -> Bool) -> Eq ConvMembers
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: ConvMembers -> ConvMembers -> Bool
== :: ConvMembers -> ConvMembers -> Bool
$c/= :: ConvMembers -> ConvMembers -> Bool
/= :: ConvMembers -> ConvMembers -> Bool
Eq, Int -> ConvMembers -> ShowS
[ConvMembers] -> ShowS
ConvMembers -> String
(Int -> ConvMembers -> ShowS)
-> (ConvMembers -> String)
-> ([ConvMembers] -> ShowS)
-> Show ConvMembers
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> ConvMembers -> ShowS
showsPrec :: Int -> ConvMembers -> ShowS
$cshow :: ConvMembers -> String
show :: ConvMembers -> String
$cshowList :: [ConvMembers] -> ShowS
showList :: [ConvMembers] -> ShowS
Show, (forall x. ConvMembers -> Rep ConvMembers x)
-> (forall x. Rep ConvMembers x -> ConvMembers)
-> Generic ConvMembers
forall x. Rep ConvMembers x -> ConvMembers
forall x. ConvMembers -> Rep ConvMembers x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. ConvMembers -> Rep ConvMembers x
from :: forall x. ConvMembers -> Rep ConvMembers x
$cto :: forall x. Rep ConvMembers x -> ConvMembers
to :: forall x. Rep ConvMembers x -> ConvMembers
Generic)
deriving (Gen ConvMembers
Gen ConvMembers
-> (ConvMembers -> [ConvMembers]) -> Arbitrary ConvMembers
ConvMembers -> [ConvMembers]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen ConvMembers
arbitrary :: Gen ConvMembers
$cshrink :: ConvMembers -> [ConvMembers]
shrink :: ConvMembers -> [ConvMembers]
Arbitrary) via (GenericUniform ConvMembers)
deriving (Value -> Parser [ConvMembers]
Value -> Parser ConvMembers
(Value -> Parser ConvMembers)
-> (Value -> Parser [ConvMembers]) -> FromJSON ConvMembers
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser ConvMembers
parseJSON :: Value -> Parser ConvMembers
$cparseJSONList :: Value -> Parser [ConvMembers]
parseJSONList :: Value -> Parser [ConvMembers]
FromJSON, [ConvMembers] -> Value
[ConvMembers] -> Encoding
ConvMembers -> Value
ConvMembers -> Encoding
(ConvMembers -> Value)
-> (ConvMembers -> Encoding)
-> ([ConvMembers] -> Value)
-> ([ConvMembers] -> Encoding)
-> ToJSON ConvMembers
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: ConvMembers -> Value
toJSON :: ConvMembers -> Value
$ctoEncoding :: ConvMembers -> Encoding
toEncoding :: ConvMembers -> Encoding
$ctoJSONList :: [ConvMembers] -> Value
toJSONList :: [ConvMembers] -> Value
$ctoEncodingList :: [ConvMembers] -> Encoding
toEncodingList :: [ConvMembers] -> Encoding
ToJSON, Typeable ConvMembers
Typeable ConvMembers =>
(Proxy ConvMembers -> Declare (Definitions Schema) NamedSchema)
-> ToSchema ConvMembers
Proxy ConvMembers -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy ConvMembers -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy ConvMembers -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema ConvMembers
instance ToSchema ConvMembers where
schema :: ValueSchema NamedSwaggerDoc ConvMembers
schema =
Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> ObjectSchema SwaggerDoc ConvMembers
-> ValueSchema NamedSwaggerDoc ConvMembers
forall doc doc' a.
HasObject doc doc' =>
Text -> (doc' -> doc') -> ObjectSchema doc a -> ValueSchema doc' a
objectWithDocModifier Text
"ConvMembers" ((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
"Users of a conversation") (ObjectSchema SwaggerDoc ConvMembers
-> ValueSchema NamedSwaggerDoc ConvMembers)
-> ObjectSchema SwaggerDoc ConvMembers
-> ValueSchema NamedSwaggerDoc ConvMembers
forall a b. (a -> b) -> a -> b
$
Member -> [OtherMember] -> ConvMembers
ConvMembers
(Member -> [OtherMember] -> ConvMembers)
-> SchemaP SwaggerDoc Object [Pair] ConvMembers Member
-> SchemaP
SwaggerDoc Object [Pair] ConvMembers ([OtherMember] -> ConvMembers)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ConvMembers -> Member
cmSelf
(ConvMembers -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member Member
-> SchemaP SwaggerDoc Object [Pair] ConvMembers Member
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> SchemaP NamedSwaggerDoc Value Value Member Member
-> SchemaP SwaggerDoc Object [Pair] Member Member
forall doc' doc a b.
HasField doc' doc =>
Text
-> (doc' -> doc')
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a b
fieldWithDocModifier
Text
"self"
((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
"The user ID of the requestor")
SchemaP NamedSwaggerDoc Value Value Member Member
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc Object [Pair] ConvMembers ([OtherMember] -> ConvMembers)
-> SchemaP SwaggerDoc Object [Pair] ConvMembers [OtherMember]
-> ObjectSchema SwaggerDoc ConvMembers
forall a b.
SchemaP SwaggerDoc Object [Pair] ConvMembers (a -> b)
-> SchemaP SwaggerDoc Object [Pair] ConvMembers a
-> SchemaP SwaggerDoc Object [Pair] ConvMembers b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ConvMembers -> [OtherMember]
cmOthers
(ConvMembers -> [OtherMember])
-> SchemaP SwaggerDoc Object [Pair] [OtherMember] [OtherMember]
-> SchemaP SwaggerDoc Object [Pair] ConvMembers [OtherMember]
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> (SwaggerDoc -> SwaggerDoc)
-> SchemaP SwaggerDoc Value Value [OtherMember] [OtherMember]
-> SchemaP SwaggerDoc Object [Pair] [OtherMember] [OtherMember]
forall doc' doc a b.
HasField doc' doc =>
Text
-> (doc' -> doc')
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a b
fieldWithDocModifier
Text
"others"
((Maybe Text -> Identity (Maybe Text))
-> SwaggerDoc -> Identity SwaggerDoc
forall s a. HasDescription s a => Lens' s a
Lens' SwaggerDoc (Maybe Text)
description ((Maybe Text -> Identity (Maybe Text))
-> SwaggerDoc -> Identity SwaggerDoc)
-> Text -> SwaggerDoc -> SwaggerDoc
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Text
"All other current users of this conversation")
(ValueSchema NamedSwaggerDoc OtherMember
-> SchemaP SwaggerDoc Value Value [OtherMember] [OtherMember]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc OtherMember
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
data Member = Member
{ Member -> Qualified UserId
memId :: Qualified UserId,
Member -> Maybe ServiceRef
memService :: Maybe ServiceRef,
Member -> Maybe MutedStatus
memOtrMutedStatus :: Maybe MutedStatus,
Member -> Maybe Text
memOtrMutedRef :: Maybe Text,
Member -> Bool
memOtrArchived :: Bool,
Member -> Maybe Text
memOtrArchivedRef :: Maybe Text,
Member -> Bool
memHidden :: Bool,
Member -> Maybe Text
memHiddenRef :: Maybe Text,
Member -> RoleName
memConvRoleName :: RoleName
}
deriving stock (Member -> Member -> Bool
(Member -> Member -> Bool)
-> (Member -> Member -> Bool) -> Eq Member
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Member -> Member -> Bool
== :: Member -> Member -> Bool
$c/= :: Member -> Member -> Bool
/= :: Member -> Member -> Bool
Eq, Int -> Member -> ShowS
[Member] -> ShowS
Member -> String
(Int -> Member -> ShowS)
-> (Member -> String) -> ([Member] -> ShowS) -> Show Member
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Member -> ShowS
showsPrec :: Int -> Member -> ShowS
$cshow :: Member -> String
show :: Member -> String
$cshowList :: [Member] -> ShowS
showList :: [Member] -> ShowS
Show, (forall x. Member -> Rep Member x)
-> (forall x. Rep Member x -> Member) -> Generic Member
forall x. Rep Member x -> Member
forall x. Member -> Rep Member x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. Member -> Rep Member x
from :: forall x. Member -> Rep Member x
$cto :: forall x. Rep Member x -> Member
to :: forall x. Rep Member x -> Member
Generic)
deriving (Gen Member
Gen Member -> (Member -> [Member]) -> Arbitrary Member
Member -> [Member]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen Member
arbitrary :: Gen Member
$cshrink :: Member -> [Member]
shrink :: Member -> [Member]
Arbitrary) via (GenericUniform Member)
deriving (Value -> Parser [Member]
Value -> Parser Member
(Value -> Parser Member)
-> (Value -> Parser [Member]) -> FromJSON Member
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser Member
parseJSON :: Value -> Parser Member
$cparseJSONList :: Value -> Parser [Member]
parseJSONList :: Value -> Parser [Member]
FromJSON, [Member] -> Value
[Member] -> Encoding
Member -> Value
Member -> Encoding
(Member -> Value)
-> (Member -> Encoding)
-> ([Member] -> Value)
-> ([Member] -> Encoding)
-> ToJSON Member
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: Member -> Value
toJSON :: Member -> Value
$ctoEncoding :: Member -> Encoding
toEncoding :: Member -> Encoding
$ctoJSONList :: [Member] -> Value
toJSONList :: [Member] -> Value
$ctoEncodingList :: [Member] -> Encoding
toEncodingList :: [Member] -> Encoding
ToJSON, Typeable Member
Typeable Member =>
(Proxy Member -> Declare (Definitions Schema) NamedSchema)
-> ToSchema Member
Proxy Member -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy Member -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy Member -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema Member
defMember :: Qualified UserId -> Member
defMember :: Qualified UserId -> Member
defMember Qualified UserId
uid =
Member
{ $sel:memId:Member :: Qualified UserId
memId = Qualified UserId
uid,
$sel:memService:Member :: Maybe ServiceRef
memService = Maybe ServiceRef
forall a. Maybe a
Nothing,
$sel:memOtrMutedStatus:Member :: Maybe MutedStatus
memOtrMutedStatus = Maybe MutedStatus
forall a. Maybe a
Nothing,
$sel:memOtrMutedRef:Member :: Maybe Text
memOtrMutedRef = Maybe Text
forall a. Maybe a
Nothing,
$sel:memOtrArchived:Member :: Bool
memOtrArchived = Bool
False,
$sel:memOtrArchivedRef:Member :: Maybe Text
memOtrArchivedRef = Maybe Text
forall a. Maybe a
Nothing,
$sel:memHidden:Member :: Bool
memHidden = Bool
False,
$sel:memHiddenRef:Member :: Maybe Text
memHiddenRef = Maybe Text
forall a. Maybe a
Nothing,
$sel:memConvRoleName:Member :: RoleName
memConvRoleName = RoleName
roleNameWireMember
}
instance ToSchema Member where
schema :: SchemaP NamedSwaggerDoc Value Value Member Member
schema =
Text
-> SchemaP SwaggerDoc Object [Pair] Member Member
-> SchemaP NamedSwaggerDoc Value Value Member Member
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"Member" (SchemaP SwaggerDoc Object [Pair] Member Member
-> SchemaP NamedSwaggerDoc Value Value Member Member)
-> SchemaP SwaggerDoc Object [Pair] Member Member
-> SchemaP NamedSwaggerDoc Value Value Member Member
forall a b. (a -> b) -> a -> b
$
Qualified UserId
-> Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member
Member
(Qualified UserId
-> Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Qualified UserId)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Member -> Qualified UserId
memId (Member -> Qualified UserId)
-> SchemaP
SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
-> SchemaP SwaggerDoc Object [Pair] Member (Qualified UserId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
-> SchemaP
SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"qualified_id" SchemaP
NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe UserId)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
-> SchemaP SwaggerDoc Object [Pair] Member a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* (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
memId)
(Member -> UserId)
-> SchemaP SwaggerDoc Object [Pair] UserId (Maybe UserId)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe UserId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] UserId UserId
-> SchemaP SwaggerDoc Object [Pair] UserId (Maybe UserId)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Text
-> SchemaP NamedSwaggerDoc Value Value UserId UserId
-> SchemaP SwaggerDoc Object [Pair] UserId UserId
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"id" (Text
-> SchemaP NamedSwaggerDoc Value Value UserId UserId
-> SchemaP NamedSwaggerDoc Value Value UserId UserId
forall doc a.
(HasDeprecated doc (Maybe Bool),
HasDescription doc (Maybe Text)) =>
Text -> ValueSchema doc a -> ValueSchema doc a
deprecatedSchema Text
"qualified_id" SchemaP NamedSwaggerDoc Value Value UserId UserId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema))
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe ServiceRef
-> Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ServiceRef)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Maybe ServiceRef
memService (Member -> Maybe ServiceRef)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe ServiceRef) (Maybe ServiceRef)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ServiceRef)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc Value Value (Maybe ServiceRef) ServiceRef
-> SchemaP
SwaggerDoc Object [Pair] (Maybe ServiceRef) (Maybe ServiceRef)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"service" (Value
-> SchemaP NamedSwaggerDoc Value Value ServiceRef ServiceRef
-> SchemaP
NamedSwaggerDoc Value Value (Maybe ServiceRef) ServiceRef
forall w d v a b.
w -> SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybeWithDefault Value
A.Null SchemaP NamedSwaggerDoc Value Value ServiceRef ServiceRef
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
-> SchemaP SwaggerDoc Object [Pair] Member a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* () -> Member -> ()
forall a b. a -> b -> a
const () (Member -> ())
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] () ()
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Text
-> SchemaP SwaggerDoc Value Value () ()
-> SchemaP SwaggerDoc Object [Pair] () ()
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"status" (Int -> SchemaP SwaggerDoc Value Value () ()
forall a. ToJSON a => a -> SchemaP SwaggerDoc Value Value () ()
c (Int
0 :: Int)))
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
-> SchemaP SwaggerDoc Object [Pair] Member a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* () -> Member -> ()
forall a b. a -> b -> a
const () (Member -> ())
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] () ()
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Text
-> SchemaP SwaggerDoc Value Value () ()
-> SchemaP SwaggerDoc Object [Pair] () ()
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"status_ref" (Text -> SchemaP SwaggerDoc Value Value () ()
forall a. ToJSON a => a -> SchemaP SwaggerDoc Value Value () ()
c (Text
"0.0" :: Text)))
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
-> SchemaP SwaggerDoc Object [Pair] Member a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* () -> Member -> ()
forall a b. a -> b -> a
const ()
(Member -> ())
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe ())
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] () ()
-> SchemaP SwaggerDoc Object [Pair] () (Maybe ())
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional
( Text
-> SchemaP SwaggerDoc Value Value () ()
-> SchemaP SwaggerDoc Object [Pair] () ()
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field
Text
"status_time"
(Text -> SchemaP SwaggerDoc Value Value () ()
forall a. ToJSON a => a -> SchemaP SwaggerDoc Value Value () ()
c (Text
"1970-01-01T00:00:00.000Z" :: Text))
)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe MutedStatus
-> Maybe Text
-> Bool
-> Maybe Text
-> Bool
-> Maybe Text
-> RoleName
-> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe MutedStatus)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe Text
-> Bool -> Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Maybe MutedStatus
memOtrMutedStatus (Member -> Maybe MutedStatus)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe MutedStatus) (Maybe MutedStatus)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe MutedStatus)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc Value Value (Maybe MutedStatus) MutedStatus
-> SchemaP
SwaggerDoc Object [Pair] (Maybe MutedStatus) (Maybe MutedStatus)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_muted_status" (Value
-> SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
-> SchemaP
NamedSwaggerDoc Value Value (Maybe MutedStatus) MutedStatus
forall w d v a b.
w -> SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybeWithDefault Value
A.Null SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe Text
-> Bool -> Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Bool -> Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Maybe Text
memOtrMutedRef (Member -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_muted_ref" (Value
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
forall w d v a b.
w -> SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybeWithDefault Value
A.Null SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Bool -> Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member Bool
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Bool
memOtrArchived (Member -> Bool)
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Member Bool
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= (Bool -> Maybe Bool -> Bool
forall a. a -> Maybe a -> a
fromMaybe Bool
False (Maybe Bool -> Bool)
-> SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> SchemaP NamedSwaggerDoc Value Value Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_archived" SchemaP NamedSwaggerDoc Value Value Bool Bool
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Maybe Text -> Bool -> Maybe Text -> RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
-> SchemaP
SwaggerDoc
Object
[Pair]
Member
(Bool -> Maybe Text -> RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Maybe Text
memOtrArchivedRef (Member -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_archived_ref" (Value
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
forall w d v a b.
w -> SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybeWithDefault Value
A.Null SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
Member
(Bool -> Maybe Text -> RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member Bool
-> SchemaP
SwaggerDoc Object [Pair] Member (Maybe Text -> RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Bool
memHidden (Member -> Bool)
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Member Bool
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= (Text
-> SchemaP NamedSwaggerDoc Value Value Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"hidden" SchemaP NamedSwaggerDoc Value Value Bool Bool
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema SchemaP SwaggerDoc Object [Pair] Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool Bool
forall a.
SchemaP SwaggerDoc Object [Pair] Bool a
-> SchemaP SwaggerDoc Object [Pair] Bool a
-> SchemaP SwaggerDoc Object [Pair] Bool a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> Bool -> SchemaP SwaggerDoc Object [Pair] Bool Bool
forall a. a -> SchemaP SwaggerDoc Object [Pair] Bool a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Bool
False)
SchemaP
SwaggerDoc Object [Pair] Member (Maybe Text -> RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] Member (RoleName -> Member)
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> Maybe Text
memHiddenRef (Member -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] Member (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"hidden_ref" (Value
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP NamedSwaggerDoc Value Value (Maybe Text) Text
forall w d v a b.
w -> SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybeWithDefault Value
A.Null SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP SwaggerDoc Object [Pair] Member (RoleName -> Member)
-> SchemaP SwaggerDoc Object [Pair] Member RoleName
-> SchemaP SwaggerDoc Object [Pair] Member Member
forall a b.
SchemaP SwaggerDoc Object [Pair] Member (a -> b)
-> SchemaP SwaggerDoc Object [Pair] Member a
-> SchemaP SwaggerDoc Object [Pair] Member b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Member -> RoleName
memConvRoleName (Member -> RoleName)
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] Member RoleName
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= (RoleName -> Maybe RoleName -> RoleName
forall a. a -> Maybe a -> a
fromMaybe RoleName
roleNameWireAdmin (Maybe RoleName -> RoleName)
-> SchemaP SwaggerDoc Object [Pair] RoleName (Maybe RoleName)
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> SchemaP NamedSwaggerDoc Value Value RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] RoleName (Maybe RoleName)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"conversation_role" SchemaP NamedSwaggerDoc Value Value RoleName RoleName
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
where
c :: (ToJSON a) => a -> ValueSchema SwaggerDoc ()
c :: forall a. ToJSON a => a -> SchemaP SwaggerDoc Value Value () ()
c a
val = SwaggerDoc
-> (Value -> Parser ())
-> (() -> Maybe Value)
-> SchemaP SwaggerDoc Value Value () ()
forall doc v b a w.
doc -> (v -> Parser b) -> (a -> Maybe w) -> SchemaP doc v w a b
mkSchema SwaggerDoc
forall a. Monoid a => a
mempty (Parser () -> Value -> Parser ()
forall a b. a -> b -> a
const (() -> Parser ()
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())) (Maybe Value -> () -> Maybe Value
forall a b. a -> b -> a
const (Value -> Maybe Value
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (a -> Value
forall a. ToJSON a => a -> Value
toJSON a
val)))
newtype MutedStatus = MutedStatus {MutedStatus -> Int32
fromMutedStatus :: Int32}
deriving stock (MutedStatus -> MutedStatus -> Bool
(MutedStatus -> MutedStatus -> Bool)
-> (MutedStatus -> MutedStatus -> Bool) -> Eq MutedStatus
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MutedStatus -> MutedStatus -> Bool
== :: MutedStatus -> MutedStatus -> Bool
$c/= :: MutedStatus -> MutedStatus -> Bool
/= :: MutedStatus -> MutedStatus -> Bool
Eq, Eq MutedStatus
Eq MutedStatus =>
(MutedStatus -> MutedStatus -> Ordering)
-> (MutedStatus -> MutedStatus -> Bool)
-> (MutedStatus -> MutedStatus -> Bool)
-> (MutedStatus -> MutedStatus -> Bool)
-> (MutedStatus -> MutedStatus -> Bool)
-> (MutedStatus -> MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus -> MutedStatus)
-> Ord MutedStatus
MutedStatus -> MutedStatus -> Bool
MutedStatus -> MutedStatus -> Ordering
MutedStatus -> MutedStatus -> MutedStatus
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 :: MutedStatus -> MutedStatus -> Ordering
compare :: MutedStatus -> MutedStatus -> Ordering
$c< :: MutedStatus -> MutedStatus -> Bool
< :: MutedStatus -> MutedStatus -> Bool
$c<= :: MutedStatus -> MutedStatus -> Bool
<= :: MutedStatus -> MutedStatus -> Bool
$c> :: MutedStatus -> MutedStatus -> Bool
> :: MutedStatus -> MutedStatus -> Bool
$c>= :: MutedStatus -> MutedStatus -> Bool
>= :: MutedStatus -> MutedStatus -> Bool
$cmax :: MutedStatus -> MutedStatus -> MutedStatus
max :: MutedStatus -> MutedStatus -> MutedStatus
$cmin :: MutedStatus -> MutedStatus -> MutedStatus
min :: MutedStatus -> MutedStatus -> MutedStatus
Ord, Int -> MutedStatus -> ShowS
[MutedStatus] -> ShowS
MutedStatus -> String
(Int -> MutedStatus -> ShowS)
-> (MutedStatus -> String)
-> ([MutedStatus] -> ShowS)
-> Show MutedStatus
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MutedStatus -> ShowS
showsPrec :: Int -> MutedStatus -> ShowS
$cshow :: MutedStatus -> String
show :: MutedStatus -> String
$cshowList :: [MutedStatus] -> ShowS
showList :: [MutedStatus] -> ShowS
Show, (forall x. MutedStatus -> Rep MutedStatus x)
-> (forall x. Rep MutedStatus x -> MutedStatus)
-> Generic MutedStatus
forall x. Rep MutedStatus x -> MutedStatus
forall x. MutedStatus -> Rep MutedStatus x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MutedStatus -> Rep MutedStatus x
from :: forall x. MutedStatus -> Rep MutedStatus x
$cto :: forall x. Rep MutedStatus x -> MutedStatus
to :: forall x. Rep MutedStatus x -> MutedStatus
Generic)
deriving newtype (Integer -> MutedStatus
MutedStatus -> MutedStatus
MutedStatus -> MutedStatus -> MutedStatus
(MutedStatus -> MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus)
-> (MutedStatus -> MutedStatus)
-> (Integer -> MutedStatus)
-> Num MutedStatus
forall a.
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> a)
-> (a -> a)
-> (Integer -> a)
-> Num a
$c+ :: MutedStatus -> MutedStatus -> MutedStatus
+ :: MutedStatus -> MutedStatus -> MutedStatus
$c- :: MutedStatus -> MutedStatus -> MutedStatus
- :: MutedStatus -> MutedStatus -> MutedStatus
$c* :: MutedStatus -> MutedStatus -> MutedStatus
* :: MutedStatus -> MutedStatus -> MutedStatus
$cnegate :: MutedStatus -> MutedStatus
negate :: MutedStatus -> MutedStatus
$cabs :: MutedStatus -> MutedStatus
abs :: MutedStatus -> MutedStatus
$csignum :: MutedStatus -> MutedStatus
signum :: MutedStatus -> MutedStatus
$cfromInteger :: Integer -> MutedStatus
fromInteger :: Integer -> MutedStatus
Num, SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
-> ToSchema MutedStatus
forall a. ValueSchema NamedSwaggerDoc a -> ToSchema a
$cschema :: SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
schema :: SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
ToSchema, Gen MutedStatus
Gen MutedStatus
-> (MutedStatus -> [MutedStatus]) -> Arbitrary MutedStatus
MutedStatus -> [MutedStatus]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen MutedStatus
arbitrary :: Gen MutedStatus
$cshrink :: MutedStatus -> [MutedStatus]
shrink :: MutedStatus -> [MutedStatus]
Arbitrary)
deriving (Value -> Parser [MutedStatus]
Value -> Parser MutedStatus
(Value -> Parser MutedStatus)
-> (Value -> Parser [MutedStatus]) -> FromJSON MutedStatus
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser MutedStatus
parseJSON :: Value -> Parser MutedStatus
$cparseJSONList :: Value -> Parser [MutedStatus]
parseJSONList :: Value -> Parser [MutedStatus]
FromJSON, [MutedStatus] -> Value
[MutedStatus] -> Encoding
MutedStatus -> Value
MutedStatus -> Encoding
(MutedStatus -> Value)
-> (MutedStatus -> Encoding)
-> ([MutedStatus] -> Value)
-> ([MutedStatus] -> Encoding)
-> ToJSON MutedStatus
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: MutedStatus -> Value
toJSON :: MutedStatus -> Value
$ctoEncoding :: MutedStatus -> Encoding
toEncoding :: MutedStatus -> Encoding
$ctoJSONList :: [MutedStatus] -> Value
toJSONList :: [MutedStatus] -> Value
$ctoEncodingList :: [MutedStatus] -> Encoding
toEncodingList :: [MutedStatus] -> Encoding
ToJSON, Typeable MutedStatus
Typeable MutedStatus =>
(Proxy MutedStatus -> Declare (Definitions Schema) NamedSchema)
-> ToSchema MutedStatus
Proxy MutedStatus -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy MutedStatus -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy MutedStatus -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema MutedStatus
data OtherMember = OtherMember
{ OtherMember -> Qualified UserId
omQualifiedId :: Qualified UserId,
OtherMember -> Maybe ServiceRef
omService :: Maybe ServiceRef,
OtherMember -> RoleName
omConvRoleName :: RoleName
}
deriving stock (OtherMember -> OtherMember -> Bool
(OtherMember -> OtherMember -> Bool)
-> (OtherMember -> OtherMember -> Bool) -> Eq OtherMember
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OtherMember -> OtherMember -> Bool
== :: OtherMember -> OtherMember -> Bool
$c/= :: OtherMember -> OtherMember -> Bool
/= :: OtherMember -> OtherMember -> Bool
Eq, Int -> OtherMember -> ShowS
[OtherMember] -> ShowS
OtherMember -> String
(Int -> OtherMember -> ShowS)
-> (OtherMember -> String)
-> ([OtherMember] -> ShowS)
-> Show OtherMember
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OtherMember -> ShowS
showsPrec :: Int -> OtherMember -> ShowS
$cshow :: OtherMember -> String
show :: OtherMember -> String
$cshowList :: [OtherMember] -> ShowS
showList :: [OtherMember] -> ShowS
Show, (forall x. OtherMember -> Rep OtherMember x)
-> (forall x. Rep OtherMember x -> OtherMember)
-> Generic OtherMember
forall x. Rep OtherMember x -> OtherMember
forall x. OtherMember -> Rep OtherMember x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OtherMember -> Rep OtherMember x
from :: forall x. OtherMember -> Rep OtherMember x
$cto :: forall x. Rep OtherMember x -> OtherMember
to :: forall x. Rep OtherMember x -> OtherMember
Generic)
deriving (Gen OtherMember
Gen OtherMember
-> (OtherMember -> [OtherMember]) -> Arbitrary OtherMember
OtherMember -> [OtherMember]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen OtherMember
arbitrary :: Gen OtherMember
$cshrink :: OtherMember -> [OtherMember]
shrink :: OtherMember -> [OtherMember]
Arbitrary) via (GenericUniform OtherMember)
deriving (Value -> Parser [OtherMember]
Value -> Parser OtherMember
(Value -> Parser OtherMember)
-> (Value -> Parser [OtherMember]) -> FromJSON OtherMember
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser OtherMember
parseJSON :: Value -> Parser OtherMember
$cparseJSONList :: Value -> Parser [OtherMember]
parseJSONList :: Value -> Parser [OtherMember]
FromJSON, [OtherMember] -> Value
[OtherMember] -> Encoding
OtherMember -> Value
OtherMember -> Encoding
(OtherMember -> Value)
-> (OtherMember -> Encoding)
-> ([OtherMember] -> Value)
-> ([OtherMember] -> Encoding)
-> ToJSON OtherMember
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: OtherMember -> Value
toJSON :: OtherMember -> Value
$ctoEncoding :: OtherMember -> Encoding
toEncoding :: OtherMember -> Encoding
$ctoJSONList :: [OtherMember] -> Value
toJSONList :: [OtherMember] -> Value
$ctoEncodingList :: [OtherMember] -> Encoding
toEncodingList :: [OtherMember] -> Encoding
ToJSON, Typeable OtherMember
Typeable OtherMember =>
(Proxy OtherMember -> Declare (Definitions Schema) NamedSchema)
-> ToSchema OtherMember
Proxy OtherMember -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy OtherMember -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy OtherMember -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema OtherMember
instance ToSchema OtherMember where
schema :: ValueSchema NamedSwaggerDoc OtherMember
schema =
Text
-> SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
-> ValueSchema NamedSwaggerDoc OtherMember
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"OtherMember" (SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
-> ValueSchema NamedSwaggerDoc OtherMember)
-> SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
-> ValueSchema NamedSwaggerDoc OtherMember
forall a b. (a -> b) -> a -> b
$
Qualified UserId -> Maybe ServiceRef -> RoleName -> OtherMember
OtherMember
(Qualified UserId -> Maybe ServiceRef -> RoleName -> OtherMember)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Qualified UserId)
-> SchemaP
SwaggerDoc
Object
[Pair]
OtherMember
(Maybe ServiceRef -> RoleName -> OtherMember)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> OtherMember -> Qualified UserId
omQualifiedId (OtherMember -> Qualified UserId)
-> SchemaP
SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Qualified UserId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
-> SchemaP
SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"qualified_id" SchemaP
NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
SchemaP
SwaggerDoc
Object
[Pair]
OtherMember
(Maybe ServiceRef -> RoleName -> OtherMember)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe UserId)
-> SchemaP
SwaggerDoc
Object
[Pair]
OtherMember
(Maybe ServiceRef -> RoleName -> OtherMember)
forall a b.
SchemaP SwaggerDoc Object [Pair] OtherMember a
-> SchemaP SwaggerDoc Object [Pair] OtherMember b
-> SchemaP SwaggerDoc Object [Pair] OtherMember a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* (Qualified UserId -> UserId
forall a. Qualified a -> a
qUnqualified (Qualified UserId -> UserId)
-> (OtherMember -> Qualified UserId) -> OtherMember -> UserId
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OtherMember -> Qualified UserId
omQualifiedId) (OtherMember -> UserId)
-> SchemaP SwaggerDoc Object [Pair] UserId (Maybe UserId)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe UserId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] UserId UserId
-> SchemaP SwaggerDoc Object [Pair] UserId (Maybe UserId)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Text
-> SchemaP NamedSwaggerDoc Value Value UserId UserId
-> SchemaP SwaggerDoc Object [Pair] UserId UserId
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"id" SchemaP NamedSwaggerDoc Value Value UserId UserId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
OtherMember
(Maybe ServiceRef -> RoleName -> OtherMember)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe ServiceRef)
-> SchemaP
SwaggerDoc Object [Pair] OtherMember (RoleName -> OtherMember)
forall a b.
SchemaP SwaggerDoc Object [Pair] OtherMember (a -> b)
-> SchemaP SwaggerDoc Object [Pair] OtherMember a
-> SchemaP SwaggerDoc Object [Pair] OtherMember b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> OtherMember -> Maybe ServiceRef
omService (OtherMember -> Maybe ServiceRef)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe ServiceRef) (Maybe ServiceRef)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe ServiceRef)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] ServiceRef (Maybe ServiceRef)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe ServiceRef) (Maybe ServiceRef)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> SchemaP NamedSwaggerDoc Value Value ServiceRef ServiceRef
-> SchemaP SwaggerDoc Object [Pair] ServiceRef (Maybe ServiceRef)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> (doc' -> doc')
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optFieldWithDocModifier Text
"service" ((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
desc) SchemaP NamedSwaggerDoc Value Value ServiceRef ServiceRef
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc Object [Pair] OtherMember (RoleName -> OtherMember)
-> SchemaP SwaggerDoc Object [Pair] OtherMember RoleName
-> SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
forall a b.
SchemaP SwaggerDoc Object [Pair] OtherMember (a -> b)
-> SchemaP SwaggerDoc Object [Pair] OtherMember a
-> SchemaP SwaggerDoc Object [Pair] OtherMember b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> OtherMember -> RoleName
omConvRoleName (OtherMember -> RoleName)
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] OtherMember RoleName
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= (Text
-> SchemaP NamedSwaggerDoc Value Value RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"conversation_role" SchemaP NamedSwaggerDoc Value Value RoleName RoleName
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema SchemaP SwaggerDoc Object [Pair] RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
forall a.
SchemaP SwaggerDoc Object [Pair] RoleName a
-> SchemaP SwaggerDoc Object [Pair] RoleName a
-> SchemaP SwaggerDoc Object [Pair] RoleName a
forall (f :: * -> *) a. Alternative f => f a -> f a -> f a
<|> RoleName -> SchemaP SwaggerDoc Object [Pair] RoleName RoleName
forall a. a -> SchemaP SwaggerDoc Object [Pair] RoleName a
forall (f :: * -> *) a. Applicative f => a -> f a
pure RoleName
roleNameWireAdmin)
SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe Int)
-> SchemaP SwaggerDoc Object [Pair] OtherMember OtherMember
forall a b.
SchemaP SwaggerDoc Object [Pair] OtherMember a
-> SchemaP SwaggerDoc Object [Pair] OtherMember b
-> SchemaP SwaggerDoc Object [Pair] OtherMember a
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f a
<* Int -> OtherMember -> Int
forall a b. a -> b -> a
const (Int
0 :: Int) (OtherMember -> Int)
-> SchemaP SwaggerDoc Object [Pair] Int (Maybe Int)
-> SchemaP SwaggerDoc Object [Pair] OtherMember (Maybe Int)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Int Int
-> SchemaP SwaggerDoc Object [Pair] Int (Maybe Int)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> SchemaP NamedSwaggerDoc Value Value Int Int
-> SchemaP SwaggerDoc Object [Pair] Int Int
forall doc' doc a b.
HasField doc' doc =>
Text
-> (doc' -> doc')
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a b
fieldWithDocModifier Text
"status" (((Maybe Bool -> Identity (Maybe Bool))
-> NamedSwaggerDoc -> Identity NamedSwaggerDoc
forall s a. HasDeprecated s a => Lens' s a
Lens' NamedSwaggerDoc (Maybe Bool)
deprecated ((Maybe Bool -> Identity (Maybe Bool))
-> NamedSwaggerDoc -> Identity NamedSwaggerDoc)
-> Bool -> NamedSwaggerDoc -> NamedSwaggerDoc
forall s t a b. ASetter s t a (Maybe b) -> b -> s -> t
?~ Bool
True) (NamedSwaggerDoc -> NamedSwaggerDoc)
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> NamedSwaggerDoc
-> NamedSwaggerDoc
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((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
"deprecated")) SchemaP NamedSwaggerDoc Value Value Int Int
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
where
desc :: Text
desc = Text
"The reference to the owning service, if the member is a 'bot'."
instance Ord OtherMember where
compare :: OtherMember -> OtherMember -> Ordering
compare OtherMember
a OtherMember
b = Qualified UserId -> Qualified UserId -> Ordering
forall a. Ord a => a -> a -> Ordering
compare (OtherMember -> Qualified UserId
omQualifiedId OtherMember
a) (OtherMember -> Qualified UserId
omQualifiedId OtherMember
b)
data MemberUpdate = MemberUpdate
{ MemberUpdate -> Maybe MutedStatus
mupOtrMuteStatus :: Maybe MutedStatus,
MemberUpdate -> Maybe Text
mupOtrMuteRef :: Maybe Text,
MemberUpdate -> Maybe Bool
mupOtrArchive :: Maybe Bool,
MemberUpdate -> Maybe Text
mupOtrArchiveRef :: Maybe Text,
MemberUpdate -> Maybe Bool
mupHidden :: Maybe Bool,
MemberUpdate -> Maybe Text
mupHiddenRef :: Maybe Text
}
deriving stock (MemberUpdate -> MemberUpdate -> Bool
(MemberUpdate -> MemberUpdate -> Bool)
-> (MemberUpdate -> MemberUpdate -> Bool) -> Eq MemberUpdate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: MemberUpdate -> MemberUpdate -> Bool
== :: MemberUpdate -> MemberUpdate -> Bool
$c/= :: MemberUpdate -> MemberUpdate -> Bool
/= :: MemberUpdate -> MemberUpdate -> Bool
Eq, Int -> MemberUpdate -> ShowS
[MemberUpdate] -> ShowS
MemberUpdate -> String
(Int -> MemberUpdate -> ShowS)
-> (MemberUpdate -> String)
-> ([MemberUpdate] -> ShowS)
-> Show MemberUpdate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> MemberUpdate -> ShowS
showsPrec :: Int -> MemberUpdate -> ShowS
$cshow :: MemberUpdate -> String
show :: MemberUpdate -> String
$cshowList :: [MemberUpdate] -> ShowS
showList :: [MemberUpdate] -> ShowS
Show, (forall x. MemberUpdate -> Rep MemberUpdate x)
-> (forall x. Rep MemberUpdate x -> MemberUpdate)
-> Generic MemberUpdate
forall x. Rep MemberUpdate x -> MemberUpdate
forall x. MemberUpdate -> Rep MemberUpdate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. MemberUpdate -> Rep MemberUpdate x
from :: forall x. MemberUpdate -> Rep MemberUpdate x
$cto :: forall x. Rep MemberUpdate x -> MemberUpdate
to :: forall x. Rep MemberUpdate x -> MemberUpdate
Generic)
deriving (Value -> Parser [MemberUpdate]
Value -> Parser MemberUpdate
(Value -> Parser MemberUpdate)
-> (Value -> Parser [MemberUpdate]) -> FromJSON MemberUpdate
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser MemberUpdate
parseJSON :: Value -> Parser MemberUpdate
$cparseJSONList :: Value -> Parser [MemberUpdate]
parseJSONList :: Value -> Parser [MemberUpdate]
FromJSON, [MemberUpdate] -> Value
[MemberUpdate] -> Encoding
MemberUpdate -> Value
MemberUpdate -> Encoding
(MemberUpdate -> Value)
-> (MemberUpdate -> Encoding)
-> ([MemberUpdate] -> Value)
-> ([MemberUpdate] -> Encoding)
-> ToJSON MemberUpdate
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: MemberUpdate -> Value
toJSON :: MemberUpdate -> Value
$ctoEncoding :: MemberUpdate -> Encoding
toEncoding :: MemberUpdate -> Encoding
$ctoJSONList :: [MemberUpdate] -> Value
toJSONList :: [MemberUpdate] -> Value
$ctoEncodingList :: [MemberUpdate] -> Encoding
toEncodingList :: [MemberUpdate] -> Encoding
ToJSON, Typeable MemberUpdate
Typeable MemberUpdate =>
(Proxy MemberUpdate -> Declare (Definitions Schema) NamedSchema)
-> ToSchema MemberUpdate
Proxy MemberUpdate -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy MemberUpdate -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy MemberUpdate -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via Schema MemberUpdate
memberUpdate :: MemberUpdate
memberUpdate :: MemberUpdate
memberUpdate = Maybe MutedStatus
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> MemberUpdate
MemberUpdate Maybe MutedStatus
forall a. Maybe a
Nothing Maybe Text
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing Maybe Text
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing Maybe Text
forall a. Maybe a
Nothing
instance ToSchema MemberUpdate where
schema :: ValueSchema NamedSwaggerDoc MemberUpdate
schema =
(ValueSchema NamedSwaggerDoc MemberUpdate
-> (MemberUpdate -> Parser MemberUpdate)
-> ValueSchema NamedSwaggerDoc MemberUpdate
forall doc v w a b b'.
SchemaP doc v w a b -> (b -> Parser b') -> SchemaP doc v w a b'
`withParser` ((String -> Parser MemberUpdate)
-> (MemberUpdate -> Parser MemberUpdate)
-> Either String MemberUpdate
-> Parser MemberUpdate
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either String -> Parser MemberUpdate
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail MemberUpdate -> Parser MemberUpdate
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either String MemberUpdate -> Parser MemberUpdate)
-> (MemberUpdate -> Either String MemberUpdate)
-> MemberUpdate
-> Parser MemberUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MemberUpdate -> Either String MemberUpdate
validateMemberUpdate))
(ValueSchema NamedSwaggerDoc MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate)
-> (SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"MemberUpdate"
(SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
-> ValueSchema NamedSwaggerDoc MemberUpdate
forall a b. (a -> b) -> a -> b
$ Maybe MutedStatus
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> MemberUpdate
MemberUpdate
(Maybe MutedStatus
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> MemberUpdate)
-> SchemaP
SwaggerDoc Object [Pair] MemberUpdate (Maybe MutedStatus)
-> SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> MemberUpdate)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> MemberUpdate -> Maybe MutedStatus
mupOtrMuteStatus (MemberUpdate -> Maybe MutedStatus)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe MutedStatus) (Maybe MutedStatus)
-> SchemaP
SwaggerDoc Object [Pair] MemberUpdate (Maybe MutedStatus)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] MutedStatus (Maybe MutedStatus)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe MutedStatus) (Maybe MutedStatus)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
-> SchemaP SwaggerDoc Object [Pair] MutedStatus (Maybe MutedStatus)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_muted_status" SchemaP NamedSwaggerDoc Value Value MutedStatus MutedStatus
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Text
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> Maybe Text
-> MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
-> SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Bool
-> Maybe Text -> Maybe Bool -> Maybe Text -> MemberUpdate)
forall a b.
SchemaP SwaggerDoc Object [Pair] MemberUpdate (a -> b)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate a
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> MemberUpdate -> Maybe Text
mupOtrMuteRef (MemberUpdate -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_muted_ref" SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Bool
-> Maybe Text -> Maybe Bool -> Maybe Text -> MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Bool)
-> SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Text -> Maybe Bool -> Maybe Text -> MemberUpdate)
forall a b.
SchemaP SwaggerDoc Object [Pair] MemberUpdate (a -> b)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate a
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> MemberUpdate -> Maybe Bool
mupOtrArchive (MemberUpdate -> Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Bool) (Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Bool)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Bool) (Maybe Bool)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_archived" SchemaP NamedSwaggerDoc Value Value Bool Bool
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Text -> Maybe Bool -> Maybe Text -> MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
-> SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Bool -> Maybe Text -> MemberUpdate)
forall a b.
SchemaP SwaggerDoc Object [Pair] MemberUpdate (a -> b)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate a
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> MemberUpdate -> Maybe Text
mupOtrArchiveRef (MemberUpdate -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"otr_archived_ref" SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc
Object
[Pair]
MemberUpdate
(Maybe Bool -> Maybe Text -> MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Bool)
-> SchemaP
SwaggerDoc Object [Pair] MemberUpdate (Maybe Text -> MemberUpdate)
forall a b.
SchemaP SwaggerDoc Object [Pair] MemberUpdate (a -> b)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate a
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> MemberUpdate -> Maybe Bool
mupHidden (MemberUpdate -> Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Bool) (Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Bool)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Bool) (Maybe Bool)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value Bool Bool
-> SchemaP SwaggerDoc Object [Pair] Bool (Maybe Bool)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"hidden" SchemaP NamedSwaggerDoc Value Value Bool Bool
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
SchemaP
SwaggerDoc Object [Pair] MemberUpdate (Maybe Text -> MemberUpdate)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate MemberUpdate
forall a b.
SchemaP SwaggerDoc Object [Pair] MemberUpdate (a -> b)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate a
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> MemberUpdate -> Maybe Text
mupHiddenRef (MemberUpdate -> Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] MemberUpdate (Maybe Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Text) (Maybe Text)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value Text Text
-> SchemaP SwaggerDoc Object [Pair] Text (Maybe Text)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"hidden_ref" SchemaP NamedSwaggerDoc Value Value Text Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
instance Arbitrary MemberUpdate where
arbitrary :: Gen MemberUpdate
arbitrary =
(GenericUniform MemberUpdate -> MemberUpdate
forall a. GenericUniform a -> a
getGenericUniform (GenericUniform MemberUpdate -> MemberUpdate)
-> Gen (GenericUniform MemberUpdate) -> Gen MemberUpdate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (GenericUniform MemberUpdate)
forall a. Arbitrary a => Gen a
arbitrary)
Gen MemberUpdate -> (MemberUpdate -> Bool) -> Gen MemberUpdate
forall a. Gen a -> (a -> Bool) -> Gen a
`QC.suchThat` (Either String MemberUpdate -> Bool
forall a b. Either a b -> Bool
isRight (Either String MemberUpdate -> Bool)
-> (MemberUpdate -> Either String MemberUpdate)
-> MemberUpdate
-> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MemberUpdate -> Either String MemberUpdate
validateMemberUpdate)
validateMemberUpdate :: MemberUpdate -> Either String MemberUpdate
validateMemberUpdate :: MemberUpdate -> Either String MemberUpdate
validateMemberUpdate MemberUpdate
u =
if Maybe MutedStatus -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe MutedStatus
mupOtrMuteStatus MemberUpdate
u)
Bool -> Bool -> Bool
|| Maybe Text -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe Text
mupOtrMuteRef MemberUpdate
u)
Bool -> Bool -> Bool
|| Maybe Bool -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe Bool
mupOtrArchive MemberUpdate
u)
Bool -> Bool -> Bool
|| Maybe Text -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe Text
mupOtrArchiveRef MemberUpdate
u)
Bool -> Bool -> Bool
|| Maybe Bool -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe Bool
mupHidden MemberUpdate
u)
Bool -> Bool -> Bool
|| Maybe Text -> Bool
forall a. Maybe a -> Bool
isJust (MemberUpdate -> Maybe Text
mupHiddenRef MemberUpdate
u)
then MemberUpdate -> Either String MemberUpdate
forall a b. b -> Either a b
Right MemberUpdate
u
else
String -> Either String MemberUpdate
forall a b. a -> Either a b
Left
String
"One of { 'otr_muted_ref', 'otr_archived', 'otr_archived_ref', \
\'hidden', 'hidden_ref', 'conversation_role'} required."
data OtherMemberUpdate = OtherMemberUpdate
{ OtherMemberUpdate -> Maybe RoleName
omuConvRoleName :: Maybe RoleName
}
deriving stock (OtherMemberUpdate -> OtherMemberUpdate -> Bool
(OtherMemberUpdate -> OtherMemberUpdate -> Bool)
-> (OtherMemberUpdate -> OtherMemberUpdate -> Bool)
-> Eq OtherMemberUpdate
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: OtherMemberUpdate -> OtherMemberUpdate -> Bool
== :: OtherMemberUpdate -> OtherMemberUpdate -> Bool
$c/= :: OtherMemberUpdate -> OtherMemberUpdate -> Bool
/= :: OtherMemberUpdate -> OtherMemberUpdate -> Bool
Eq, Int -> OtherMemberUpdate -> ShowS
[OtherMemberUpdate] -> ShowS
OtherMemberUpdate -> String
(Int -> OtherMemberUpdate -> ShowS)
-> (OtherMemberUpdate -> String)
-> ([OtherMemberUpdate] -> ShowS)
-> Show OtherMemberUpdate
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OtherMemberUpdate -> ShowS
showsPrec :: Int -> OtherMemberUpdate -> ShowS
$cshow :: OtherMemberUpdate -> String
show :: OtherMemberUpdate -> String
$cshowList :: [OtherMemberUpdate] -> ShowS
showList :: [OtherMemberUpdate] -> ShowS
Show, (forall x. OtherMemberUpdate -> Rep OtherMemberUpdate x)
-> (forall x. Rep OtherMemberUpdate x -> OtherMemberUpdate)
-> Generic OtherMemberUpdate
forall x. Rep OtherMemberUpdate x -> OtherMemberUpdate
forall x. OtherMemberUpdate -> Rep OtherMemberUpdate x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. OtherMemberUpdate -> Rep OtherMemberUpdate x
from :: forall x. OtherMemberUpdate -> Rep OtherMemberUpdate x
$cto :: forall x. Rep OtherMemberUpdate x -> OtherMemberUpdate
to :: forall x. Rep OtherMemberUpdate x -> OtherMemberUpdate
Generic)
deriving (Value -> Parser [OtherMemberUpdate]
Value -> Parser OtherMemberUpdate
(Value -> Parser OtherMemberUpdate)
-> (Value -> Parser [OtherMemberUpdate])
-> FromJSON OtherMemberUpdate
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser OtherMemberUpdate
parseJSON :: Value -> Parser OtherMemberUpdate
$cparseJSONList :: Value -> Parser [OtherMemberUpdate]
parseJSONList :: Value -> Parser [OtherMemberUpdate]
FromJSON, [OtherMemberUpdate] -> Value
[OtherMemberUpdate] -> Encoding
OtherMemberUpdate -> Value
OtherMemberUpdate -> Encoding
(OtherMemberUpdate -> Value)
-> (OtherMemberUpdate -> Encoding)
-> ([OtherMemberUpdate] -> Value)
-> ([OtherMemberUpdate] -> Encoding)
-> ToJSON OtherMemberUpdate
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: OtherMemberUpdate -> Value
toJSON :: OtherMemberUpdate -> Value
$ctoEncoding :: OtherMemberUpdate -> Encoding
toEncoding :: OtherMemberUpdate -> Encoding
$ctoJSONList :: [OtherMemberUpdate] -> Value
toJSONList :: [OtherMemberUpdate] -> Value
$ctoEncodingList :: [OtherMemberUpdate] -> Encoding
toEncodingList :: [OtherMemberUpdate] -> Encoding
ToJSON, Typeable OtherMemberUpdate
Typeable OtherMemberUpdate =>
(Proxy OtherMemberUpdate
-> Declare (Definitions Schema) NamedSchema)
-> ToSchema OtherMemberUpdate
Proxy OtherMemberUpdate -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy OtherMemberUpdate -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy OtherMemberUpdate -> Declare (Definitions Schema) NamedSchema
S.ToSchema) via (Schema OtherMemberUpdate)
instance Arbitrary OtherMemberUpdate where
arbitrary :: Gen OtherMemberUpdate
arbitrary = Maybe RoleName -> OtherMemberUpdate
OtherMemberUpdate (Maybe RoleName -> OtherMemberUpdate)
-> (RoleName -> Maybe RoleName) -> RoleName -> OtherMemberUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. RoleName -> Maybe RoleName
forall a. a -> Maybe a
Just (RoleName -> OtherMemberUpdate)
-> Gen RoleName -> Gen OtherMemberUpdate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen RoleName
forall a. Arbitrary a => Gen a
arbitrary
instance ToSchema OtherMemberUpdate where
schema :: ValueSchema NamedSwaggerDoc OtherMemberUpdate
schema =
(ValueSchema NamedSwaggerDoc OtherMemberUpdate
-> (OtherMemberUpdate -> Parser OtherMemberUpdate)
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate
forall doc v w a b b'.
SchemaP doc v w a b -> (b -> Parser b') -> SchemaP doc v w a b'
`withParser` ((String -> Parser OtherMemberUpdate)
-> (OtherMemberUpdate -> Parser OtherMemberUpdate)
-> Either String OtherMemberUpdate
-> Parser OtherMemberUpdate
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either String -> Parser OtherMemberUpdate
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail OtherMemberUpdate -> Parser OtherMemberUpdate
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either String OtherMemberUpdate -> Parser OtherMemberUpdate)
-> (OtherMemberUpdate -> Either String OtherMemberUpdate)
-> OtherMemberUpdate
-> Parser OtherMemberUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OtherMemberUpdate -> Either String OtherMemberUpdate
validateOtherMemberUpdate))
(ValueSchema NamedSwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate)
-> (ObjectSchema SwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate)
-> ObjectSchema SwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text
-> (NamedSwaggerDoc -> NamedSwaggerDoc)
-> ObjectSchema SwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate
forall doc doc' a.
HasObject doc doc' =>
Text -> (doc' -> doc') -> ObjectSchema doc a -> ValueSchema doc' a
objectWithDocModifier
Text
"OtherMemberUpdate"
((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
"Update user properties of other members relative to a conversation")
(ObjectSchema SwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate)
-> ObjectSchema SwaggerDoc OtherMemberUpdate
-> ValueSchema NamedSwaggerDoc OtherMemberUpdate
forall a b. (a -> b) -> a -> b
$ Maybe RoleName -> OtherMemberUpdate
OtherMemberUpdate
(Maybe RoleName -> OtherMemberUpdate)
-> SchemaP
SwaggerDoc Object [Pair] OtherMemberUpdate (Maybe RoleName)
-> ObjectSchema SwaggerDoc OtherMemberUpdate
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> OtherMemberUpdate -> Maybe RoleName
omuConvRoleName (OtherMemberUpdate -> Maybe RoleName)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe RoleName) (Maybe RoleName)
-> SchemaP
SwaggerDoc Object [Pair] OtherMemberUpdate (Maybe RoleName)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] RoleName (Maybe RoleName)
-> SchemaP
SwaggerDoc Object [Pair] (Maybe RoleName) (Maybe RoleName)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP NamedSwaggerDoc Value Value RoleName RoleName
-> SchemaP SwaggerDoc Object [Pair] RoleName (Maybe RoleName)
forall doc doc' a b.
(HasOpt doc, HasField doc' doc) =>
Text
-> SchemaP doc' Value Value a b
-> SchemaP doc Object [Pair] a (Maybe b)
optField Text
"conversation_role" SchemaP NamedSwaggerDoc Value Value RoleName RoleName
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
validateOtherMemberUpdate :: OtherMemberUpdate -> Either String OtherMemberUpdate
validateOtherMemberUpdate :: OtherMemberUpdate -> Either String OtherMemberUpdate
validateOtherMemberUpdate OtherMemberUpdate
u
| Maybe RoleName -> Bool
forall a. Maybe a -> Bool
isJust (OtherMemberUpdate -> Maybe RoleName
omuConvRoleName OtherMemberUpdate
u) = OtherMemberUpdate -> Either String OtherMemberUpdate
forall a. a -> Either String a
forall (f :: * -> *) a. Applicative f => a -> f a
pure OtherMemberUpdate
u
| Bool
otherwise = String -> Either String OtherMemberUpdate
forall a b. a -> Either a b
Left String
"'conversation_role' is required"