{-# LANGUAGE RecordWildCards #-}

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

-- | Identify users for law enforcement.  (Wire has legal requirements to cooperate with the
-- authorities.  The wire backend operations team uses this to answer identification requests
-- manually.)
module Wire.API.Routes.Internal.Brig.EJPD
  ( EJPDRequestBody (EJPDRequestBody, ejpdRequestBody),
    EJPDResponseBody (EJPDResponseBody, ejpdResponseBody),
    EJPDResponseItemRoot (..),
    EJPDResponseItemLeaf (..),
    EJPDConvInfo (..),
    EJPDContact (..),
    EJPDTeamContacts (..),
    toEJPDResponseItemLeaf,
  )
where

import Data.Aeson qualified as Aeson
import Data.Handle (Handle)
import Data.Id (ConvId, TeamId, UserId)
import Data.OpenApi qualified as OpenAPI
import Data.Qualified
import Data.Schema
import Data.Set as Set
import Imports hiding (head)
import Test.QuickCheck (Arbitrary)
import Wire.API.Connection (Relation)
import Wire.API.Team.Member (NewListType)
import Wire.API.User.Identity (EmailAddress, Phone)
import Wire.API.User.Profile (Name)
import Wire.Arbitrary (GenericUniform (..))

newtype EJPDRequestBody = EJPDRequestBody {EJPDRequestBody -> [Handle]
ejpdRequestBody :: [Handle]}
  deriving stock (EJPDRequestBody -> EJPDRequestBody -> Bool
(EJPDRequestBody -> EJPDRequestBody -> Bool)
-> (EJPDRequestBody -> EJPDRequestBody -> Bool)
-> Eq EJPDRequestBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDRequestBody -> EJPDRequestBody -> Bool
== :: EJPDRequestBody -> EJPDRequestBody -> Bool
$c/= :: EJPDRequestBody -> EJPDRequestBody -> Bool
/= :: EJPDRequestBody -> EJPDRequestBody -> Bool
Eq, Int -> EJPDRequestBody -> ShowS
[EJPDRequestBody] -> ShowS
EJPDRequestBody -> String
(Int -> EJPDRequestBody -> ShowS)
-> (EJPDRequestBody -> String)
-> ([EJPDRequestBody] -> ShowS)
-> Show EJPDRequestBody
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDRequestBody -> ShowS
showsPrec :: Int -> EJPDRequestBody -> ShowS
$cshow :: EJPDRequestBody -> String
show :: EJPDRequestBody -> String
$cshowList :: [EJPDRequestBody] -> ShowS
showList :: [EJPDRequestBody] -> ShowS
Show, (forall x. EJPDRequestBody -> Rep EJPDRequestBody x)
-> (forall x. Rep EJPDRequestBody x -> EJPDRequestBody)
-> Generic EJPDRequestBody
forall x. Rep EJPDRequestBody x -> EJPDRequestBody
forall x. EJPDRequestBody -> Rep EJPDRequestBody x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDRequestBody -> Rep EJPDRequestBody x
from :: forall x. EJPDRequestBody -> Rep EJPDRequestBody x
$cto :: forall x. Rep EJPDRequestBody x -> EJPDRequestBody
to :: forall x. Rep EJPDRequestBody x -> EJPDRequestBody
Generic)
  deriving (Gen EJPDRequestBody
Gen EJPDRequestBody
-> (EJPDRequestBody -> [EJPDRequestBody])
-> Arbitrary EJPDRequestBody
EJPDRequestBody -> [EJPDRequestBody]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDRequestBody
arbitrary :: Gen EJPDRequestBody
$cshrink :: EJPDRequestBody -> [EJPDRequestBody]
shrink :: EJPDRequestBody -> [EJPDRequestBody]
Arbitrary) via (GenericUniform EJPDRequestBody)
  deriving ([EJPDRequestBody] -> Value
[EJPDRequestBody] -> Encoding
EJPDRequestBody -> Value
EJPDRequestBody -> Encoding
(EJPDRequestBody -> Value)
-> (EJPDRequestBody -> Encoding)
-> ([EJPDRequestBody] -> Value)
-> ([EJPDRequestBody] -> Encoding)
-> ToJSON EJPDRequestBody
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: EJPDRequestBody -> Value
toJSON :: EJPDRequestBody -> Value
$ctoEncoding :: EJPDRequestBody -> Encoding
toEncoding :: EJPDRequestBody -> Encoding
$ctoJSONList :: [EJPDRequestBody] -> Value
toJSONList :: [EJPDRequestBody] -> Value
$ctoEncodingList :: [EJPDRequestBody] -> Encoding
toEncodingList :: [EJPDRequestBody] -> Encoding
Aeson.ToJSON, Value -> Parser [EJPDRequestBody]
Value -> Parser EJPDRequestBody
(Value -> Parser EJPDRequestBody)
-> (Value -> Parser [EJPDRequestBody]) -> FromJSON EJPDRequestBody
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser EJPDRequestBody
parseJSON :: Value -> Parser EJPDRequestBody
$cparseJSONList :: Value -> Parser [EJPDRequestBody]
parseJSONList :: Value -> Parser [EJPDRequestBody]
Aeson.FromJSON, Typeable EJPDRequestBody
Typeable EJPDRequestBody =>
(Proxy EJPDRequestBody -> Declare (Definitions Schema) NamedSchema)
-> ToSchema EJPDRequestBody
Proxy EJPDRequestBody -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy EJPDRequestBody -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy EJPDRequestBody -> Declare (Definitions Schema) NamedSchema
OpenAPI.ToSchema) via (Schema EJPDRequestBody)

newtype EJPDResponseBody = EJPDResponseBody {EJPDResponseBody -> [EJPDResponseItemRoot]
ejpdResponseBody :: [EJPDResponseItemRoot]}
  deriving stock (EJPDResponseBody -> EJPDResponseBody -> Bool
(EJPDResponseBody -> EJPDResponseBody -> Bool)
-> (EJPDResponseBody -> EJPDResponseBody -> Bool)
-> Eq EJPDResponseBody
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDResponseBody -> EJPDResponseBody -> Bool
== :: EJPDResponseBody -> EJPDResponseBody -> Bool
$c/= :: EJPDResponseBody -> EJPDResponseBody -> Bool
/= :: EJPDResponseBody -> EJPDResponseBody -> Bool
Eq, Int -> EJPDResponseBody -> ShowS
[EJPDResponseBody] -> ShowS
EJPDResponseBody -> String
(Int -> EJPDResponseBody -> ShowS)
-> (EJPDResponseBody -> String)
-> ([EJPDResponseBody] -> ShowS)
-> Show EJPDResponseBody
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDResponseBody -> ShowS
showsPrec :: Int -> EJPDResponseBody -> ShowS
$cshow :: EJPDResponseBody -> String
show :: EJPDResponseBody -> String
$cshowList :: [EJPDResponseBody] -> ShowS
showList :: [EJPDResponseBody] -> ShowS
Show, (forall x. EJPDResponseBody -> Rep EJPDResponseBody x)
-> (forall x. Rep EJPDResponseBody x -> EJPDResponseBody)
-> Generic EJPDResponseBody
forall x. Rep EJPDResponseBody x -> EJPDResponseBody
forall x. EJPDResponseBody -> Rep EJPDResponseBody x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDResponseBody -> Rep EJPDResponseBody x
from :: forall x. EJPDResponseBody -> Rep EJPDResponseBody x
$cto :: forall x. Rep EJPDResponseBody x -> EJPDResponseBody
to :: forall x. Rep EJPDResponseBody x -> EJPDResponseBody
Generic)
  deriving (Gen EJPDResponseBody
Gen EJPDResponseBody
-> (EJPDResponseBody -> [EJPDResponseBody])
-> Arbitrary EJPDResponseBody
EJPDResponseBody -> [EJPDResponseBody]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDResponseBody
arbitrary :: Gen EJPDResponseBody
$cshrink :: EJPDResponseBody -> [EJPDResponseBody]
shrink :: EJPDResponseBody -> [EJPDResponseBody]
Arbitrary) via (GenericUniform EJPDResponseBody)
  deriving ([EJPDResponseBody] -> Value
[EJPDResponseBody] -> Encoding
EJPDResponseBody -> Value
EJPDResponseBody -> Encoding
(EJPDResponseBody -> Value)
-> (EJPDResponseBody -> Encoding)
-> ([EJPDResponseBody] -> Value)
-> ([EJPDResponseBody] -> Encoding)
-> ToJSON EJPDResponseBody
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: EJPDResponseBody -> Value
toJSON :: EJPDResponseBody -> Value
$ctoEncoding :: EJPDResponseBody -> Encoding
toEncoding :: EJPDResponseBody -> Encoding
$ctoJSONList :: [EJPDResponseBody] -> Value
toJSONList :: [EJPDResponseBody] -> Value
$ctoEncodingList :: [EJPDResponseBody] -> Encoding
toEncodingList :: [EJPDResponseBody] -> Encoding
Aeson.ToJSON, Value -> Parser [EJPDResponseBody]
Value -> Parser EJPDResponseBody
(Value -> Parser EJPDResponseBody)
-> (Value -> Parser [EJPDResponseBody])
-> FromJSON EJPDResponseBody
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser EJPDResponseBody
parseJSON :: Value -> Parser EJPDResponseBody
$cparseJSONList :: Value -> Parser [EJPDResponseBody]
parseJSONList :: Value -> Parser [EJPDResponseBody]
Aeson.FromJSON, Typeable EJPDResponseBody
Typeable EJPDResponseBody =>
(Proxy EJPDResponseBody
 -> Declare (Definitions Schema) NamedSchema)
-> ToSchema EJPDResponseBody
Proxy EJPDResponseBody -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy EJPDResponseBody -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy EJPDResponseBody -> Declare (Definitions Schema) NamedSchema
OpenAPI.ToSchema) via (Schema EJPDResponseBody)

data EJPDResponseItemRoot = EJPDResponseItemRoot
  { EJPDResponseItemRoot -> Qualified UserId
ejpdResponseRootUserId :: Qualified UserId,
    EJPDResponseItemRoot -> Maybe TeamId
ejpdResponseRootTeamId :: Maybe TeamId,
    EJPDResponseItemRoot -> Name
ejpdResponseRootName :: Name,
    EJPDResponseItemRoot -> Maybe Handle
ejpdResponseRootHandle :: Maybe Handle,
    EJPDResponseItemRoot -> Maybe EmailAddress
ejpdResponseRootEmail :: Maybe EmailAddress,
    EJPDResponseItemRoot -> Maybe Phone
ejpdResponseRootPhone :: Maybe Phone,
    EJPDResponseItemRoot -> Set Text
ejpdResponseRootPushTokens :: Set Text, -- 'Wire.API.Push.V2.Token.Token', but that would produce an orphan instance.
    EJPDResponseItemRoot -> Maybe (Set EJPDContact)
ejpdResponseRootContacts :: Maybe (Set EJPDContact),
    EJPDResponseItemRoot -> Maybe EJPDTeamContacts
ejpdResponseRootTeamContacts :: Maybe EJPDTeamContacts,
    EJPDResponseItemRoot -> Maybe (Set EJPDConvInfo)
ejpdResponseRootConversations :: Maybe (Set EJPDConvInfo),
    EJPDResponseItemRoot -> Maybe (Set Text)
ejpdResponseRootAssets :: Maybe (Set Text) -- urls pointing to s3 resources
  }
  deriving stock (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
(EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> Eq EJPDResponseItemRoot
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
== :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
$c/= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
/= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
Eq, Eq EJPDResponseItemRoot
Eq EJPDResponseItemRoot =>
(EJPDResponseItemRoot -> EJPDResponseItemRoot -> Ordering)
-> (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> (EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool)
-> (EJPDResponseItemRoot
    -> EJPDResponseItemRoot -> EJPDResponseItemRoot)
-> (EJPDResponseItemRoot
    -> EJPDResponseItemRoot -> EJPDResponseItemRoot)
-> Ord EJPDResponseItemRoot
EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
EJPDResponseItemRoot -> EJPDResponseItemRoot -> Ordering
EJPDResponseItemRoot
-> EJPDResponseItemRoot -> EJPDResponseItemRoot
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 :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Ordering
compare :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Ordering
$c< :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
< :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
$c<= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
<= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
$c> :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
> :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
$c>= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
>= :: EJPDResponseItemRoot -> EJPDResponseItemRoot -> Bool
$cmax :: EJPDResponseItemRoot
-> EJPDResponseItemRoot -> EJPDResponseItemRoot
max :: EJPDResponseItemRoot
-> EJPDResponseItemRoot -> EJPDResponseItemRoot
$cmin :: EJPDResponseItemRoot
-> EJPDResponseItemRoot -> EJPDResponseItemRoot
min :: EJPDResponseItemRoot
-> EJPDResponseItemRoot -> EJPDResponseItemRoot
Ord, Int -> EJPDResponseItemRoot -> ShowS
[EJPDResponseItemRoot] -> ShowS
EJPDResponseItemRoot -> String
(Int -> EJPDResponseItemRoot -> ShowS)
-> (EJPDResponseItemRoot -> String)
-> ([EJPDResponseItemRoot] -> ShowS)
-> Show EJPDResponseItemRoot
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDResponseItemRoot -> ShowS
showsPrec :: Int -> EJPDResponseItemRoot -> ShowS
$cshow :: EJPDResponseItemRoot -> String
show :: EJPDResponseItemRoot -> String
$cshowList :: [EJPDResponseItemRoot] -> ShowS
showList :: [EJPDResponseItemRoot] -> ShowS
Show, (forall x. EJPDResponseItemRoot -> Rep EJPDResponseItemRoot x)
-> (forall x. Rep EJPDResponseItemRoot x -> EJPDResponseItemRoot)
-> Generic EJPDResponseItemRoot
forall x. Rep EJPDResponseItemRoot x -> EJPDResponseItemRoot
forall x. EJPDResponseItemRoot -> Rep EJPDResponseItemRoot x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDResponseItemRoot -> Rep EJPDResponseItemRoot x
from :: forall x. EJPDResponseItemRoot -> Rep EJPDResponseItemRoot x
$cto :: forall x. Rep EJPDResponseItemRoot x -> EJPDResponseItemRoot
to :: forall x. Rep EJPDResponseItemRoot x -> EJPDResponseItemRoot
Generic)
  deriving (Gen EJPDResponseItemRoot
Gen EJPDResponseItemRoot
-> (EJPDResponseItemRoot -> [EJPDResponseItemRoot])
-> Arbitrary EJPDResponseItemRoot
EJPDResponseItemRoot -> [EJPDResponseItemRoot]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDResponseItemRoot
arbitrary :: Gen EJPDResponseItemRoot
$cshrink :: EJPDResponseItemRoot -> [EJPDResponseItemRoot]
shrink :: EJPDResponseItemRoot -> [EJPDResponseItemRoot]
Arbitrary) via (GenericUniform EJPDResponseItemRoot)

data EJPDResponseItemLeaf = EJPDResponseItemLeaf
  { EJPDResponseItemLeaf -> Qualified UserId
ejpdResponseLeafUserId :: Qualified UserId,
    EJPDResponseItemLeaf -> Maybe TeamId
ejpdResponseLeafTeamId :: Maybe TeamId,
    EJPDResponseItemLeaf -> Name
ejpdResponseLeafName :: Name,
    EJPDResponseItemLeaf -> Maybe Handle
ejpdResponseLeafHandle :: Maybe Handle,
    EJPDResponseItemLeaf -> Maybe EmailAddress
ejpdResponseLeafEmail :: Maybe EmailAddress,
    EJPDResponseItemLeaf -> Maybe Phone
ejpdResponseLeafPhone :: Maybe Phone,
    EJPDResponseItemLeaf -> Set Text
ejpdResponseLeafPushTokens :: Set Text, -- 'Wire.API.Push.V2.Token.Token', but that would produce an orphan instance.
    EJPDResponseItemLeaf -> Maybe (Set EJPDConvInfo)
ejpdResponseLeafConversations :: Maybe (Set EJPDConvInfo),
    EJPDResponseItemLeaf -> Maybe (Set Text)
ejpdResponseLeafAssets :: Maybe (Set Text) -- urls pointing to s3 resources
  }
  deriving stock (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
(EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> Eq EJPDResponseItemLeaf
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
== :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
$c/= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
/= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
Eq, Eq EJPDResponseItemLeaf
Eq EJPDResponseItemLeaf =>
(EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Ordering)
-> (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> (EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool)
-> (EJPDResponseItemLeaf
    -> EJPDResponseItemLeaf -> EJPDResponseItemLeaf)
-> (EJPDResponseItemLeaf
    -> EJPDResponseItemLeaf -> EJPDResponseItemLeaf)
-> Ord EJPDResponseItemLeaf
EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Ordering
EJPDResponseItemLeaf
-> EJPDResponseItemLeaf -> EJPDResponseItemLeaf
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 :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Ordering
compare :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Ordering
$c< :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
< :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
$c<= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
<= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
$c> :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
> :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
$c>= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
>= :: EJPDResponseItemLeaf -> EJPDResponseItemLeaf -> Bool
$cmax :: EJPDResponseItemLeaf
-> EJPDResponseItemLeaf -> EJPDResponseItemLeaf
max :: EJPDResponseItemLeaf
-> EJPDResponseItemLeaf -> EJPDResponseItemLeaf
$cmin :: EJPDResponseItemLeaf
-> EJPDResponseItemLeaf -> EJPDResponseItemLeaf
min :: EJPDResponseItemLeaf
-> EJPDResponseItemLeaf -> EJPDResponseItemLeaf
Ord, Int -> EJPDResponseItemLeaf -> ShowS
[EJPDResponseItemLeaf] -> ShowS
EJPDResponseItemLeaf -> String
(Int -> EJPDResponseItemLeaf -> ShowS)
-> (EJPDResponseItemLeaf -> String)
-> ([EJPDResponseItemLeaf] -> ShowS)
-> Show EJPDResponseItemLeaf
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDResponseItemLeaf -> ShowS
showsPrec :: Int -> EJPDResponseItemLeaf -> ShowS
$cshow :: EJPDResponseItemLeaf -> String
show :: EJPDResponseItemLeaf -> String
$cshowList :: [EJPDResponseItemLeaf] -> ShowS
showList :: [EJPDResponseItemLeaf] -> ShowS
Show, (forall x. EJPDResponseItemLeaf -> Rep EJPDResponseItemLeaf x)
-> (forall x. Rep EJPDResponseItemLeaf x -> EJPDResponseItemLeaf)
-> Generic EJPDResponseItemLeaf
forall x. Rep EJPDResponseItemLeaf x -> EJPDResponseItemLeaf
forall x. EJPDResponseItemLeaf -> Rep EJPDResponseItemLeaf x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDResponseItemLeaf -> Rep EJPDResponseItemLeaf x
from :: forall x. EJPDResponseItemLeaf -> Rep EJPDResponseItemLeaf x
$cto :: forall x. Rep EJPDResponseItemLeaf x -> EJPDResponseItemLeaf
to :: forall x. Rep EJPDResponseItemLeaf x -> EJPDResponseItemLeaf
Generic)
  deriving (Gen EJPDResponseItemLeaf
Gen EJPDResponseItemLeaf
-> (EJPDResponseItemLeaf -> [EJPDResponseItemLeaf])
-> Arbitrary EJPDResponseItemLeaf
EJPDResponseItemLeaf -> [EJPDResponseItemLeaf]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDResponseItemLeaf
arbitrary :: Gen EJPDResponseItemLeaf
$cshrink :: EJPDResponseItemLeaf -> [EJPDResponseItemLeaf]
shrink :: EJPDResponseItemLeaf -> [EJPDResponseItemLeaf]
Arbitrary) via (GenericUniform EJPDResponseItemLeaf)

data EJPDContact
  = -- | local or remote contact with relation
    EJPDContactFound
    { EJPDContact -> Relation
ejpdContactRelation :: Relation,
      EJPDContact -> EJPDResponseItemLeaf
ejpdContactFound :: EJPDResponseItemLeaf
    }
  deriving stock (EJPDContact -> EJPDContact -> Bool
(EJPDContact -> EJPDContact -> Bool)
-> (EJPDContact -> EJPDContact -> Bool) -> Eq EJPDContact
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDContact -> EJPDContact -> Bool
== :: EJPDContact -> EJPDContact -> Bool
$c/= :: EJPDContact -> EJPDContact -> Bool
/= :: EJPDContact -> EJPDContact -> Bool
Eq, Eq EJPDContact
Eq EJPDContact =>
(EJPDContact -> EJPDContact -> Ordering)
-> (EJPDContact -> EJPDContact -> Bool)
-> (EJPDContact -> EJPDContact -> Bool)
-> (EJPDContact -> EJPDContact -> Bool)
-> (EJPDContact -> EJPDContact -> Bool)
-> (EJPDContact -> EJPDContact -> EJPDContact)
-> (EJPDContact -> EJPDContact -> EJPDContact)
-> Ord EJPDContact
EJPDContact -> EJPDContact -> Bool
EJPDContact -> EJPDContact -> Ordering
EJPDContact -> EJPDContact -> EJPDContact
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 :: EJPDContact -> EJPDContact -> Ordering
compare :: EJPDContact -> EJPDContact -> Ordering
$c< :: EJPDContact -> EJPDContact -> Bool
< :: EJPDContact -> EJPDContact -> Bool
$c<= :: EJPDContact -> EJPDContact -> Bool
<= :: EJPDContact -> EJPDContact -> Bool
$c> :: EJPDContact -> EJPDContact -> Bool
> :: EJPDContact -> EJPDContact -> Bool
$c>= :: EJPDContact -> EJPDContact -> Bool
>= :: EJPDContact -> EJPDContact -> Bool
$cmax :: EJPDContact -> EJPDContact -> EJPDContact
max :: EJPDContact -> EJPDContact -> EJPDContact
$cmin :: EJPDContact -> EJPDContact -> EJPDContact
min :: EJPDContact -> EJPDContact -> EJPDContact
Ord, Int -> EJPDContact -> ShowS
[EJPDContact] -> ShowS
EJPDContact -> String
(Int -> EJPDContact -> ShowS)
-> (EJPDContact -> String)
-> ([EJPDContact] -> ShowS)
-> Show EJPDContact
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDContact -> ShowS
showsPrec :: Int -> EJPDContact -> ShowS
$cshow :: EJPDContact -> String
show :: EJPDContact -> String
$cshowList :: [EJPDContact] -> ShowS
showList :: [EJPDContact] -> ShowS
Show, (forall x. EJPDContact -> Rep EJPDContact x)
-> (forall x. Rep EJPDContact x -> EJPDContact)
-> Generic EJPDContact
forall x. Rep EJPDContact x -> EJPDContact
forall x. EJPDContact -> Rep EJPDContact x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDContact -> Rep EJPDContact x
from :: forall x. EJPDContact -> Rep EJPDContact x
$cto :: forall x. Rep EJPDContact x -> EJPDContact
to :: forall x. Rep EJPDContact x -> EJPDContact
Generic)
  deriving (Gen EJPDContact
Gen EJPDContact
-> (EJPDContact -> [EJPDContact]) -> Arbitrary EJPDContact
EJPDContact -> [EJPDContact]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDContact
arbitrary :: Gen EJPDContact
$cshrink :: EJPDContact -> [EJPDContact]
shrink :: EJPDContact -> [EJPDContact]
Arbitrary) via (GenericUniform EJPDContact)
  deriving ([EJPDContact] -> Value
[EJPDContact] -> Encoding
EJPDContact -> Value
EJPDContact -> Encoding
(EJPDContact -> Value)
-> (EJPDContact -> Encoding)
-> ([EJPDContact] -> Value)
-> ([EJPDContact] -> Encoding)
-> ToJSON EJPDContact
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: EJPDContact -> Value
toJSON :: EJPDContact -> Value
$ctoEncoding :: EJPDContact -> Encoding
toEncoding :: EJPDContact -> Encoding
$ctoJSONList :: [EJPDContact] -> Value
toJSONList :: [EJPDContact] -> Value
$ctoEncodingList :: [EJPDContact] -> Encoding
toEncodingList :: [EJPDContact] -> Encoding
Aeson.ToJSON, Value -> Parser [EJPDContact]
Value -> Parser EJPDContact
(Value -> Parser EJPDContact)
-> (Value -> Parser [EJPDContact]) -> FromJSON EJPDContact
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser EJPDContact
parseJSON :: Value -> Parser EJPDContact
$cparseJSONList :: Value -> Parser [EJPDContact]
parseJSONList :: Value -> Parser [EJPDContact]
Aeson.FromJSON, Typeable EJPDContact
Typeable EJPDContact =>
(Proxy EJPDContact -> Declare (Definitions Schema) NamedSchema)
-> ToSchema EJPDContact
Proxy EJPDContact -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy EJPDContact -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy EJPDContact -> Declare (Definitions Schema) NamedSchema
OpenAPI.ToSchema) via Schema EJPDContact

data EJPDTeamContacts = EJPDTeamContacts
  { EJPDTeamContacts -> Set EJPDResponseItemLeaf
ejpdTeamContacts :: Set EJPDResponseItemLeaf,
    EJPDTeamContacts -> NewListType
ejpdTeamContactsListType :: NewListType
  }
  deriving stock (EJPDTeamContacts -> EJPDTeamContacts -> Bool
(EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> (EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> Eq EJPDTeamContacts
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
== :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
$c/= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
/= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
Eq, Eq EJPDTeamContacts
Eq EJPDTeamContacts =>
(EJPDTeamContacts -> EJPDTeamContacts -> Ordering)
-> (EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> (EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> (EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> (EJPDTeamContacts -> EJPDTeamContacts -> Bool)
-> (EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts)
-> (EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts)
-> Ord EJPDTeamContacts
EJPDTeamContacts -> EJPDTeamContacts -> Bool
EJPDTeamContacts -> EJPDTeamContacts -> Ordering
EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts
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 :: EJPDTeamContacts -> EJPDTeamContacts -> Ordering
compare :: EJPDTeamContacts -> EJPDTeamContacts -> Ordering
$c< :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
< :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
$c<= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
<= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
$c> :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
> :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
$c>= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
>= :: EJPDTeamContacts -> EJPDTeamContacts -> Bool
$cmax :: EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts
max :: EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts
$cmin :: EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts
min :: EJPDTeamContacts -> EJPDTeamContacts -> EJPDTeamContacts
Ord, Int -> EJPDTeamContacts -> ShowS
[EJPDTeamContacts] -> ShowS
EJPDTeamContacts -> String
(Int -> EJPDTeamContacts -> ShowS)
-> (EJPDTeamContacts -> String)
-> ([EJPDTeamContacts] -> ShowS)
-> Show EJPDTeamContacts
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDTeamContacts -> ShowS
showsPrec :: Int -> EJPDTeamContacts -> ShowS
$cshow :: EJPDTeamContacts -> String
show :: EJPDTeamContacts -> String
$cshowList :: [EJPDTeamContacts] -> ShowS
showList :: [EJPDTeamContacts] -> ShowS
Show, (forall x. EJPDTeamContacts -> Rep EJPDTeamContacts x)
-> (forall x. Rep EJPDTeamContacts x -> EJPDTeamContacts)
-> Generic EJPDTeamContacts
forall x. Rep EJPDTeamContacts x -> EJPDTeamContacts
forall x. EJPDTeamContacts -> Rep EJPDTeamContacts x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDTeamContacts -> Rep EJPDTeamContacts x
from :: forall x. EJPDTeamContacts -> Rep EJPDTeamContacts x
$cto :: forall x. Rep EJPDTeamContacts x -> EJPDTeamContacts
to :: forall x. Rep EJPDTeamContacts x -> EJPDTeamContacts
Generic)
  deriving (Gen EJPDTeamContacts
Gen EJPDTeamContacts
-> (EJPDTeamContacts -> [EJPDTeamContacts])
-> Arbitrary EJPDTeamContacts
EJPDTeamContacts -> [EJPDTeamContacts]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDTeamContacts
arbitrary :: Gen EJPDTeamContacts
$cshrink :: EJPDTeamContacts -> [EJPDTeamContacts]
shrink :: EJPDTeamContacts -> [EJPDTeamContacts]
Arbitrary) via (GenericUniform EJPDTeamContacts)

data EJPDConvInfo = EJPDConvInfo {EJPDConvInfo -> Text
ejpdConvName :: Text, EJPDConvInfo -> Qualified ConvId
ejpdConvId :: Qualified ConvId}
  deriving stock (EJPDConvInfo -> EJPDConvInfo -> Bool
(EJPDConvInfo -> EJPDConvInfo -> Bool)
-> (EJPDConvInfo -> EJPDConvInfo -> Bool) -> Eq EJPDConvInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: EJPDConvInfo -> EJPDConvInfo -> Bool
== :: EJPDConvInfo -> EJPDConvInfo -> Bool
$c/= :: EJPDConvInfo -> EJPDConvInfo -> Bool
/= :: EJPDConvInfo -> EJPDConvInfo -> Bool
Eq, Eq EJPDConvInfo
Eq EJPDConvInfo =>
(EJPDConvInfo -> EJPDConvInfo -> Ordering)
-> (EJPDConvInfo -> EJPDConvInfo -> Bool)
-> (EJPDConvInfo -> EJPDConvInfo -> Bool)
-> (EJPDConvInfo -> EJPDConvInfo -> Bool)
-> (EJPDConvInfo -> EJPDConvInfo -> Bool)
-> (EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo)
-> (EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo)
-> Ord EJPDConvInfo
EJPDConvInfo -> EJPDConvInfo -> Bool
EJPDConvInfo -> EJPDConvInfo -> Ordering
EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo
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 :: EJPDConvInfo -> EJPDConvInfo -> Ordering
compare :: EJPDConvInfo -> EJPDConvInfo -> Ordering
$c< :: EJPDConvInfo -> EJPDConvInfo -> Bool
< :: EJPDConvInfo -> EJPDConvInfo -> Bool
$c<= :: EJPDConvInfo -> EJPDConvInfo -> Bool
<= :: EJPDConvInfo -> EJPDConvInfo -> Bool
$c> :: EJPDConvInfo -> EJPDConvInfo -> Bool
> :: EJPDConvInfo -> EJPDConvInfo -> Bool
$c>= :: EJPDConvInfo -> EJPDConvInfo -> Bool
>= :: EJPDConvInfo -> EJPDConvInfo -> Bool
$cmax :: EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo
max :: EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo
$cmin :: EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo
min :: EJPDConvInfo -> EJPDConvInfo -> EJPDConvInfo
Ord, Int -> EJPDConvInfo -> ShowS
[EJPDConvInfo] -> ShowS
EJPDConvInfo -> String
(Int -> EJPDConvInfo -> ShowS)
-> (EJPDConvInfo -> String)
-> ([EJPDConvInfo] -> ShowS)
-> Show EJPDConvInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> EJPDConvInfo -> ShowS
showsPrec :: Int -> EJPDConvInfo -> ShowS
$cshow :: EJPDConvInfo -> String
show :: EJPDConvInfo -> String
$cshowList :: [EJPDConvInfo] -> ShowS
showList :: [EJPDConvInfo] -> ShowS
Show, (forall x. EJPDConvInfo -> Rep EJPDConvInfo x)
-> (forall x. Rep EJPDConvInfo x -> EJPDConvInfo)
-> Generic EJPDConvInfo
forall x. Rep EJPDConvInfo x -> EJPDConvInfo
forall x. EJPDConvInfo -> Rep EJPDConvInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. EJPDConvInfo -> Rep EJPDConvInfo x
from :: forall x. EJPDConvInfo -> Rep EJPDConvInfo x
$cto :: forall x. Rep EJPDConvInfo x -> EJPDConvInfo
to :: forall x. Rep EJPDConvInfo x -> EJPDConvInfo
Generic)
  deriving (Gen EJPDConvInfo
Gen EJPDConvInfo
-> (EJPDConvInfo -> [EJPDConvInfo]) -> Arbitrary EJPDConvInfo
EJPDConvInfo -> [EJPDConvInfo]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen EJPDConvInfo
arbitrary :: Gen EJPDConvInfo
$cshrink :: EJPDConvInfo -> [EJPDConvInfo]
shrink :: EJPDConvInfo -> [EJPDConvInfo]
Arbitrary) via (GenericUniform EJPDConvInfo)
  deriving ([EJPDConvInfo] -> Value
[EJPDConvInfo] -> Encoding
EJPDConvInfo -> Value
EJPDConvInfo -> Encoding
(EJPDConvInfo -> Value)
-> (EJPDConvInfo -> Encoding)
-> ([EJPDConvInfo] -> Value)
-> ([EJPDConvInfo] -> Encoding)
-> ToJSON EJPDConvInfo
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
$ctoJSON :: EJPDConvInfo -> Value
toJSON :: EJPDConvInfo -> Value
$ctoEncoding :: EJPDConvInfo -> Encoding
toEncoding :: EJPDConvInfo -> Encoding
$ctoJSONList :: [EJPDConvInfo] -> Value
toJSONList :: [EJPDConvInfo] -> Value
$ctoEncodingList :: [EJPDConvInfo] -> Encoding
toEncodingList :: [EJPDConvInfo] -> Encoding
Aeson.ToJSON, Value -> Parser [EJPDConvInfo]
Value -> Parser EJPDConvInfo
(Value -> Parser EJPDConvInfo)
-> (Value -> Parser [EJPDConvInfo]) -> FromJSON EJPDConvInfo
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
$cparseJSON :: Value -> Parser EJPDConvInfo
parseJSON :: Value -> Parser EJPDConvInfo
$cparseJSONList :: Value -> Parser [EJPDConvInfo]
parseJSONList :: Value -> Parser [EJPDConvInfo]
Aeson.FromJSON, Typeable EJPDConvInfo
Typeable EJPDConvInfo =>
(Proxy EJPDConvInfo -> Declare (Definitions Schema) NamedSchema)
-> ToSchema EJPDConvInfo
Proxy EJPDConvInfo -> Declare (Definitions Schema) NamedSchema
forall a.
Typeable a =>
(Proxy a -> Declare (Definitions Schema) NamedSchema) -> ToSchema a
$cdeclareNamedSchema :: Proxy EJPDConvInfo -> Declare (Definitions Schema) NamedSchema
declareNamedSchema :: Proxy EJPDConvInfo -> Declare (Definitions Schema) NamedSchema
OpenAPI.ToSchema) via Schema EJPDConvInfo

----------------------------------------------------------------------

toEJPDResponseItemLeaf :: EJPDResponseItemRoot -> EJPDResponseItemLeaf
toEJPDResponseItemLeaf :: EJPDResponseItemRoot -> EJPDResponseItemLeaf
toEJPDResponseItemLeaf EJPDResponseItemRoot {Maybe (Set Text)
Maybe (Set EJPDConvInfo)
Maybe (Set EJPDContact)
Maybe EmailAddress
Maybe TeamId
Maybe Handle
Maybe Phone
Maybe EJPDTeamContacts
Set Text
Qualified UserId
Name
$sel:ejpdResponseRootUserId:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Qualified UserId
$sel:ejpdResponseRootTeamId:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe TeamId
$sel:ejpdResponseRootName:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Name
$sel:ejpdResponseRootHandle:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe Handle
$sel:ejpdResponseRootEmail:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe EmailAddress
$sel:ejpdResponseRootPhone:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe Phone
$sel:ejpdResponseRootPushTokens:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Set Text
$sel:ejpdResponseRootContacts:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe (Set EJPDContact)
$sel:ejpdResponseRootTeamContacts:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe EJPDTeamContacts
$sel:ejpdResponseRootConversations:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe (Set EJPDConvInfo)
$sel:ejpdResponseRootAssets:EJPDResponseItemRoot :: EJPDResponseItemRoot -> Maybe (Set Text)
ejpdResponseRootUserId :: Qualified UserId
ejpdResponseRootTeamId :: Maybe TeamId
ejpdResponseRootName :: Name
ejpdResponseRootHandle :: Maybe Handle
ejpdResponseRootEmail :: Maybe EmailAddress
ejpdResponseRootPhone :: Maybe Phone
ejpdResponseRootPushTokens :: Set Text
ejpdResponseRootContacts :: Maybe (Set EJPDContact)
ejpdResponseRootTeamContacts :: Maybe EJPDTeamContacts
ejpdResponseRootConversations :: Maybe (Set EJPDConvInfo)
ejpdResponseRootAssets :: Maybe (Set Text)
..} =
  EJPDResponseItemLeaf
    { $sel:ejpdResponseLeafUserId:EJPDResponseItemLeaf :: Qualified UserId
ejpdResponseLeafUserId = Qualified UserId
ejpdResponseRootUserId,
      $sel:ejpdResponseLeafTeamId:EJPDResponseItemLeaf :: Maybe TeamId
ejpdResponseLeafTeamId = Maybe TeamId
ejpdResponseRootTeamId,
      $sel:ejpdResponseLeafName:EJPDResponseItemLeaf :: Name
ejpdResponseLeafName = Name
ejpdResponseRootName,
      $sel:ejpdResponseLeafHandle:EJPDResponseItemLeaf :: Maybe Handle
ejpdResponseLeafHandle = Maybe Handle
ejpdResponseRootHandle,
      $sel:ejpdResponseLeafEmail:EJPDResponseItemLeaf :: Maybe EmailAddress
ejpdResponseLeafEmail = Maybe EmailAddress
ejpdResponseRootEmail,
      $sel:ejpdResponseLeafPhone:EJPDResponseItemLeaf :: Maybe Phone
ejpdResponseLeafPhone = Maybe Phone
ejpdResponseRootPhone,
      $sel:ejpdResponseLeafPushTokens:EJPDResponseItemLeaf :: Set Text
ejpdResponseLeafPushTokens = Set Text
ejpdResponseRootPushTokens,
      $sel:ejpdResponseLeafConversations:EJPDResponseItemLeaf :: Maybe (Set EJPDConvInfo)
ejpdResponseLeafConversations = Maybe (Set EJPDConvInfo)
ejpdResponseRootConversations,
      $sel:ejpdResponseLeafAssets:EJPDResponseItemLeaf :: Maybe (Set Text)
ejpdResponseLeafAssets = Maybe (Set Text)
ejpdResponseRootAssets
    }

----------------------------------------------------------------------

instance ToSchema EJPDRequestBody where
  schema :: ValueSchema NamedSwaggerDoc EJPDRequestBody
schema = Text
-> SchemaP SwaggerDoc Object [Pair] EJPDRequestBody EJPDRequestBody
-> ValueSchema NamedSwaggerDoc EJPDRequestBody
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDRequestBody" do
    [Handle] -> EJPDRequestBody
EJPDRequestBody ([Handle] -> EJPDRequestBody)
-> SchemaP SwaggerDoc Object [Pair] EJPDRequestBody [Handle]
-> SchemaP SwaggerDoc Object [Pair] EJPDRequestBody EJPDRequestBody
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDRequestBody -> [Handle]
ejpdRequestBody (EJPDRequestBody -> [Handle])
-> SchemaP SwaggerDoc Object [Pair] [Handle] [Handle]
-> SchemaP SwaggerDoc Object [Pair] EJPDRequestBody [Handle]
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP SwaggerDoc Value Value [Handle] [Handle]
-> SchemaP SwaggerDoc Object [Pair] [Handle] [Handle]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"EJPDRequest" (ValueSchema NamedSwaggerDoc Handle
-> SchemaP SwaggerDoc Value Value [Handle] [Handle]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc Handle
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)

instance ToSchema EJPDResponseBody where
  schema :: ValueSchema NamedSwaggerDoc EJPDResponseBody
schema = Text
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseBody EJPDResponseBody
-> ValueSchema NamedSwaggerDoc EJPDResponseBody
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDResponseBody" do
    [EJPDResponseItemRoot] -> EJPDResponseBody
EJPDResponseBody ([EJPDResponseItemRoot] -> EJPDResponseBody)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseBody [EJPDResponseItemRoot]
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseBody EJPDResponseBody
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDResponseBody -> [EJPDResponseItemRoot]
ejpdResponseBody (EJPDResponseBody -> [EJPDResponseItemRoot])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemRoot]
     [EJPDResponseItemRoot]
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseBody [EJPDResponseItemRoot]
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
     SwaggerDoc
     Value
     Value
     [EJPDResponseItemRoot]
     [EJPDResponseItemRoot]
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemRoot]
     [EJPDResponseItemRoot]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"EJPDResponse" (ValueSchema NamedSwaggerDoc EJPDResponseItemRoot
-> SchemaP
     SwaggerDoc
     Value
     Value
     [EJPDResponseItemRoot]
     [EJPDResponseItemRoot]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc EJPDResponseItemRoot
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)

instance ToSchema EJPDResponseItemRoot where
  schema :: ValueSchema NamedSwaggerDoc EJPDResponseItemRoot
schema = Text
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot EJPDResponseItemRoot
-> ValueSchema NamedSwaggerDoc EJPDResponseItemRoot
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDResponseItemRoot" do
    Qualified UserId
-> Maybe TeamId
-> Name
-> Maybe Handle
-> Maybe EmailAddress
-> Maybe Phone
-> Set Text
-> Maybe (Set EJPDContact)
-> Maybe EJPDTeamContacts
-> Maybe (Set EJPDConvInfo)
-> Maybe (Set Text)
-> EJPDResponseItemRoot
EJPDResponseItemRoot
      (Qualified UserId
 -> Maybe TeamId
 -> Name
 -> Maybe Handle
 -> Maybe EmailAddress
 -> Maybe Phone
 -> Set Text
 -> Maybe (Set EJPDContact)
 -> Maybe EJPDTeamContacts
 -> Maybe (Set EJPDConvInfo)
 -> Maybe (Set Text)
 -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Qualified UserId)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe TeamId
      -> Name
      -> Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDResponseItemRoot -> Qualified UserId
ejpdResponseRootUserId (EJPDResponseItemRoot -> Qualified UserId)
-> SchemaP
     SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (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
"UserId" SchemaP
  NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe TeamId
   -> Name
   -> Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe TeamId)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Name
      -> Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Maybe TeamId
ejpdResponseRootTeamId (EJPDResponseItemRoot -> Maybe TeamId)
-> SchemaP SwaggerDoc Object [Pair] (Maybe TeamId) (Maybe TeamId)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe TeamId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] TeamId (Maybe TeamId)
-> SchemaP SwaggerDoc Object [Pair] (Maybe TeamId) (Maybe TeamId)
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 TeamId TeamId
-> SchemaP SwaggerDoc Object [Pair] TeamId (Maybe TeamId)
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
"TeamId" SchemaP NamedSwaggerDoc Value Value TeamId TeamId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Name
   -> Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot Name
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Name
ejpdResponseRootName (EJPDResponseItemRoot -> Name)
-> SchemaP SwaggerDoc Object [Pair] Name Name
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot Name
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value Name Name
-> SchemaP SwaggerDoc Object [Pair] Name Name
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"Name" SchemaP NamedSwaggerDoc Value Value Name Name
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe Handle)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Maybe Handle
ejpdResponseRootHandle (EJPDResponseItemRoot -> Maybe Handle)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Handle) (Maybe Handle)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe Handle)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Handle (Maybe Handle)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Handle) (Maybe Handle)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> ValueSchema NamedSwaggerDoc Handle
-> SchemaP SwaggerDoc Object [Pair] Handle (Maybe Handle)
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
"Handle" ValueSchema NamedSwaggerDoc Handle
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Maybe EmailAddress
ejpdResponseRootEmail (EJPDResponseItemRoot -> Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe EmailAddress) (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe EmailAddress)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] EmailAddress (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe EmailAddress) (Maybe EmailAddress)
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 EmailAddress EmailAddress
-> SchemaP
     SwaggerDoc Object [Pair] EmailAddress (Maybe EmailAddress)
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
"Email" SchemaP NamedSwaggerDoc Value Value EmailAddress EmailAddress
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe Phone)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Set Text
      -> Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Maybe Phone
ejpdResponseRootPhone (EJPDResponseItemRoot -> Maybe Phone)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Phone) (Maybe Phone)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe Phone)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Phone (Maybe Phone)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Phone) (Maybe Phone)
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 Phone Phone
-> SchemaP SwaggerDoc Object [Pair] Phone (Maybe Phone)
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
"Phone" SchemaP NamedSwaggerDoc Value Value Phone Phone
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Set Text
   -> Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (Set Text)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDContact)
      -> Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Set Text -> [Text]
