{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.Connect.Types.AgentContactReference where
import Amazonka.Connect.Types.Channel
import Amazonka.Connect.Types.ContactInitiationMethod
import Amazonka.Connect.Types.ContactState
import Amazonka.Connect.Types.QueueReference
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
data AgentContactReference = AgentContactReference'
{
AgentContactReference -> Maybe ContactState
agentContactState :: Prelude.Maybe ContactState,
AgentContactReference -> Maybe Channel
channel :: Prelude.Maybe Channel,
AgentContactReference -> Maybe POSIX
connectedToAgentTimestamp :: Prelude.Maybe Data.POSIX,
AgentContactReference -> Maybe Text
contactId :: Prelude.Maybe Prelude.Text,
AgentContactReference -> Maybe ContactInitiationMethod
initiationMethod :: Prelude.Maybe ContactInitiationMethod,
AgentContactReference -> Maybe QueueReference
queue :: Prelude.Maybe QueueReference,
AgentContactReference -> Maybe POSIX
stateStartTimestamp :: Prelude.Maybe Data.POSIX
}
deriving (AgentContactReference -> AgentContactReference -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AgentContactReference -> AgentContactReference -> Bool
$c/= :: AgentContactReference -> AgentContactReference -> Bool
== :: AgentContactReference -> AgentContactReference -> Bool
$c== :: AgentContactReference -> AgentContactReference -> Bool
Prelude.Eq, ReadPrec [AgentContactReference]
ReadPrec AgentContactReference
Int -> ReadS AgentContactReference
ReadS [AgentContactReference]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AgentContactReference]
$creadListPrec :: ReadPrec [AgentContactReference]
readPrec :: ReadPrec AgentContactReference
$creadPrec :: ReadPrec AgentContactReference
readList :: ReadS [AgentContactReference]
$creadList :: ReadS [AgentContactReference]
readsPrec :: Int -> ReadS AgentContactReference
$creadsPrec :: Int -> ReadS AgentContactReference
Prelude.Read, Int -> AgentContactReference -> ShowS
[AgentContactReference] -> ShowS
AgentContactReference -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AgentContactReference] -> ShowS
$cshowList :: [AgentContactReference] -> ShowS
show :: AgentContactReference -> String
$cshow :: AgentContactReference -> String
showsPrec :: Int -> AgentContactReference -> ShowS
$cshowsPrec :: Int -> AgentContactReference -> ShowS
Prelude.Show, forall x. Rep AgentContactReference x -> AgentContactReference
forall x. AgentContactReference -> Rep AgentContactReference x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AgentContactReference x -> AgentContactReference
$cfrom :: forall x. AgentContactReference -> Rep AgentContactReference x
Prelude.Generic)
newAgentContactReference ::
AgentContactReference
newAgentContactReference :: AgentContactReference
newAgentContactReference =
AgentContactReference'
{ $sel:agentContactState:AgentContactReference' :: Maybe ContactState
agentContactState =
forall a. Maybe a
Prelude.Nothing,
$sel:channel:AgentContactReference' :: Maybe Channel
channel = forall a. Maybe a
Prelude.Nothing,
$sel:connectedToAgentTimestamp:AgentContactReference' :: Maybe POSIX
connectedToAgentTimestamp = forall a. Maybe a
Prelude.Nothing,
$sel:contactId:AgentContactReference' :: Maybe Text
contactId = forall a. Maybe a
Prelude.Nothing,
$sel:initiationMethod:AgentContactReference' :: Maybe ContactInitiationMethod
initiationMethod = forall a. Maybe a
Prelude.Nothing,
$sel:queue:AgentContactReference' :: Maybe QueueReference
queue = forall a. Maybe a
Prelude.Nothing,
$sel:stateStartTimestamp:AgentContactReference' :: Maybe POSIX
stateStartTimestamp = forall a. Maybe a
Prelude.Nothing
}
agentContactReference_agentContactState :: Lens.Lens' AgentContactReference (Prelude.Maybe ContactState)
agentContactReference_agentContactState :: Lens' AgentContactReference (Maybe ContactState)
agentContactReference_agentContactState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe ContactState
agentContactState :: Maybe ContactState
$sel:agentContactState:AgentContactReference' :: AgentContactReference -> Maybe ContactState
agentContactState} -> Maybe ContactState
agentContactState) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe ContactState
a -> AgentContactReference
s {$sel:agentContactState:AgentContactReference' :: Maybe ContactState
agentContactState = Maybe ContactState
a} :: AgentContactReference)
agentContactReference_channel :: Lens.Lens' AgentContactReference (Prelude.Maybe Channel)
agentContactReference_channel :: Lens' AgentContactReference (Maybe Channel)
agentContactReference_channel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe Channel
channel :: Maybe Channel
$sel:channel:AgentContactReference' :: AgentContactReference -> Maybe Channel
channel} -> Maybe Channel
channel) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe Channel
a -> AgentContactReference
s {$sel:channel:AgentContactReference' :: Maybe Channel
channel = Maybe Channel
a} :: AgentContactReference)
agentContactReference_connectedToAgentTimestamp :: Lens.Lens' AgentContactReference (Prelude.Maybe Prelude.UTCTime)
agentContactReference_connectedToAgentTimestamp :: Lens' AgentContactReference (Maybe UTCTime)
agentContactReference_connectedToAgentTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe POSIX
connectedToAgentTimestamp :: Maybe POSIX
$sel:connectedToAgentTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
connectedToAgentTimestamp} -> Maybe POSIX
connectedToAgentTimestamp) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe POSIX
a -> AgentContactReference
s {$sel:connectedToAgentTimestamp:AgentContactReference' :: Maybe POSIX
connectedToAgentTimestamp = Maybe POSIX
a} :: AgentContactReference) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
agentContactReference_contactId :: Lens.Lens' AgentContactReference (Prelude.Maybe Prelude.Text)
agentContactReference_contactId :: Lens' AgentContactReference (Maybe Text)
agentContactReference_contactId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe Text
contactId :: Maybe Text
$sel:contactId:AgentContactReference' :: AgentContactReference -> Maybe Text
contactId} -> Maybe Text
contactId) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe Text
a -> AgentContactReference
s {$sel:contactId:AgentContactReference' :: Maybe Text
contactId = Maybe Text
a} :: AgentContactReference)
agentContactReference_initiationMethod :: Lens.Lens' AgentContactReference (Prelude.Maybe ContactInitiationMethod)
agentContactReference_initiationMethod :: Lens' AgentContactReference (Maybe ContactInitiationMethod)
agentContactReference_initiationMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe ContactInitiationMethod
initiationMethod :: Maybe ContactInitiationMethod
$sel:initiationMethod:AgentContactReference' :: AgentContactReference -> Maybe ContactInitiationMethod
initiationMethod} -> Maybe ContactInitiationMethod
initiationMethod) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe ContactInitiationMethod
a -> AgentContactReference
s {$sel:initiationMethod:AgentContactReference' :: Maybe ContactInitiationMethod
initiationMethod = Maybe ContactInitiationMethod
a} :: AgentContactReference)
agentContactReference_queue :: Lens.Lens' AgentContactReference (Prelude.Maybe QueueReference)
agentContactReference_queue :: Lens' AgentContactReference (Maybe QueueReference)
agentContactReference_queue = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe QueueReference
queue :: Maybe QueueReference
$sel:queue:AgentContactReference' :: AgentContactReference -> Maybe QueueReference
queue} -> Maybe QueueReference
queue) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe QueueReference
a -> AgentContactReference
s {$sel:queue:AgentContactReference' :: Maybe QueueReference
queue = Maybe QueueReference
a} :: AgentContactReference)
agentContactReference_stateStartTimestamp :: Lens.Lens' AgentContactReference (Prelude.Maybe Prelude.UTCTime)
agentContactReference_stateStartTimestamp :: Lens' AgentContactReference (Maybe UTCTime)
agentContactReference_stateStartTimestamp = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AgentContactReference' {Maybe POSIX
stateStartTimestamp :: Maybe POSIX
$sel:stateStartTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
stateStartTimestamp} -> Maybe POSIX
stateStartTimestamp) (\s :: AgentContactReference
s@AgentContactReference' {} Maybe POSIX
a -> AgentContactReference
s {$sel:stateStartTimestamp:AgentContactReference' :: Maybe POSIX
stateStartTimestamp = Maybe POSIX
a} :: AgentContactReference) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
instance Data.FromJSON AgentContactReference where
parseJSON :: Value -> Parser AgentContactReference
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AgentContactReference"
( \Object
x ->
Maybe ContactState
-> Maybe Channel
-> Maybe POSIX
-> Maybe Text
-> Maybe ContactInitiationMethod
-> Maybe QueueReference
-> Maybe POSIX
-> AgentContactReference
AgentContactReference'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AgentContactState")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Channel")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ConnectedToAgentTimestamp")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ContactId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"InitiationMethod")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Queue")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StateStartTimestamp")
)
instance Prelude.Hashable AgentContactReference where
hashWithSalt :: Int -> AgentContactReference -> Int
hashWithSalt Int
_salt AgentContactReference' {Maybe Text
Maybe POSIX
Maybe Channel
Maybe ContactInitiationMethod
Maybe ContactState
Maybe QueueReference
stateStartTimestamp :: Maybe POSIX
queue :: Maybe QueueReference
initiationMethod :: Maybe ContactInitiationMethod
contactId :: Maybe Text
connectedToAgentTimestamp :: Maybe POSIX
channel :: Maybe Channel
agentContactState :: Maybe ContactState
$sel:stateStartTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
$sel:queue:AgentContactReference' :: AgentContactReference -> Maybe QueueReference
$sel:initiationMethod:AgentContactReference' :: AgentContactReference -> Maybe ContactInitiationMethod
$sel:contactId:AgentContactReference' :: AgentContactReference -> Maybe Text
$sel:connectedToAgentTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
$sel:channel:AgentContactReference' :: AgentContactReference -> Maybe Channel
$sel:agentContactState:AgentContactReference' :: AgentContactReference -> Maybe ContactState
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContactState
agentContactState
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Channel
channel
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
connectedToAgentTimestamp
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
contactId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ContactInitiationMethod
initiationMethod
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe QueueReference
queue
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
stateStartTimestamp
instance Prelude.NFData AgentContactReference where
rnf :: AgentContactReference -> ()
rnf AgentContactReference' {Maybe Text
Maybe POSIX
Maybe Channel
Maybe ContactInitiationMethod
Maybe ContactState
Maybe QueueReference
stateStartTimestamp :: Maybe POSIX
queue :: Maybe QueueReference
initiationMethod :: Maybe ContactInitiationMethod
contactId :: Maybe Text
connectedToAgentTimestamp :: Maybe POSIX
channel :: Maybe Channel
agentContactState :: Maybe ContactState
$sel:stateStartTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
$sel:queue:AgentContactReference' :: AgentContactReference -> Maybe QueueReference
$sel:initiationMethod:AgentContactReference' :: AgentContactReference -> Maybe ContactInitiationMethod
$sel:contactId:AgentContactReference' :: AgentContactReference -> Maybe Text
$sel:connectedToAgentTimestamp:AgentContactReference' :: AgentContactReference -> Maybe POSIX
$sel:channel:AgentContactReference' :: AgentContactReference -> Maybe Channel
$sel:agentContactState:AgentContactReference' :: AgentContactReference -> Maybe ContactState
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ContactState
agentContactState
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Channel
channel
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
connectedToAgentTimestamp
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
contactId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ContactInitiationMethod
initiationMethod
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe QueueReference
queue
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
stateStartTimestamp