module Stratosphere.MediaLive.Channel.H264ColorSpaceSettingsProperty (
        module Exports, H264ColorSpaceSettingsProperty(..),
        mkH264ColorSpaceSettingsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.MediaLive.Channel.ColorSpacePassthroughSettingsProperty as Exports
import {-# SOURCE #-} Stratosphere.MediaLive.Channel.Rec601SettingsProperty as Exports
import {-# SOURCE #-} Stratosphere.MediaLive.Channel.Rec709SettingsProperty as Exports
import Stratosphere.ResourceProperties
data H264ColorSpaceSettingsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html>
    H264ColorSpaceSettingsProperty {H264ColorSpaceSettingsProperty -> ()
haddock_workaround_ :: (),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-colorspacepassthroughsettings>
                                    H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings :: (Prelude.Maybe ColorSpacePassthroughSettingsProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-rec601settings>
                                    H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec601Settings :: (Prelude.Maybe Rec601SettingsProperty),
                                    -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-h264colorspacesettings.html#cfn-medialive-channel-h264colorspacesettings-rec709settings>
                                    H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
rec709Settings :: (Prelude.Maybe Rec709SettingsProperty)}
  deriving stock (H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> Bool
(H264ColorSpaceSettingsProperty
 -> H264ColorSpaceSettingsProperty -> Bool)
-> (H264ColorSpaceSettingsProperty
    -> H264ColorSpaceSettingsProperty -> Bool)
-> Eq H264ColorSpaceSettingsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> Bool
== :: H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> Bool
$c/= :: H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> Bool
/= :: H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> Bool
Prelude.Eq, Int -> H264ColorSpaceSettingsProperty -> ShowS
[H264ColorSpaceSettingsProperty] -> ShowS
H264ColorSpaceSettingsProperty -> String
(Int -> H264ColorSpaceSettingsProperty -> ShowS)
-> (H264ColorSpaceSettingsProperty -> String)
-> ([H264ColorSpaceSettingsProperty] -> ShowS)
-> Show H264ColorSpaceSettingsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> H264ColorSpaceSettingsProperty -> ShowS
showsPrec :: Int -> H264ColorSpaceSettingsProperty -> ShowS
$cshow :: H264ColorSpaceSettingsProperty -> String
show :: H264ColorSpaceSettingsProperty -> String
$cshowList :: [H264ColorSpaceSettingsProperty] -> ShowS
showList :: [H264ColorSpaceSettingsProperty] -> ShowS
Prelude.Show)
mkH264ColorSpaceSettingsProperty :: H264ColorSpaceSettingsProperty
mkH264ColorSpaceSettingsProperty :: H264ColorSpaceSettingsProperty
mkH264ColorSpaceSettingsProperty
  = H264ColorSpaceSettingsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings = Maybe ColorSpacePassthroughSettingsProperty
forall a. Maybe a
Prelude.Nothing,
       rec601Settings :: Maybe Rec601SettingsProperty
rec601Settings = Maybe Rec601SettingsProperty
forall a. Maybe a
Prelude.Nothing, rec709Settings :: Maybe Rec709SettingsProperty
rec709Settings = Maybe Rec709SettingsProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties H264ColorSpaceSettingsProperty where
  toResourceProperties :: H264ColorSpaceSettingsProperty -> ResourceProperties
toResourceProperties H264ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: H264ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::MediaLive::Channel.H264ColorSpaceSettings",
         supportsTags :: Bool
supportsTags = Bool
Prelude.False,
         properties :: Object
properties = [Item Object] -> Object
forall l. IsList l => [Item l] -> l
Prelude.fromList
                        ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
                           [Key -> ColorSpacePassthroughSettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ColorSpacePassthroughSettings"
                              (ColorSpacePassthroughSettingsProperty -> (Key, Value))
-> Maybe ColorSpacePassthroughSettingsProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings,
                            Key -> Rec601SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Rec601Settings" (Rec601SettingsProperty -> (Key, Value))
-> Maybe Rec601SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Rec601SettingsProperty
rec601Settings,
                            Key -> Rec709SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Rec709Settings" (Rec709SettingsProperty -> (Key, Value))
-> Maybe Rec709SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Rec709SettingsProperty
rec709Settings])}
instance JSON.ToJSON H264ColorSpaceSettingsProperty where
  toJSON :: H264ColorSpaceSettingsProperty -> Value
toJSON H264ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: H264ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = [(Key, Value)] -> Value
JSON.object
        ([Item [(Key, Value)]] -> [(Key, Value)]
forall l. IsList l => [Item l] -> l
Prelude.fromList
           ([Maybe (Key, Value)] -> [(Key, Value)]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
              [Key -> ColorSpacePassthroughSettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ColorSpacePassthroughSettings"
                 (ColorSpacePassthroughSettingsProperty -> (Key, Value))
-> Maybe ColorSpacePassthroughSettingsProperty
-> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings,
               Key -> Rec601SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Rec601Settings" (Rec601SettingsProperty -> (Key, Value))
-> Maybe Rec601SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Rec601SettingsProperty
rec601Settings,
               Key -> Rec709SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Rec709Settings" (Rec709SettingsProperty -> (Key, Value))
-> Maybe Rec709SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Rec709SettingsProperty
rec709Settings]))
instance Property "ColorSpacePassthroughSettings" H264ColorSpaceSettingsProperty where
  type PropertyType "ColorSpacePassthroughSettings" H264ColorSpaceSettingsProperty = ColorSpacePassthroughSettingsProperty
  set :: PropertyType
  "ColorSpacePassthroughSettings" H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> H264ColorSpaceSettingsProperty
set PropertyType
  "ColorSpacePassthroughSettings" H264ColorSpaceSettingsProperty
newValue H264ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: H264ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = H264ColorSpaceSettingsProperty
        {colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings = ColorSpacePassthroughSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "ColorSpacePassthroughSettings" H264ColorSpaceSettingsProperty
ColorSpacePassthroughSettingsProperty
newValue, Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: ()
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
instance Property "Rec601Settings" H264ColorSpaceSettingsProperty where
  type PropertyType "Rec601Settings" H264ColorSpaceSettingsProperty = Rec601SettingsProperty
  set :: PropertyType "Rec601Settings" H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> H264ColorSpaceSettingsProperty
set PropertyType "Rec601Settings" H264ColorSpaceSettingsProperty
newValue H264ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: H264ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = H264ColorSpaceSettingsProperty
        {rec601Settings :: Maybe Rec601SettingsProperty
rec601Settings = Rec601SettingsProperty -> Maybe Rec601SettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Rec601Settings" H264ColorSpaceSettingsProperty
Rec601SettingsProperty
newValue, Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
instance Property "Rec709Settings" H264ColorSpaceSettingsProperty where
  type PropertyType "Rec709Settings" H264ColorSpaceSettingsProperty = Rec709SettingsProperty
  set :: PropertyType "Rec709Settings" H264ColorSpaceSettingsProperty
-> H264ColorSpaceSettingsProperty -> H264ColorSpaceSettingsProperty
set PropertyType "Rec709Settings" H264ColorSpaceSettingsProperty
newValue H264ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: H264ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: H264ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: H264ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = H264ColorSpaceSettingsProperty
        {rec709Settings :: Maybe Rec709SettingsProperty
rec709Settings = Rec709SettingsProperty -> Maybe Rec709SettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Rec709Settings" H264ColorSpaceSettingsProperty
Rec709SettingsProperty
newValue, Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
()
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
..}