forall a. Set a -> [a]
Set.toList (Set Text -> [Text])
-> (EJPDResponseItemRoot -> Set Text)
-> EJPDResponseItemRoot
-> [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemRoot -> Set Text
ejpdResponseRootPushTokens) (EJPDResponseItemRoot -> [Text])
-> SchemaP SwaggerDoc Object [Pair] [Text] (Set Text)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (Set Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([Text] -> Set Text
forall a. Ord a => [a] -> Set a
Set.fromList ([Text] -> Set Text)
-> SchemaP SwaggerDoc Object [Pair] [Text] [Text]
-> SchemaP SwaggerDoc Object [Pair] [Text] (Set Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
-> SchemaP SwaggerDoc Object [Pair] [Text] [Text]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"PushTokens" (ValueSchema NamedSwaggerDoc Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe (Set EJPDContact)
   -> Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDContact))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe EJPDTeamContacts
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Set EJPDContact -> [EJPDContact])
-> Maybe (Set EJPDContact) -> Maybe [EJPDContact]
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Set EJPDContact -> [EJPDContact]
forall a. Set a -> [a]
Set.toList (Maybe (Set EJPDContact) -> Maybe [EJPDContact])
-> (EJPDResponseItemRoot -> Maybe (Set EJPDContact))
-> EJPDResponseItemRoot
-> Maybe [EJPDContact]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemRoot -> Maybe (Set EJPDContact)
ejpdResponseRootContacts) (EJPDResponseItemRoot -> Maybe [EJPDContact])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDContact])
     (Maybe (Set EJPDContact))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDContact))
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([EJPDContact] -> Set EJPDContact
forall a. Ord a => [a] -> Set a
Set.fromList ([EJPDContact] -> Set EJPDContact)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDContact])
     (Maybe [EJPDContact])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDContact])
     (Maybe (Set EJPDContact))
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<$$> SchemaP
  SwaggerDoc Object [Pair] [EJPDContact] (Maybe [EJPDContact])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDContact])
     (Maybe [EJPDContact])
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP SwaggerDoc Value Value [EJPDContact] [EJPDContact]
-> SchemaP
     SwaggerDoc Object [Pair] [EJPDContact] (Maybe [EJPDContact])
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
"Contacts" (ValueSchema NamedSwaggerDoc EJPDContact
-> SchemaP SwaggerDoc Value Value [EJPDContact] [EJPDContact]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc EJPDContact
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe EJPDTeamContacts
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe EJPDTeamContacts)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text) -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemRoot -> Maybe EJPDTeamContacts
ejpdResponseRootTeamContacts (EJPDResponseItemRoot -> Maybe EJPDTeamContacts)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe EJPDTeamContacts)
     (Maybe EJPDTeamContacts)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe EJPDTeamContacts)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP
  SwaggerDoc Object [Pair] EJPDTeamContacts (Maybe EJPDTeamContacts)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe EJPDTeamContacts)
     (Maybe EJPDTeamContacts)
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 EJPDTeamContacts EJPDTeamContacts
-> SchemaP
     SwaggerDoc Object [Pair] EJPDTeamContacts (Maybe EJPDTeamContacts)
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
"TeamContacts" SchemaP
  NamedSwaggerDoc Value Value EJPDTeamContacts EJPDTeamContacts
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text) -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDConvInfo))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set Text) -> EJPDResponseItemRoot)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Set EJPDConvInfo -> [EJPDConvInfo])
-> Maybe (Set EJPDConvInfo) -> Maybe [EJPDConvInfo]
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Set EJPDConvInfo -> [EJPDConvInfo]
forall a. Set a -> [a]
Set.toList (Maybe (Set EJPDConvInfo) -> Maybe [EJPDConvInfo])
-> (EJPDResponseItemRoot -> Maybe (Set EJPDConvInfo))
-> EJPDResponseItemRoot
-> Maybe [EJPDConvInfo]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemRoot -> Maybe (Set EJPDConvInfo)
ejpdResponseRootConversations) (EJPDResponseItemRoot -> Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe (Set EJPDConvInfo))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemRoot
     (Maybe (Set EJPDConvInfo))
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([EJPDConvInfo] -> Set EJPDConvInfo
forall a. Ord a => [a] -> Set a
Set.fromList ([EJPDConvInfo] -> Set EJPDConvInfo)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe (Set EJPDConvInfo))
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<$$> SchemaP
  SwaggerDoc Object [Pair] [EJPDConvInfo] (Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe [EJPDConvInfo])
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP SwaggerDoc Value Value [EJPDConvInfo] [EJPDConvInfo]
-> SchemaP
     SwaggerDoc Object [Pair] [EJPDConvInfo] (Maybe [EJPDConvInfo])
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
"Conversations" (ValueSchema NamedSwaggerDoc EJPDConvInfo
-> SchemaP SwaggerDoc Value Value [EJPDConvInfo] [EJPDConvInfo]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc EJPDConvInfo
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemRoot
  (Maybe (Set Text) -> EJPDResponseItemRoot)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe (Set Text))
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot EJPDResponseItemRoot
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemRoot b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Set Text -> [Text]) -> Maybe (Set Text) -> Maybe [Text]
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Set Text -> [Text]
forall a. Set a -> [a]
Set.toList (Maybe (Set Text) -> Maybe [Text])
-> (EJPDResponseItemRoot -> Maybe (Set Text))
-> EJPDResponseItemRoot
-> Maybe [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemRoot -> Maybe (Set Text)
ejpdResponseRootAssets) (EJPDResponseItemRoot -> Maybe [Text])
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe (Set Text))
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemRoot (Maybe (Set Text))
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([Text] -> Set Text
forall a. Ord a => [a] -> Set a
Set.fromList ([Text] -> Set Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe [Text])
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe (Set Text))
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g 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 SwaggerDoc 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
"Assets" (ValueSchema NamedSwaggerDoc Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)))

