{-# 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.MediaPackageVOD.Types.DashManifest where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaPackageVOD.Types.ManifestLayout
import Amazonka.MediaPackageVOD.Types.Profile
import Amazonka.MediaPackageVOD.Types.ScteMarkersSource
import Amazonka.MediaPackageVOD.Types.StreamSelection
import qualified Amazonka.Prelude as Prelude
data DashManifest = DashManifest'
{
DashManifest -> Maybe ManifestLayout
manifestLayout :: Prelude.Maybe ManifestLayout,
DashManifest -> Maybe Text
manifestName :: Prelude.Maybe Prelude.Text,
DashManifest -> Maybe Int
minBufferTimeSeconds :: Prelude.Maybe Prelude.Int,
DashManifest -> Maybe Profile
profile :: Prelude.Maybe Profile,
:: Prelude.Maybe ScteMarkersSource,
DashManifest -> Maybe StreamSelection
streamSelection :: Prelude.Maybe StreamSelection
}
deriving (DashManifest -> DashManifest -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DashManifest -> DashManifest -> Bool
$c/= :: DashManifest -> DashManifest -> Bool
== :: DashManifest -> DashManifest -> Bool
$c== :: DashManifest -> DashManifest -> Bool
Prelude.Eq, ReadPrec [DashManifest]
ReadPrec DashManifest
Int -> ReadS DashManifest
ReadS [DashManifest]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DashManifest]
$creadListPrec :: ReadPrec [DashManifest]
readPrec :: ReadPrec DashManifest
$creadPrec :: ReadPrec DashManifest
readList :: ReadS [DashManifest]
$creadList :: ReadS [DashManifest]
readsPrec :: Int -> ReadS DashManifest
$creadsPrec :: Int -> ReadS DashManifest
Prelude.Read, Int -> DashManifest -> ShowS
[DashManifest] -> ShowS
DashManifest -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DashManifest] -> ShowS
$cshowList :: [DashManifest] -> ShowS
show :: DashManifest -> String
$cshow :: DashManifest -> String
showsPrec :: Int -> DashManifest -> ShowS
$cshowsPrec :: Int -> DashManifest -> ShowS
Prelude.Show, forall x. Rep DashManifest x -> DashManifest
forall x. DashManifest -> Rep DashManifest x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DashManifest x -> DashManifest
$cfrom :: forall x. DashManifest -> Rep DashManifest x
Prelude.Generic)
newDashManifest ::
DashManifest
newDashManifest :: DashManifest
newDashManifest =
DashManifest'
{ $sel:manifestLayout:DashManifest' :: Maybe ManifestLayout
manifestLayout = forall a. Maybe a
Prelude.Nothing,
$sel:manifestName:DashManifest' :: Maybe Text
manifestName = forall a. Maybe a
Prelude.Nothing,
$sel:minBufferTimeSeconds:DashManifest' :: Maybe Int
minBufferTimeSeconds = forall a. Maybe a
Prelude.Nothing,
$sel:profile:DashManifest' :: Maybe Profile
profile = forall a. Maybe a
Prelude.Nothing,
$sel:scteMarkersSource:DashManifest' :: Maybe ScteMarkersSource
scteMarkersSource = forall a. Maybe a
Prelude.Nothing,
$sel:streamSelection:DashManifest' :: Maybe StreamSelection
streamSelection = forall a. Maybe a
Prelude.Nothing
}
dashManifest_manifestLayout :: Lens.Lens' DashManifest (Prelude.Maybe ManifestLayout)
dashManifest_manifestLayout :: Lens' DashManifest (Maybe ManifestLayout)
dashManifest_manifestLayout = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe ManifestLayout
manifestLayout :: Maybe ManifestLayout
$sel:manifestLayout:DashManifest' :: DashManifest -> Maybe ManifestLayout
manifestLayout} -> Maybe ManifestLayout
manifestLayout) (\s :: DashManifest
s@DashManifest' {} Maybe ManifestLayout
a -> DashManifest
s {$sel:manifestLayout:DashManifest' :: Maybe ManifestLayout
manifestLayout = Maybe ManifestLayout
a} :: DashManifest)
dashManifest_manifestName :: Lens.Lens' DashManifest (Prelude.Maybe Prelude.Text)
dashManifest_manifestName :: Lens' DashManifest (Maybe Text)
dashManifest_manifestName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe Text
manifestName :: Maybe Text
$sel:manifestName:DashManifest' :: DashManifest -> Maybe Text
manifestName} -> Maybe Text
manifestName) (\s :: DashManifest
s@DashManifest' {} Maybe Text
a -> DashManifest
s {$sel:manifestName:DashManifest' :: Maybe Text
manifestName = Maybe Text
a} :: DashManifest)
dashManifest_minBufferTimeSeconds :: Lens.Lens' DashManifest (Prelude.Maybe Prelude.Int)
dashManifest_minBufferTimeSeconds :: Lens' DashManifest (Maybe Int)
dashManifest_minBufferTimeSeconds = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe Int
minBufferTimeSeconds :: Maybe Int
$sel:minBufferTimeSeconds:DashManifest' :: DashManifest -> Maybe Int
minBufferTimeSeconds} -> Maybe Int
minBufferTimeSeconds) (\s :: DashManifest
s@DashManifest' {} Maybe Int
a -> DashManifest
s {$sel:minBufferTimeSeconds:DashManifest' :: Maybe Int
minBufferTimeSeconds = Maybe Int
a} :: DashManifest)
dashManifest_profile :: Lens.Lens' DashManifest (Prelude.Maybe Profile)
dashManifest_profile :: Lens' DashManifest (Maybe Profile)
dashManifest_profile = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe Profile
profile :: Maybe Profile
$sel:profile:DashManifest' :: DashManifest -> Maybe Profile
profile} -> Maybe Profile
profile) (\s :: DashManifest
s@DashManifest' {} Maybe Profile
a -> DashManifest
s {$sel:profile:DashManifest' :: Maybe Profile
profile = Maybe Profile
a} :: DashManifest)
dashManifest_scteMarkersSource :: Lens.Lens' DashManifest (Prelude.Maybe ScteMarkersSource)
= forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe ScteMarkersSource
scteMarkersSource :: Maybe ScteMarkersSource
$sel:scteMarkersSource:DashManifest' :: DashManifest -> Maybe ScteMarkersSource
scteMarkersSource} -> Maybe ScteMarkersSource
scteMarkersSource) (\s :: DashManifest
s@DashManifest' {} Maybe ScteMarkersSource
a -> DashManifest
s {$sel:scteMarkersSource:DashManifest' :: Maybe ScteMarkersSource
scteMarkersSource = Maybe ScteMarkersSource
a} :: DashManifest)
dashManifest_streamSelection :: Lens.Lens' DashManifest (Prelude.Maybe StreamSelection)
dashManifest_streamSelection :: Lens' DashManifest (Maybe StreamSelection)
dashManifest_streamSelection = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DashManifest' {Maybe StreamSelection
streamSelection :: Maybe StreamSelection
$sel:streamSelection:DashManifest' :: DashManifest -> Maybe StreamSelection
streamSelection} -> Maybe StreamSelection
streamSelection) (\s :: DashManifest
s@DashManifest' {} Maybe StreamSelection
a -> DashManifest
s {$sel:streamSelection:DashManifest' :: Maybe StreamSelection
streamSelection = Maybe StreamSelection
a} :: DashManifest)
instance Data.FromJSON DashManifest where
parseJSON :: Value -> Parser DashManifest
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"DashManifest"
( \Object
x ->
Maybe ManifestLayout
-> Maybe Text
-> Maybe Int
-> Maybe Profile
-> Maybe ScteMarkersSource
-> Maybe StreamSelection
-> DashManifest
DashManifest'
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
"manifestLayout")
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
"manifestName")
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
"minBufferTimeSeconds")
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
"profile")
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
"scteMarkersSource")
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
"streamSelection")
)
instance Prelude.Hashable DashManifest where
hashWithSalt :: Int -> DashManifest -> Int
hashWithSalt Int
_salt DashManifest' {Maybe Int
Maybe Text
Maybe ManifestLayout
Maybe Profile
Maybe ScteMarkersSource
Maybe StreamSelection
streamSelection :: Maybe StreamSelection
scteMarkersSource :: Maybe ScteMarkersSource
profile :: Maybe Profile
minBufferTimeSeconds :: Maybe Int
manifestName :: Maybe Text
manifestLayout :: Maybe ManifestLayout
$sel:streamSelection:DashManifest' :: DashManifest -> Maybe StreamSelection
$sel:scteMarkersSource:DashManifest' :: DashManifest -> Maybe ScteMarkersSource
$sel:profile:DashManifest' :: DashManifest -> Maybe Profile
$sel:minBufferTimeSeconds:DashManifest' :: DashManifest -> Maybe Int
$sel:manifestName:DashManifest' :: DashManifest -> Maybe Text
$sel:manifestLayout:DashManifest' :: DashManifest -> Maybe ManifestLayout
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ManifestLayout
manifestLayout
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
manifestName
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
minBufferTimeSeconds
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Profile
profile
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ScteMarkersSource
scteMarkersSource
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe StreamSelection
streamSelection
instance Prelude.NFData DashManifest where
rnf :: DashManifest -> ()
rnf DashManifest' {Maybe Int
Maybe Text
Maybe ManifestLayout
Maybe Profile
Maybe ScteMarkersSource
Maybe StreamSelection
streamSelection :: Maybe StreamSelection
scteMarkersSource :: Maybe ScteMarkersSource
profile :: Maybe Profile
minBufferTimeSeconds :: Maybe Int
manifestName :: Maybe Text
manifestLayout :: Maybe ManifestLayout
$sel:streamSelection:DashManifest' :: DashManifest -> Maybe StreamSelection
$sel:scteMarkersSource:DashManifest' :: DashManifest -> Maybe ScteMarkersSource
$sel:profile:DashManifest' :: DashManifest -> Maybe Profile
$sel:minBufferTimeSeconds:DashManifest' :: DashManifest -> Maybe Int
$sel:manifestName:DashManifest' :: DashManifest -> Maybe Text
$sel:manifestLayout:DashManifest' :: DashManifest -> Maybe ManifestLayout
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe ManifestLayout
manifestLayout
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
manifestName
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
minBufferTimeSeconds
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Profile
profile
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ScteMarkersSource
scteMarkersSource
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe StreamSelection
streamSelection
instance Data.ToJSON DashManifest where
toJSON :: DashManifest -> Value
toJSON DashManifest' {Maybe Int
Maybe Text
Maybe ManifestLayout
Maybe Profile
Maybe ScteMarkersSource
Maybe StreamSelection
streamSelection :: Maybe StreamSelection
scteMarkersSource :: Maybe ScteMarkersSource
profile :: Maybe Profile
minBufferTimeSeconds :: Maybe Int
manifestName :: Maybe Text
manifestLayout :: Maybe ManifestLayout
$sel:streamSelection:DashManifest' :: DashManifest -> Maybe StreamSelection
$sel:scteMarkersSource:DashManifest' :: DashManifest -> Maybe ScteMarkersSource
$sel:profile:DashManifest' :: DashManifest -> Maybe Profile
$sel:minBufferTimeSeconds:DashManifest' :: DashManifest -> Maybe Int
$sel:manifestName:DashManifest' :: DashManifest -> Maybe Text
$sel:manifestLayout:DashManifest' :: DashManifest -> Maybe ManifestLayout
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"manifestLayout" 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 ManifestLayout
manifestLayout,
(Key
"manifestName" 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 Text
manifestName,
(Key
"minBufferTimeSeconds" 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 Int
minBufferTimeSeconds,
(Key
"profile" 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 Profile
profile,
(Key
"scteMarkersSource" 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 ScteMarkersSource
scteMarkersSource,
(Key
"streamSelection" 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 StreamSelection
streamSelection
]
)