{-# 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.MediaTailor.Types.AdBreak where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.MediaTailor.Types.MessageType
import Amazonka.MediaTailor.Types.SlateSource
import Amazonka.MediaTailor.Types.SpliceInsertMessage
import Amazonka.MediaTailor.Types.TimeSignalMessage
import qualified Amazonka.Prelude as Prelude
data AdBreak = AdBreak'
{
AdBreak -> Maybe MessageType
messageType :: Prelude.Maybe MessageType,
AdBreak -> Maybe Integer
offsetMillis :: Prelude.Maybe Prelude.Integer,
AdBreak -> Maybe SlateSource
slate :: Prelude.Maybe SlateSource,
AdBreak -> Maybe SpliceInsertMessage
spliceInsertMessage :: Prelude.Maybe SpliceInsertMessage,
AdBreak -> Maybe TimeSignalMessage
timeSignalMessage :: Prelude.Maybe TimeSignalMessage
}
deriving (AdBreak -> AdBreak -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: AdBreak -> AdBreak -> Bool
$c/= :: AdBreak -> AdBreak -> Bool
== :: AdBreak -> AdBreak -> Bool
$c== :: AdBreak -> AdBreak -> Bool
Prelude.Eq, ReadPrec [AdBreak]
ReadPrec AdBreak
Int -> ReadS AdBreak
ReadS [AdBreak]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [AdBreak]
$creadListPrec :: ReadPrec [AdBreak]
readPrec :: ReadPrec AdBreak
$creadPrec :: ReadPrec AdBreak
readList :: ReadS [AdBreak]
$creadList :: ReadS [AdBreak]
readsPrec :: Int -> ReadS AdBreak
$creadsPrec :: Int -> ReadS AdBreak
Prelude.Read, Int -> AdBreak -> ShowS
[AdBreak] -> ShowS
AdBreak -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [AdBreak] -> ShowS
$cshowList :: [AdBreak] -> ShowS
show :: AdBreak -> String
$cshow :: AdBreak -> String
showsPrec :: Int -> AdBreak -> ShowS
$cshowsPrec :: Int -> AdBreak -> ShowS
Prelude.Show, forall x. Rep AdBreak x -> AdBreak
forall x. AdBreak -> Rep AdBreak x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep AdBreak x -> AdBreak
$cfrom :: forall x. AdBreak -> Rep AdBreak x
Prelude.Generic)
newAdBreak ::
AdBreak
newAdBreak :: AdBreak
newAdBreak =
AdBreak'
{ $sel:messageType:AdBreak' :: Maybe MessageType
messageType = forall a. Maybe a
Prelude.Nothing,
$sel:offsetMillis:AdBreak' :: Maybe Integer
offsetMillis = forall a. Maybe a
Prelude.Nothing,
$sel:slate:AdBreak' :: Maybe SlateSource
slate = forall a. Maybe a
Prelude.Nothing,
$sel:spliceInsertMessage:AdBreak' :: Maybe SpliceInsertMessage
spliceInsertMessage = forall a. Maybe a
Prelude.Nothing,
$sel:timeSignalMessage:AdBreak' :: Maybe TimeSignalMessage
timeSignalMessage = forall a. Maybe a
Prelude.Nothing
}
adBreak_messageType :: Lens.Lens' AdBreak (Prelude.Maybe MessageType)
adBreak_messageType :: Lens' AdBreak (Maybe MessageType)
adBreak_messageType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdBreak' {Maybe MessageType
messageType :: Maybe MessageType
$sel:messageType:AdBreak' :: AdBreak -> Maybe MessageType
messageType} -> Maybe MessageType
messageType) (\s :: AdBreak
s@AdBreak' {} Maybe MessageType
a -> AdBreak
s {$sel:messageType:AdBreak' :: Maybe MessageType
messageType = Maybe MessageType
a} :: AdBreak)
adBreak_offsetMillis :: Lens.Lens' AdBreak (Prelude.Maybe Prelude.Integer)
adBreak_offsetMillis :: Lens' AdBreak (Maybe Integer)
adBreak_offsetMillis = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdBreak' {Maybe Integer
offsetMillis :: Maybe Integer
$sel:offsetMillis:AdBreak' :: AdBreak -> Maybe Integer
offsetMillis} -> Maybe Integer
offsetMillis) (\s :: AdBreak
s@AdBreak' {} Maybe Integer
a -> AdBreak
s {$sel:offsetMillis:AdBreak' :: Maybe Integer
offsetMillis = Maybe Integer
a} :: AdBreak)
adBreak_slate :: Lens.Lens' AdBreak (Prelude.Maybe SlateSource)
adBreak_slate :: Lens' AdBreak (Maybe SlateSource)
adBreak_slate = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdBreak' {Maybe SlateSource
slate :: Maybe SlateSource
$sel:slate:AdBreak' :: AdBreak -> Maybe SlateSource
slate} -> Maybe SlateSource
slate) (\s :: AdBreak
s@AdBreak' {} Maybe SlateSource
a -> AdBreak
s {$sel:slate:AdBreak' :: Maybe SlateSource
slate = Maybe SlateSource
a} :: AdBreak)
adBreak_spliceInsertMessage :: Lens.Lens' AdBreak (Prelude.Maybe SpliceInsertMessage)
adBreak_spliceInsertMessage :: Lens' AdBreak (Maybe SpliceInsertMessage)
adBreak_spliceInsertMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdBreak' {Maybe SpliceInsertMessage
spliceInsertMessage :: Maybe SpliceInsertMessage
$sel:spliceInsertMessage:AdBreak' :: AdBreak -> Maybe SpliceInsertMessage
spliceInsertMessage} -> Maybe SpliceInsertMessage
spliceInsertMessage) (\s :: AdBreak
s@AdBreak' {} Maybe SpliceInsertMessage
a -> AdBreak
s {$sel:spliceInsertMessage:AdBreak' :: Maybe SpliceInsertMessage
spliceInsertMessage = Maybe SpliceInsertMessage
a} :: AdBreak)
adBreak_timeSignalMessage :: Lens.Lens' AdBreak (Prelude.Maybe TimeSignalMessage)
adBreak_timeSignalMessage :: Lens' AdBreak (Maybe TimeSignalMessage)
adBreak_timeSignalMessage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\AdBreak' {Maybe TimeSignalMessage
timeSignalMessage :: Maybe TimeSignalMessage
$sel:timeSignalMessage:AdBreak' :: AdBreak -> Maybe TimeSignalMessage
timeSignalMessage} -> Maybe TimeSignalMessage
timeSignalMessage) (\s :: AdBreak
s@AdBreak' {} Maybe TimeSignalMessage
a -> AdBreak
s {$sel:timeSignalMessage:AdBreak' :: Maybe TimeSignalMessage
timeSignalMessage = Maybe TimeSignalMessage
a} :: AdBreak)
instance Data.FromJSON AdBreak where
parseJSON :: Value -> Parser AdBreak
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"AdBreak"
( \Object
x ->
Maybe MessageType
-> Maybe Integer
-> Maybe SlateSource
-> Maybe SpliceInsertMessage
-> Maybe TimeSignalMessage
-> AdBreak
AdBreak'
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
"MessageType")
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
"OffsetMillis")
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
"Slate")
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
"SpliceInsertMessage")
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
"TimeSignalMessage")
)
instance Prelude.Hashable AdBreak where
hashWithSalt :: Int -> AdBreak -> Int
hashWithSalt Int
_salt AdBreak' {Maybe Integer
Maybe MessageType
Maybe SlateSource
Maybe SpliceInsertMessage
Maybe TimeSignalMessage
timeSignalMessage :: Maybe TimeSignalMessage
spliceInsertMessage :: Maybe SpliceInsertMessage
slate :: Maybe SlateSource
offsetMillis :: Maybe Integer
messageType :: Maybe MessageType
$sel:timeSignalMessage:AdBreak' :: AdBreak -> Maybe TimeSignalMessage
$sel:spliceInsertMessage:AdBreak' :: AdBreak -> Maybe SpliceInsertMessage
$sel:slate:AdBreak' :: AdBreak -> Maybe SlateSource
$sel:offsetMillis:AdBreak' :: AdBreak -> Maybe Integer
$sel:messageType:AdBreak' :: AdBreak -> Maybe MessageType
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MessageType
messageType
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
offsetMillis
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SlateSource
slate
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe SpliceInsertMessage
spliceInsertMessage
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TimeSignalMessage
timeSignalMessage
instance Prelude.NFData AdBreak where
rnf :: AdBreak -> ()
rnf AdBreak' {Maybe Integer
Maybe MessageType
Maybe SlateSource
Maybe SpliceInsertMessage
Maybe TimeSignalMessage
timeSignalMessage :: Maybe TimeSignalMessage
spliceInsertMessage :: Maybe SpliceInsertMessage
slate :: Maybe SlateSource
offsetMillis :: Maybe Integer
messageType :: Maybe MessageType
$sel:timeSignalMessage:AdBreak' :: AdBreak -> Maybe TimeSignalMessage
$sel:spliceInsertMessage:AdBreak' :: AdBreak -> Maybe SpliceInsertMessage
$sel:slate:AdBreak' :: AdBreak -> Maybe SlateSource
$sel:offsetMillis:AdBreak' :: AdBreak -> Maybe Integer
$sel:messageType:AdBreak' :: AdBreak -> Maybe MessageType
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe MessageType
messageType
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
offsetMillis
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SlateSource
slate
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe SpliceInsertMessage
spliceInsertMessage
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TimeSignalMessage
timeSignalMessage
instance Data.ToJSON AdBreak where
toJSON :: AdBreak -> Value
toJSON AdBreak' {Maybe Integer
Maybe MessageType
Maybe SlateSource
Maybe SpliceInsertMessage
Maybe TimeSignalMessage
timeSignalMessage :: Maybe TimeSignalMessage
spliceInsertMessage :: Maybe SpliceInsertMessage
slate :: Maybe SlateSource
offsetMillis :: Maybe Integer
messageType :: Maybe MessageType
$sel:timeSignalMessage:AdBreak' :: AdBreak -> Maybe TimeSignalMessage
$sel:spliceInsertMessage:AdBreak' :: AdBreak -> Maybe SpliceInsertMessage
$sel:slate:AdBreak' :: AdBreak -> Maybe SlateSource
$sel:offsetMillis:AdBreak' :: AdBreak -> Maybe Integer
$sel:messageType:AdBreak' :: AdBreak -> Maybe MessageType
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"MessageType" 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 MessageType
messageType,
(Key
"OffsetMillis" 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 Integer
offsetMillis,
(Key
"Slate" 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 SlateSource
slate,
(Key
"SpliceInsertMessage" 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 SpliceInsertMessage
spliceInsertMessage,
(Key
"TimeSignalMessage" 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 TimeSignalMessage
timeSignalMessage
]
)