instance ToSchema EJPDResponseItemLeaf where
  schema :: ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
schema = Text
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf EJPDResponseItemLeaf
-> ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDResponseItemLeaf" do
    Qualified UserId
-> Maybe TeamId
-> Name
-> Maybe Handle
-> Maybe EmailAddress
-> Maybe Phone
-> Set Text
-> Maybe (Set EJPDConvInfo)
-> Maybe (Set Text)
-> EJPDResponseItemLeaf
EJPDResponseItemLeaf
      (Qualified UserId
 -> Maybe TeamId
 -> Name
 -> Maybe Handle
 -> Maybe EmailAddress
 -> Maybe Phone
 -> Set Text
 -> Maybe (Set EJPDConvInfo)
 -> Maybe (Set Text)
 -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Qualified UserId)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe TeamId
      -> Name
      -> Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDResponseItemLeaf -> Qualified UserId
ejpdResponseLeafUserId (EJPDResponseItemLeaf -> Qualified UserId)
-> SchemaP
     SwaggerDoc Object [Pair] (Qualified UserId) (Qualified UserId)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (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
"UserId" SchemaP
  NamedSwaggerDoc Value Value (Qualified UserId) (Qualified UserId)
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe TeamId
   -> Name
   -> Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe TeamId)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Name
      -> Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemLeaf -> Maybe TeamId
