module Stratosphere.MediaLive.Channel.Av1ColorSpaceSettingsProperty (
        module Exports, Av1ColorSpaceSettingsProperty(..),
        mkAv1ColorSpaceSettingsProperty
    ) 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.Hdr10SettingsProperty as Exports
import {-# SOURCE #-} Stratosphere.MediaLive.Channel.Rec601SettingsProperty as Exports
import {-# SOURCE #-} Stratosphere.MediaLive.Channel.Rec709SettingsProperty as Exports
import Stratosphere.ResourceProperties
data Av1ColorSpaceSettingsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-av1colorspacesettings.html>
    Av1ColorSpaceSettingsProperty {Av1ColorSpaceSettingsProperty -> ()
haddock_workaround_ :: (),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-av1colorspacesettings.html#cfn-medialive-channel-av1colorspacesettings-colorspacepassthroughsettings>
                                   Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings :: (Prelude.Maybe ColorSpacePassthroughSettingsProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-av1colorspacesettings.html#cfn-medialive-channel-av1colorspacesettings-hdr10settings>
                                   Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
hdr10Settings :: (Prelude.Maybe Hdr10SettingsProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-av1colorspacesettings.html#cfn-medialive-channel-av1colorspacesettings-rec601settings>
                                   Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec601Settings :: (Prelude.Maybe Rec601SettingsProperty),
                                   -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-medialive-channel-av1colorspacesettings.html#cfn-medialive-channel-av1colorspacesettings-rec709settings>
                                   Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
rec709Settings :: (Prelude.Maybe Rec709SettingsProperty)}
  deriving stock (Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Bool
(Av1ColorSpaceSettingsProperty
 -> Av1ColorSpaceSettingsProperty -> Bool)
-> (Av1ColorSpaceSettingsProperty
    -> Av1ColorSpaceSettingsProperty -> Bool)
-> Eq Av1ColorSpaceSettingsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Bool
== :: Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Bool
$c/= :: Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Bool
/= :: Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Bool
Prelude.Eq, Int -> Av1ColorSpaceSettingsProperty -> ShowS
[Av1ColorSpaceSettingsProperty] -> ShowS
Av1ColorSpaceSettingsProperty -> String
(Int -> Av1ColorSpaceSettingsProperty -> ShowS)
-> (Av1ColorSpaceSettingsProperty -> String)
-> ([Av1ColorSpaceSettingsProperty] -> ShowS)
-> Show Av1ColorSpaceSettingsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Av1ColorSpaceSettingsProperty -> ShowS
showsPrec :: Int -> Av1ColorSpaceSettingsProperty -> ShowS
$cshow :: Av1ColorSpaceSettingsProperty -> String
show :: Av1ColorSpaceSettingsProperty -> String
$cshowList :: [Av1ColorSpaceSettingsProperty] -> ShowS
showList :: [Av1ColorSpaceSettingsProperty] -> ShowS
Prelude.Show)
mkAv1ColorSpaceSettingsProperty :: Av1ColorSpaceSettingsProperty
mkAv1ColorSpaceSettingsProperty :: Av1ColorSpaceSettingsProperty
mkAv1ColorSpaceSettingsProperty
  = Av1ColorSpaceSettingsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (),
       colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings = Maybe ColorSpacePassthroughSettingsProperty
forall a. Maybe a
Prelude.Nothing,
       hdr10Settings :: Maybe Hdr10SettingsProperty
hdr10Settings = Maybe Hdr10SettingsProperty
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 Av1ColorSpaceSettingsProperty where
  toResourceProperties :: Av1ColorSpaceSettingsProperty -> ResourceProperties
toResourceProperties Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::MediaLive::Channel.Av1ColorSpaceSettings",
         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 -> Hdr10SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Hdr10Settings" (Hdr10SettingsProperty -> (Key, Value))
-> Maybe Hdr10SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Hdr10SettingsProperty
hdr10Settings,
                            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 Av1ColorSpaceSettingsProperty where
  toJSON :: Av1ColorSpaceSettingsProperty -> Value
toJSON Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
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 -> Hdr10SettingsProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"Hdr10Settings" (Hdr10SettingsProperty -> (Key, Value))
-> Maybe Hdr10SettingsProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Hdr10SettingsProperty
hdr10Settings,
               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" Av1ColorSpaceSettingsProperty where
  type PropertyType "ColorSpacePassthroughSettings" Av1ColorSpaceSettingsProperty = ColorSpacePassthroughSettingsProperty
  set :: PropertyType
  "ColorSpacePassthroughSettings" Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Av1ColorSpaceSettingsProperty
set PropertyType
  "ColorSpacePassthroughSettings" Av1ColorSpaceSettingsProperty
newValue Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = Av1ColorSpaceSettingsProperty
        {colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
colorSpacePassthroughSettings = ColorSpacePassthroughSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType
  "ColorSpacePassthroughSettings" Av1ColorSpaceSettingsProperty
ColorSpacePassthroughSettingsProperty
newValue, Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: ()
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
instance Property "Hdr10Settings" Av1ColorSpaceSettingsProperty where
  type PropertyType "Hdr10Settings" Av1ColorSpaceSettingsProperty = Hdr10SettingsProperty
  set :: PropertyType "Hdr10Settings" Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Av1ColorSpaceSettingsProperty
set PropertyType "Hdr10Settings" Av1ColorSpaceSettingsProperty
newValue Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = Av1ColorSpaceSettingsProperty
        {hdr10Settings :: Maybe Hdr10SettingsProperty
hdr10Settings = Hdr10SettingsProperty -> Maybe Hdr10SettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Hdr10Settings" Av1ColorSpaceSettingsProperty
Hdr10SettingsProperty
newValue, Maybe ColorSpacePassthroughSettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
instance Property "Rec601Settings" Av1ColorSpaceSettingsProperty where
  type PropertyType "Rec601Settings" Av1ColorSpaceSettingsProperty = Rec601SettingsProperty
  set :: PropertyType "Rec601Settings" Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Av1ColorSpaceSettingsProperty
set PropertyType "Rec601Settings" Av1ColorSpaceSettingsProperty
newValue Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = Av1ColorSpaceSettingsProperty
        {rec601Settings :: Maybe Rec601SettingsProperty
rec601Settings = Rec601SettingsProperty -> Maybe Rec601SettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Rec601Settings" Av1ColorSpaceSettingsProperty
Rec601SettingsProperty
newValue, Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
instance Property "Rec709Settings" Av1ColorSpaceSettingsProperty where
  type PropertyType "Rec709Settings" Av1ColorSpaceSettingsProperty = Rec709SettingsProperty
  set :: PropertyType "Rec709Settings" Av1ColorSpaceSettingsProperty
-> Av1ColorSpaceSettingsProperty -> Av1ColorSpaceSettingsProperty
set PropertyType "Rec709Settings" Av1ColorSpaceSettingsProperty
newValue Av1ColorSpaceSettingsProperty {Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
Maybe Rec709SettingsProperty
()
haddock_workaround_ :: Av1ColorSpaceSettingsProperty -> ()
colorSpacePassthroughSettings :: Av1ColorSpaceSettingsProperty
-> Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Av1ColorSpaceSettingsProperty -> Maybe Hdr10SettingsProperty
rec601Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec601SettingsProperty
rec709Settings :: Av1ColorSpaceSettingsProperty -> Maybe Rec709SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
rec709Settings :: Maybe Rec709SettingsProperty
..}
    = Av1ColorSpaceSettingsProperty
        {rec709Settings :: Maybe Rec709SettingsProperty
rec709Settings = Rec709SettingsProperty -> Maybe Rec709SettingsProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "Rec709Settings" Av1ColorSpaceSettingsProperty
Rec709SettingsProperty
newValue, Maybe ColorSpacePassthroughSettingsProperty
Maybe Hdr10SettingsProperty
Maybe Rec601SettingsProperty
()
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
haddock_workaround_ :: ()
colorSpacePassthroughSettings :: Maybe ColorSpacePassthroughSettingsProperty
hdr10Settings :: Maybe Hdr10SettingsProperty
rec601Settings :: Maybe Rec601SettingsProperty
..}