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