ejpdResponseLeafTeamId (EJPDResponseItemLeaf -> Maybe TeamId)
-> SchemaP SwaggerDoc Object [Pair] (Maybe TeamId) (Maybe TeamId)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe TeamId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] TeamId (Maybe TeamId)
-> SchemaP SwaggerDoc Object [Pair] (Maybe TeamId) (Maybe TeamId)
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 TeamId TeamId
-> SchemaP SwaggerDoc Object [Pair] TeamId (Maybe TeamId)
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
"TeamId" SchemaP NamedSwaggerDoc Value Value TeamId TeamId
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Name
   -> Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf Name
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe Handle
      -> Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemLeaf -> Name
ejpdResponseLeafName (EJPDResponseItemLeaf -> Name)
-> SchemaP SwaggerDoc Object [Pair] Name Name
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf Name
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value Name Name
-> SchemaP SwaggerDoc Object [Pair] Name Name
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"Name" SchemaP NamedSwaggerDoc Value Value Name Name
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe Handle
   -> Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe Handle)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe EmailAddress
      -> Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemLeaf -> Maybe Handle
ejpdResponseLeafHandle (EJPDResponseItemLeaf -> Maybe Handle)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Handle) (Maybe Handle)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe Handle)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Handle (Maybe Handle)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Handle) (Maybe Handle)
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> ValueSchema NamedSwaggerDoc Handle
-> SchemaP SwaggerDoc Object [Pair] Handle (Maybe Handle)
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
"Handle" ValueSchema NamedSwaggerDoc Handle
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe EmailAddress
   -> Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe Phone
      -> Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemLeaf -> Maybe EmailAddress
