{-# 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.ChimeSdkMeetings.Types.AttendeeCapabilities where
import Amazonka.ChimeSdkMeetings.Types.MediaCapabilities
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 AttendeeCapabilities = AttendeeCapabilities'
{
AttendeeCapabilities -> MediaCapabilities
audio :: MediaCapabilities,
AttendeeCapabilities -> MediaCapabilities
video :: MediaCapabilities,
AttendeeCapabilities -> MediaCapabilities
content :: MediaCapabilities
}
deriving (AttendeeCapabilities -> AttendeeCapabilities -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AttendeeCapabilities -> AttendeeCapabilities -> Bool
$c/= :: AttendeeCapabilities -> AttendeeCapabilities -> Bool
== :: AttendeeCapabilities -> AttendeeCapabilities -> Bool
$c== :: AttendeeCapabilities -> AttendeeCapabilities -> Bool
Prelude.Eq, ReadPrec [AttendeeCapabilities]
ReadPrec AttendeeCapabilities
Int -> ReadS AttendeeCapabilities
ReadS [AttendeeCapabilities]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AttendeeCapabilities]
$creadListPrec :: ReadPrec [AttendeeCapabilities]
readPrec :: ReadPrec AttendeeCapabilities
$creadPrec :: ReadPrec AttendeeCapabilities
readList :: ReadS [AttendeeCapabilities]
$creadList :: ReadS [AttendeeCapabilities]
readsPrec :: Int -> ReadS AttendeeCapabilities
$creadsPrec :: Int -> ReadS AttendeeCapabilities
Prelude.Read, Int -> AttendeeCapabilities -> ShowS
[AttendeeCapabilities] -> ShowS
AttendeeCapabilities -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AttendeeCapabilities] -> ShowS
$cshowList :: [AttendeeCapabilities] -> ShowS
show :: AttendeeCapabilities -> String
$cshow :: AttendeeCapabilities -> String
showsPrec :: Int -> AttendeeCapabilities -> ShowS
$cshowsPrec :: Int -> AttendeeCapabilities -> ShowS
Prelude.Show, forall x. Rep AttendeeCapabilities x -> AttendeeCapabilities
forall x. AttendeeCapabilities -> Rep AttendeeCapabilities x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AttendeeCapabilities x -> AttendeeCapabilities
$cfrom :: forall x. AttendeeCapabilities -> Rep AttendeeCapabilities x
Prelude.Generic)
newAttendeeCapabilities ::
MediaCapabilities ->
MediaCapabilities ->
MediaCapabilities ->
AttendeeCapabilities
newAttendeeCapabilities :: MediaCapabilities
-> MediaCapabilities -> MediaCapabilities -> AttendeeCapabilities
newAttendeeCapabilities MediaCapabilities
pAudio_ MediaCapabilities
pVideo_ MediaCapabilities
pContent_ =
AttendeeCapabilities'
{ $sel:audio:AttendeeCapabilities' :: MediaCapabilities
audio = MediaCapabilities
pAudio_,
$sel:video:AttendeeCapabilities' :: MediaCapabilities
video = MediaCapabilities
pVideo_,
$sel:content:AttendeeCapabilities' :: MediaCapabilities
content = MediaCapabilities
pContent_
}
attendeeCapabilities_audio :: Lens.Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_audio :: Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_audio = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AttendeeCapabilities' {MediaCapabilities
audio :: MediaCapabilities
$sel:audio:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
audio} -> MediaCapabilities
audio) (\s :: AttendeeCapabilities
s@AttendeeCapabilities' {} MediaCapabilities
a -> AttendeeCapabilities
s {$sel:audio:AttendeeCapabilities' :: MediaCapabilities
audio = MediaCapabilities
a} :: AttendeeCapabilities)
attendeeCapabilities_video :: Lens.Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_video :: Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_video = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AttendeeCapabilities' {MediaCapabilities
video :: MediaCapabilities
$sel:video:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
video} -> MediaCapabilities
video) (\s :: AttendeeCapabilities
s@AttendeeCapabilities' {} MediaCapabilities
a -> AttendeeCapabilities
s {$sel:video:AttendeeCapabilities' :: MediaCapabilities
video = MediaCapabilities
a} :: AttendeeCapabilities)
attendeeCapabilities_content :: Lens.Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_content :: Lens' AttendeeCapabilities MediaCapabilities
attendeeCapabilities_content = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AttendeeCapabilities' {MediaCapabilities
content :: MediaCapabilities
$sel:content:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
content} -> MediaCapabilities
content) (\s :: AttendeeCapabilities
s@AttendeeCapabilities' {} MediaCapabilities
a -> AttendeeCapabilities
s {$sel:content:AttendeeCapabilities' :: MediaCapabilities
content = MediaCapabilities
a} :: AttendeeCapabilities)
instance Data.FromJSON AttendeeCapabilities where
parseJSON :: Value -> Parser AttendeeCapabilities
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AttendeeCapabilities"
( \Object
x ->
MediaCapabilities
-> MediaCapabilities -> MediaCapabilities -> AttendeeCapabilities
AttendeeCapabilities'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Audio")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Video")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"Content")
)
instance Prelude.Hashable AttendeeCapabilities where
hashWithSalt :: Int -> AttendeeCapabilities -> Int
hashWithSalt Int
_salt AttendeeCapabilities' {MediaCapabilities
content :: MediaCapabilities
video :: MediaCapabilities
audio :: MediaCapabilities
$sel:content:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:video:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:audio:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MediaCapabilities
audio
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MediaCapabilities
video
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` MediaCapabilities
content
instance Prelude.NFData AttendeeCapabilities where
rnf :: AttendeeCapabilities -> ()
rnf AttendeeCapabilities' {MediaCapabilities
content :: MediaCapabilities
video :: MediaCapabilities
audio :: MediaCapabilities
$sel:content:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:video:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:audio:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
..} =
forall a. NFData a => a -> ()
Prelude.rnf MediaCapabilities
audio
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MediaCapabilities
video
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf MediaCapabilities
content
instance Data.ToJSON AttendeeCapabilities where
toJSON :: AttendeeCapabilities -> Value
toJSON AttendeeCapabilities' {MediaCapabilities
content :: MediaCapabilities
video :: MediaCapabilities
audio :: MediaCapabilities
$sel:content:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:video:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
$sel:audio:AttendeeCapabilities' :: AttendeeCapabilities -> MediaCapabilities
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ forall a. a -> Maybe a
Prelude.Just (Key
"Audio" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MediaCapabilities
audio),
forall a. a -> Maybe a
Prelude.Just (Key
"Video" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MediaCapabilities
video),
forall a. a -> Maybe a
Prelude.Just (Key
"Content" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= MediaCapabilities
content)
]
)