{-# 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.MediaConvert.Types.OutputGroupSettings where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaConvert.Types.CmafGroupSettings
import Amazonka.MediaConvert.Types.DashIsoGroupSettings
import Amazonka.MediaConvert.Types.FileGroupSettings
import Amazonka.MediaConvert.Types.HlsGroupSettings
import Amazonka.MediaConvert.Types.MsSmoothGroupSettings
import Amazonka.MediaConvert.Types.OutputGroupType
import qualified Amazonka.Prelude as Prelude
data OutputGroupSettings = OutputGroupSettings'
{
OutputGroupSettings -> Maybe CmafGroupSettings
cmafGroupSettings :: Prelude.Maybe CmafGroupSettings,
OutputGroupSettings -> Maybe DashIsoGroupSettings
dashIsoGroupSettings :: Prelude.Maybe DashIsoGroupSettings,
OutputGroupSettings -> Maybe FileGroupSettings
fileGroupSettings :: Prelude.Maybe FileGroupSettings,
OutputGroupSettings -> Maybe HlsGroupSettings
hlsGroupSettings :: Prelude.Maybe HlsGroupSettings,
OutputGroupSettings -> Maybe MsSmoothGroupSettings
msSmoothGroupSettings :: Prelude.Maybe MsSmoothGroupSettings,
OutputGroupSettings -> Maybe OutputGroupType
type' :: Prelude.Maybe OutputGroupType
}
deriving (OutputGroupSettings -> OutputGroupSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OutputGroupSettings -> OutputGroupSettings -> Bool
$c/= :: OutputGroupSettings -> OutputGroupSettings -> Bool
== :: OutputGroupSettings -> OutputGroupSettings -> Bool
$c== :: OutputGroupSettings -> OutputGroupSettings -> Bool
Prelude.Eq, ReadPrec [OutputGroupSettings]
ReadPrec OutputGroupSettings
Int -> ReadS OutputGroupSettings
ReadS [OutputGroupSettings]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [OutputGroupSettings]
$creadListPrec :: ReadPrec [OutputGroupSettings]
readPrec :: ReadPrec OutputGroupSettings
$creadPrec :: ReadPrec OutputGroupSettings
readList :: ReadS [OutputGroupSettings]
$creadList :: ReadS [OutputGroupSettings]
readsPrec :: Int -> ReadS OutputGroupSettings
$creadsPrec :: Int -> ReadS OutputGroupSettings
Prelude.Read, Int -> OutputGroupSettings -> ShowS
[OutputGroupSettings] -> ShowS
OutputGroupSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OutputGroupSettings] -> ShowS
$cshowList :: [OutputGroupSettings] -> ShowS
show :: OutputGroupSettings -> String
$cshow :: OutputGroupSettings -> String
showsPrec :: Int -> OutputGroupSettings -> ShowS
$cshowsPrec :: Int -> OutputGroupSettings -> ShowS
Prelude.Show, forall x. Rep OutputGroupSettings x -> OutputGroupSettings
forall x. OutputGroupSettings -> Rep OutputGroupSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep OutputGroupSettings x -> OutputGroupSettings
$cfrom :: forall x. OutputGroupSettings -> Rep OutputGroupSettings x
Prelude.Generic)
newOutputGroupSettings ::
OutputGroupSettings
newOutputGroupSettings :: OutputGroupSettings
newOutputGroupSettings =
OutputGroupSettings'
{ $sel:cmafGroupSettings:OutputGroupSettings' :: Maybe CmafGroupSettings
cmafGroupSettings =
forall a. Maybe a
Prelude.Nothing,
$sel:dashIsoGroupSettings:OutputGroupSettings' :: Maybe DashIsoGroupSettings
dashIsoGroupSettings = forall a. Maybe a
Prelude.Nothing,
$sel:fileGroupSettings:OutputGroupSettings' :: Maybe FileGroupSettings
fileGroupSettings = forall a. Maybe a
Prelude.Nothing,
$sel:hlsGroupSettings:OutputGroupSettings' :: Maybe HlsGroupSettings
hlsGroupSettings = forall a. Maybe a
Prelude.Nothing,
$sel:msSmoothGroupSettings:OutputGroupSettings' :: Maybe MsSmoothGroupSettings
msSmoothGroupSettings = forall a. Maybe a
Prelude.Nothing,
$sel:type':OutputGroupSettings' :: Maybe OutputGroupType
type' = forall a. Maybe a
Prelude.Nothing
}
outputGroupSettings_cmafGroupSettings :: Lens.Lens' OutputGroupSettings (Prelude.Maybe CmafGroupSettings)
outputGroupSettings_cmafGroupSettings :: Lens' OutputGroupSettings (Maybe CmafGroupSettings)
outputGroupSettings_cmafGroupSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe CmafGroupSettings
cmafGroupSettings :: Maybe CmafGroupSettings
$sel:cmafGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe CmafGroupSettings
cmafGroupSettings} -> Maybe CmafGroupSettings
cmafGroupSettings) (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe CmafGroupSettings
a -> OutputGroupSettings
s {$sel:cmafGroupSettings:OutputGroupSettings' :: Maybe CmafGroupSettings
cmafGroupSettings = Maybe CmafGroupSettings
a} :: OutputGroupSettings)
outputGroupSettings_dashIsoGroupSettings :: Lens.Lens' OutputGroupSettings (Prelude.Maybe DashIsoGroupSettings)
outputGroupSettings_dashIsoGroupSettings :: Lens' OutputGroupSettings (Maybe DashIsoGroupSettings)
outputGroupSettings_dashIsoGroupSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe DashIsoGroupSettings
dashIsoGroupSettings :: Maybe DashIsoGroupSettings
$sel:dashIsoGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe DashIsoGroupSettings
dashIsoGroupSettings} -> Maybe DashIsoGroupSettings
dashIsoGroupSettings) (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe DashIsoGroupSettings
a -> OutputGroupSettings
s {$sel:dashIsoGroupSettings:OutputGroupSettings' :: Maybe DashIsoGroupSettings
dashIsoGroupSettings = Maybe DashIsoGroupSettings
a} :: OutputGroupSettings)
outputGroupSettings_fileGroupSettings :: Lens.Lens' OutputGroupSettings (Prelude.Maybe FileGroupSettings)
outputGroupSettings_fileGroupSettings :: Lens' OutputGroupSettings (Maybe FileGroupSettings)
outputGroupSettings_fileGroupSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe FileGroupSettings
fileGroupSettings :: Maybe FileGroupSettings
$sel:fileGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe FileGroupSettings
fileGroupSettings} -> Maybe FileGroupSettings
fileGroupSettings) (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe FileGroupSettings
a -> OutputGroupSettings
s {$sel:fileGroupSettings:OutputGroupSettings' :: Maybe FileGroupSettings
fileGroupSettings = Maybe FileGroupSettings
a} :: OutputGroupSettings)
outputGroupSettings_hlsGroupSettings :: Lens.Lens' OutputGroupSettings (Prelude.Maybe HlsGroupSettings)
outputGroupSettings_hlsGroupSettings :: Lens' OutputGroupSettings (Maybe HlsGroupSettings)
outputGroupSettings_hlsGroupSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe HlsGroupSettings
hlsGroupSettings :: Maybe HlsGroupSettings
$sel:hlsGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe HlsGroupSettings
hlsGroupSettings} -> Maybe HlsGroupSettings
hlsGroupSettings) (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe HlsGroupSettings
a -> OutputGroupSettings
s {$sel:hlsGroupSettings:OutputGroupSettings' :: Maybe HlsGroupSettings
hlsGroupSettings = Maybe HlsGroupSettings
a} :: OutputGroupSettings)
outputGroupSettings_msSmoothGroupSettings :: Lens.Lens' OutputGroupSettings (Prelude.Maybe MsSmoothGroupSettings)
outputGroupSettings_msSmoothGroupSettings :: Lens' OutputGroupSettings (Maybe MsSmoothGroupSettings)
outputGroupSettings_msSmoothGroupSettings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe MsSmoothGroupSettings
msSmoothGroupSettings :: Maybe MsSmoothGroupSettings
$sel:msSmoothGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe MsSmoothGroupSettings
msSmoothGroupSettings} -> Maybe MsSmoothGroupSettings
msSmoothGroupSettings) (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe MsSmoothGroupSettings
a -> OutputGroupSettings
s {$sel:msSmoothGroupSettings:OutputGroupSettings' :: Maybe MsSmoothGroupSettings
msSmoothGroupSettings = Maybe MsSmoothGroupSettings
a} :: OutputGroupSettings)
outputGroupSettings_type :: Lens.Lens' OutputGroupSettings (Prelude.Maybe OutputGroupType)
outputGroupSettings_type :: Lens' OutputGroupSettings (Maybe OutputGroupType)
outputGroupSettings_type = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\OutputGroupSettings' {Maybe OutputGroupType
type' :: Maybe OutputGroupType
$sel:type':OutputGroupSettings' :: OutputGroupSettings -> Maybe OutputGroupType
type'} -> Maybe OutputGroupType
type') (\s :: OutputGroupSettings
s@OutputGroupSettings' {} Maybe OutputGroupType
a -> OutputGroupSettings
s {$sel:type':OutputGroupSettings' :: Maybe OutputGroupType
type' = Maybe OutputGroupType
a} :: OutputGroupSettings)
instance Data.FromJSON OutputGroupSettings where
parseJSON :: Value -> Parser OutputGroupSettings
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"OutputGroupSettings"
( \Object
x ->
Maybe CmafGroupSettings
-> Maybe DashIsoGroupSettings
-> Maybe FileGroupSettings
-> Maybe HlsGroupSettings
-> Maybe MsSmoothGroupSettings
-> Maybe OutputGroupType
-> OutputGroupSettings
OutputGroupSettings'
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
"cmafGroupSettings")
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
"dashIsoGroupSettings")
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
"fileGroupSettings")
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
"hlsGroupSettings")
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
"msSmoothGroupSettings")
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
"type")
)
instance Prelude.Hashable OutputGroupSettings where
hashWithSalt :: Int -> OutputGroupSettings -> Int
hashWithSalt Int
_salt OutputGroupSettings' {Maybe OutputGroupType
Maybe FileGroupSettings
Maybe MsSmoothGroupSettings
Maybe DashIsoGroupSettings
Maybe HlsGroupSettings
Maybe CmafGroupSettings
type' :: Maybe OutputGroupType
msSmoothGroupSettings :: Maybe MsSmoothGroupSettings
hlsGroupSettings :: Maybe HlsGroupSettings
fileGroupSettings :: Maybe FileGroupSettings
dashIsoGroupSettings :: Maybe DashIsoGroupSettings
cmafGroupSettings :: Maybe CmafGroupSettings
$sel:type':OutputGroupSettings' :: OutputGroupSettings -> Maybe OutputGroupType
$sel:msSmoothGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe MsSmoothGroupSettings
$sel:hlsGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe HlsGroupSettings
$sel:fileGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe FileGroupSettings
$sel:dashIsoGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe DashIsoGroupSettings
$sel:cmafGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe CmafGroupSettings
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CmafGroupSettings
cmafGroupSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DashIsoGroupSettings
dashIsoGroupSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FileGroupSettings
fileGroupSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe HlsGroupSettings
hlsGroupSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MsSmoothGroupSettings
msSmoothGroupSettings
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe OutputGroupType
type'
instance Prelude.NFData OutputGroupSettings where
rnf :: OutputGroupSettings -> ()
rnf OutputGroupSettings' {Maybe OutputGroupType
Maybe FileGroupSettings
Maybe MsSmoothGroupSettings
Maybe DashIsoGroupSettings
Maybe HlsGroupSettings
Maybe CmafGroupSettings
type' :: Maybe OutputGroupType
msSmoothGroupSettings :: Maybe MsSmoothGroupSettings
hlsGroupSettings :: Maybe HlsGroupSettings
fileGroupSettings :: Maybe FileGroupSettings
dashIsoGroupSettings :: Maybe DashIsoGroupSettings
cmafGroupSettings :: Maybe CmafGroupSettings
$sel:type':OutputGroupSettings' :: OutputGroupSettings -> Maybe OutputGroupType
$sel:msSmoothGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe MsSmoothGroupSettings
$sel:hlsGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe HlsGroupSettings
$sel:fileGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe FileGroupSettings
$sel:dashIsoGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe DashIsoGroupSettings
$sel:cmafGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe CmafGroupSettings
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe CmafGroupSettings
cmafGroupSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DashIsoGroupSettings
dashIsoGroupSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FileGroupSettings
fileGroupSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HlsGroupSettings
hlsGroupSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MsSmoothGroupSettings
msSmoothGroupSettings
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe OutputGroupType
type'
instance Data.ToJSON OutputGroupSettings where
toJSON :: OutputGroupSettings -> Value
toJSON OutputGroupSettings' {Maybe OutputGroupType
Maybe FileGroupSettings
Maybe MsSmoothGroupSettings
Maybe DashIsoGroupSettings
Maybe HlsGroupSettings
Maybe CmafGroupSettings
type' :: Maybe OutputGroupType
msSmoothGroupSettings :: Maybe MsSmoothGroupSettings
hlsGroupSettings :: Maybe HlsGroupSettings
fileGroupSettings :: Maybe FileGroupSettings
dashIsoGroupSettings :: Maybe DashIsoGroupSettings
cmafGroupSettings :: Maybe CmafGroupSettings
$sel:type':OutputGroupSettings' :: OutputGroupSettings -> Maybe OutputGroupType
$sel:msSmoothGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe MsSmoothGroupSettings
$sel:hlsGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe HlsGroupSettings
$sel:fileGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe FileGroupSettings
$sel:dashIsoGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe DashIsoGroupSettings
$sel:cmafGroupSettings:OutputGroupSettings' :: OutputGroupSettings -> Maybe CmafGroupSettings
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"cmafGroupSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe CmafGroupSettings
cmafGroupSettings,
(Key
"dashIsoGroupSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DashIsoGroupSettings
dashIsoGroupSettings,
(Key
"fileGroupSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FileGroupSettings
fileGroupSettings,
(Key
"hlsGroupSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsGroupSettings
hlsGroupSettings,
(Key
"msSmoothGroupSettings" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe MsSmoothGroupSettings
msSmoothGroupSettings,
(Key
"type" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OutputGroupType
type'
]
)