ejpdResponseLeafEmail (EJPDResponseItemLeaf -> Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe EmailAddress) (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe EmailAddress)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] EmailAddress (Maybe EmailAddress)
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe EmailAddress) (Maybe EmailAddress)
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 EmailAddress EmailAddress
-> SchemaP
     SwaggerDoc Object [Pair] EmailAddress (Maybe EmailAddress)
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
"Email" SchemaP NamedSwaggerDoc Value Value EmailAddress EmailAddress
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe Phone
   -> Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe Phone)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Set Text
      -> Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text)
      -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDResponseItemLeaf -> Maybe Phone
ejpdResponseLeafPhone (EJPDResponseItemLeaf -> Maybe Phone)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Phone) (Maybe Phone)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe Phone)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= SchemaP SwaggerDoc Object [Pair] Phone (Maybe Phone)
-> SchemaP SwaggerDoc Object [Pair] (Maybe Phone) (Maybe Phone)
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 Phone Phone
-> SchemaP SwaggerDoc Object [Pair] Phone (Maybe Phone)
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
"Phone" SchemaP NamedSwaggerDoc Value Value Phone Phone
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Set Text
   -> Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text)
   -> EJPDResponseItemLeaf)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Set Text)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe (Set EJPDConvInfo)
      -> Maybe (Set Text) -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> (Set Text -> [Text]
forall a. Set a -> [a]
Set.toList (Set Text -> [Text])
-> (EJPDResponseItemLeaf -> Set Text)
-> EJPDResponseItemLeaf
-> [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemLeaf -> Set Text
ejpdResponseLeafPushTokens) (EJPDResponseItemLeaf -> [Text])
-> SchemaP SwaggerDoc Object [Pair] [Text] (Set Text)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Set Text)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([Text] -> Set Text
forall a. Ord a => [a] -> Set a
Set.fromList ([Text] -> Set Text)
-> SchemaP SwaggerDoc Object [Pair] [Text] [Text]
-> SchemaP SwaggerDoc Object [Pair] [Text] (Set Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
-> SchemaP SwaggerDoc Object [Pair] [Text] [Text]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"PushTokens" (ValueSchema NamedSwaggerDoc Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe (Set EJPDConvInfo)
   -> Maybe (Set Text) -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe (Set EJPDConvInfo))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe (Set Text) -> EJPDResponseItemLeaf)
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Set EJPDConvInfo -> [EJPDConvInfo])
-> Maybe (Set EJPDConvInfo) -> Maybe [EJPDConvInfo]
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Set EJPDConvInfo -> [EJPDConvInfo]
forall a. Set a -> [a]
Set.toList (Maybe (Set EJPDConvInfo) -> Maybe [EJPDConvInfo])
-> (EJPDResponseItemLeaf -> Maybe (Set EJPDConvInfo))
-> EJPDResponseItemLeaf
-> Maybe [EJPDConvInfo]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemLeaf -> Maybe (Set EJPDConvInfo)
ejpdResponseLeafConversations) (EJPDResponseItemLeaf -> Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe (Set EJPDConvInfo))
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDResponseItemLeaf
     (Maybe (Set EJPDConvInfo))
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([EJPDConvInfo] -> Set EJPDConvInfo
forall a. Ord a => [a] -> Set a
Set.fromList ([EJPDConvInfo] -> Set EJPDConvInfo)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe (Set EJPDConvInfo))
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g b)
<$$> SchemaP
  SwaggerDoc Object [Pair] [EJPDConvInfo] (Maybe [EJPDConvInfo])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     (Maybe [EJPDConvInfo])
     (Maybe [EJPDConvInfo])
forall w d v a b.
Monoid w =>
SchemaP d v w a b -> SchemaP d v w (Maybe a) b
maybe_ (Text
-> SchemaP SwaggerDoc Value Value [EJPDConvInfo] [EJPDConvInfo]
-> SchemaP
     SwaggerDoc Object [Pair] [EJPDConvInfo] (Maybe [EJPDConvInfo])
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
"Conversations" (ValueSchema NamedSwaggerDoc EJPDConvInfo
-> SchemaP SwaggerDoc Value Value [EJPDConvInfo] [EJPDConvInfo]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc EJPDConvInfo
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDResponseItemLeaf
  (Maybe (Set Text) -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe (Set Text))
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf EJPDResponseItemLeaf
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf a
-> SchemaP SwaggerDoc Object [Pair] EJPDResponseItemLeaf b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Set Text -> [Text]) -> Maybe (Set Text) -> Maybe [Text]
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Set Text -> [Text]
forall a. Set a -> [a]
Set.toList (Maybe (Set Text) -> Maybe [Text])
-> (EJPDResponseItemLeaf -> Maybe (Set Text))
-> EJPDResponseItemLeaf
-> Maybe [Text]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDResponseItemLeaf -> Maybe (Set Text)
ejpdResponseLeafAssets) (EJPDResponseItemLeaf -> Maybe [Text])
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe (Set Text))
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf (Maybe (Set Text))
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([Text] -> Set Text
forall a. Ord a => [a] -> Set a
Set.fromList ([Text] -> Set Text)
-> SchemaP SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe [Text])
-> SchemaP
     SwaggerDoc Object [Pair] (Maybe [Text]) (Maybe (Set Text))
forall (f :: * -> *) (g :: * -> *) a b.
(Functor f, Functor g) =>
(a -> b) -> f (g a) -> f (g 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 SwaggerDoc 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
"Assets" (ValueSchema NamedSwaggerDoc Text
-> SchemaP SwaggerDoc Value Value [Text] [Text]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema)))

instance ToSchema EJPDContact where
  schema :: ValueSchema NamedSwaggerDoc EJPDContact
schema =
    Text
-> SchemaP SwaggerDoc Object [Pair] EJPDContact EJPDContact
-> ValueSchema NamedSwaggerDoc EJPDContact
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJDPContact" do
      Relation -> EJPDResponseItemLeaf -> EJPDContact
EJPDContactFound
        (Relation -> EJPDResponseItemLeaf -> EJPDContact)
-> SchemaP SwaggerDoc Object [Pair] EJPDContact Relation
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDContact
     (EJPDResponseItemLeaf -> EJPDContact)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDContact -> Relation
ejpdContactRelation (EJPDContact -> Relation)
-> SchemaP SwaggerDoc Object [Pair] Relation Relation
-> SchemaP SwaggerDoc Object [Pair] EJPDContact Relation
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value Relation Relation
-> SchemaP SwaggerDoc Object [Pair] Relation Relation
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"contact_relation" SchemaP NamedSwaggerDoc Value Value Relation Relation
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
        SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDContact
  (EJPDResponseItemLeaf -> EJPDContact)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDContact EJPDResponseItemLeaf
-> SchemaP SwaggerDoc Object [Pair] EJPDContact EJPDContact
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDContact (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDContact a
-> SchemaP SwaggerDoc Object [Pair] EJPDContact b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDContact -> EJPDResponseItemLeaf
ejpdContactFound (EJPDContact -> EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf EJPDResponseItemLeaf
-> SchemaP
     SwaggerDoc Object [Pair] EJPDContact EJPDResponseItemLeaf
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
-> SchemaP
     SwaggerDoc Object [Pair] EJPDResponseItemLeaf EJPDResponseItemLeaf
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"contact_item" ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema

instance ToSchema EJPDTeamContacts where
  schema :: SchemaP
  NamedSwaggerDoc Value Value EJPDTeamContacts EJPDTeamContacts
schema = Text
-> SchemaP
     SwaggerDoc Object [Pair] EJPDTeamContacts EJPDTeamContacts
-> SchemaP
     NamedSwaggerDoc Value Value EJPDTeamContacts EJPDTeamContacts
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDTeamContacts" do
    Set EJPDResponseItemLeaf -> NewListType -> EJPDTeamContacts
EJPDTeamContacts
      (Set EJPDResponseItemLeaf -> NewListType -> EJPDTeamContacts)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDTeamContacts
     (Set EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDTeamContacts
     (NewListType -> EJPDTeamContacts)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Set EJPDResponseItemLeaf -> [EJPDResponseItemLeaf]
forall a. Set a -> [a]
Set.toList (Set EJPDResponseItemLeaf -> [EJPDResponseItemLeaf])
-> (EJPDTeamContacts -> Set EJPDResponseItemLeaf)
-> EJPDTeamContacts
-> [EJPDResponseItemLeaf]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. EJPDTeamContacts -> Set EJPDResponseItemLeaf
ejpdTeamContacts) (EJPDTeamContacts -> [EJPDResponseItemLeaf])
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemLeaf]
     (Set EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDTeamContacts
     (Set EJPDResponseItemLeaf)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= ([EJPDResponseItemLeaf] -> Set EJPDResponseItemLeaf
forall a. Ord a => [a] -> Set a
Set.fromList ([EJPDResponseItemLeaf] -> Set EJPDResponseItemLeaf)
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemLeaf]
     [EJPDResponseItemLeaf]
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemLeaf]
     (Set EJPDResponseItemLeaf)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text
-> SchemaP
     SwaggerDoc
     Value
     Value
     [EJPDResponseItemLeaf]
     [EJPDResponseItemLeaf]
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     [EJPDResponseItemLeaf]
     [EJPDResponseItemLeaf]
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"TeamContacts" (ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
-> SchemaP
     SwaggerDoc
     Value
     Value
     [EJPDResponseItemLeaf]
     [EJPDResponseItemLeaf]
forall ndoc doc a.
(HasArray ndoc doc, HasName ndoc) =>
ValueSchema ndoc a -> ValueSchema doc [a]
array ValueSchema NamedSwaggerDoc EJPDResponseItemLeaf
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema))
      SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDTeamContacts
  (NewListType -> EJPDTeamContacts)
-> SchemaP SwaggerDoc Object [Pair] EJPDTeamContacts NewListType
-> SchemaP
     SwaggerDoc Object [Pair] EJPDTeamContacts EJPDTeamContacts
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDTeamContacts (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDTeamContacts a
-> SchemaP SwaggerDoc Object [Pair] EJPDTeamContacts b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDTeamContacts -> NewListType
ejpdTeamContactsListType (EJPDTeamContacts -> NewListType)
-> SchemaP SwaggerDoc Object [Pair] NewListType NewListType
-> SchemaP SwaggerDoc Object [Pair] EJPDTeamContacts NewListType
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP NamedSwaggerDoc Value Value NewListType NewListType
-> SchemaP SwaggerDoc Object [Pair] NewListType NewListType
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"ListType" SchemaP NamedSwaggerDoc Value Value NewListType NewListType
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema

instance ToSchema EJPDConvInfo where
  schema :: ValueSchema NamedSwaggerDoc EJPDConvInfo
schema =
    Text
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo EJPDConvInfo
-> ValueSchema NamedSwaggerDoc EJPDConvInfo
forall doc doc' a b.
HasObject doc doc' =>
Text
-> SchemaP doc Object [Pair] a b -> SchemaP doc' Value Value a b
object Text
"EJPDConvInfo" (SchemaP SwaggerDoc Object [Pair] EJPDConvInfo EJPDConvInfo
 -> ValueSchema NamedSwaggerDoc EJPDConvInfo)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo EJPDConvInfo
-> ValueSchema NamedSwaggerDoc EJPDConvInfo
forall a b. (a -> b) -> a -> b
$
      Text -> Qualified ConvId -> EJPDConvInfo
EJPDConvInfo
        (Text -> Qualified ConvId -> EJPDConvInfo)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo Text
-> SchemaP
     SwaggerDoc
     Object
     [Pair]
     EJPDConvInfo
     (Qualified ConvId -> EJPDConvInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> EJPDConvInfo -> Text
ejpdConvName (EJPDConvInfo -> Text)
-> SchemaP SwaggerDoc Object [Pair] Text Text
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo Text
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> ValueSchema NamedSwaggerDoc Text
-> SchemaP SwaggerDoc Object [Pair] Text Text
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"conv_name" ValueSchema NamedSwaggerDoc Text
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema
        SchemaP
  SwaggerDoc
  Object
  [Pair]
  EJPDConvInfo
  (Qualified ConvId -> EJPDConvInfo)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo (Qualified ConvId)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo EJPDConvInfo
forall a b.
SchemaP SwaggerDoc Object [Pair] EJPDConvInfo (a -> b)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo a
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> EJPDConvInfo -> Qualified ConvId
ejpdConvId (EJPDConvInfo -> Qualified ConvId)
-> SchemaP
     SwaggerDoc Object [Pair] (Qualified ConvId) (Qualified ConvId)
-> SchemaP SwaggerDoc Object [Pair] EJPDConvInfo (Qualified ConvId)
forall (p :: * -> * -> *) a a' b.
Profunctor p =>
(a -> a') -> p a' b -> p a b
.= Text
-> SchemaP
     NamedSwaggerDoc Value Value (Qualified ConvId) (Qualified ConvId)
-> SchemaP
     SwaggerDoc Object [Pair] (Qualified ConvId) (Qualified ConvId)
forall doc' doc a b.
HasField doc' doc =>
Text
-> SchemaP doc' Value Value a b -> SchemaP doc Object [Pair] a b
field Text
"conv_id" SchemaP
  NamedSwaggerDoc Value Value (Qualified ConvId) (Qualified ConvId)
forall a. ToSchema a => ValueSchema NamedSwaggerDoc a
schema