module Stratosphere.MediaPackageV2.OriginEndpoint.DashDvbSettingsProperty (
        module Exports, DashDvbSettingsProperty(..),
        mkDashDvbSettingsProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import {-# SOURCE #-} Stratosphere.MediaPackageV2.OriginEndpoint.DashDvbFontDownloadProperty as Exports
import {-# SOURCE #-} Stratosphere.MediaPackageV2.OriginEndpoint.DashDvbMetricsReportingProperty as Exports
import Stratosphere.ResourceProperties
data DashDvbSettingsProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackagev2-originendpoint-dashdvbsettings.html>
    DashDvbSettingsProperty {DashDvbSettingsProperty -> ()
haddock_workaround_ :: (),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackagev2-originendpoint-dashdvbsettings.html#cfn-mediapackagev2-originendpoint-dashdvbsettings-errormetrics>
                             DashDvbSettingsProperty -> Maybe [DashDvbMetricsReportingProperty]
errorMetrics :: (Prelude.Maybe [DashDvbMetricsReportingProperty]),
                             -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-mediapackagev2-originendpoint-dashdvbsettings.html#cfn-mediapackagev2-originendpoint-dashdvbsettings-fontdownload>
                             DashDvbSettingsProperty -> Maybe DashDvbFontDownloadProperty
fontDownload :: (Prelude.Maybe DashDvbFontDownloadProperty)}
  deriving stock (DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool
(DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool)
-> (DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool)
-> Eq DashDvbSettingsProperty
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool
== :: DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool
$c/= :: DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool
/= :: DashDvbSettingsProperty -> DashDvbSettingsProperty -> Bool
Prelude.Eq, Int -> DashDvbSettingsProperty -> ShowS
[DashDvbSettingsProperty] -> ShowS
DashDvbSettingsProperty -> String
(Int -> DashDvbSettingsProperty -> ShowS)
-> (DashDvbSettingsProperty -> String)
-> ([DashDvbSettingsProperty] -> ShowS)
-> Show DashDvbSettingsProperty
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> DashDvbSettingsProperty -> ShowS
showsPrec :: Int -> DashDvbSettingsProperty -> ShowS
$cshow :: DashDvbSettingsProperty -> String
show :: DashDvbSettingsProperty -> String
$cshowList :: [DashDvbSettingsProperty] -> ShowS
showList :: [DashDvbSettingsProperty] -> ShowS
Prelude.Show)
mkDashDvbSettingsProperty :: DashDvbSettingsProperty
mkDashDvbSettingsProperty :: DashDvbSettingsProperty
mkDashDvbSettingsProperty
  = DashDvbSettingsProperty
      {haddock_workaround_ :: ()
haddock_workaround_ = (), errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
errorMetrics = Maybe [DashDvbMetricsReportingProperty]
forall a. Maybe a
Prelude.Nothing,
       fontDownload :: Maybe DashDvbFontDownloadProperty
fontDownload = Maybe DashDvbFontDownloadProperty
forall a. Maybe a
Prelude.Nothing}
instance ToResourceProperties DashDvbSettingsProperty where
  toResourceProperties :: DashDvbSettingsProperty -> ResourceProperties
toResourceProperties DashDvbSettingsProperty {Maybe [DashDvbMetricsReportingProperty]
Maybe DashDvbFontDownloadProperty
()
haddock_workaround_ :: DashDvbSettingsProperty -> ()
errorMetrics :: DashDvbSettingsProperty -> Maybe [DashDvbMetricsReportingProperty]
fontDownload :: DashDvbSettingsProperty -> Maybe DashDvbFontDownloadProperty
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
fontDownload :: Maybe DashDvbFontDownloadProperty
..}
    = ResourceProperties
        {awsType :: Text
awsType = Text
"AWS::MediaPackageV2::OriginEndpoint.DashDvbSettings",
         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 -> [DashDvbMetricsReportingProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ErrorMetrics" ([DashDvbMetricsReportingProperty] -> (Key, Value))
-> Maybe [DashDvbMetricsReportingProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [DashDvbMetricsReportingProperty]
errorMetrics,
                            Key -> DashDvbFontDownloadProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FontDownload" (DashDvbFontDownloadProperty -> (Key, Value))
-> Maybe DashDvbFontDownloadProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DashDvbFontDownloadProperty
fontDownload])}
instance JSON.ToJSON DashDvbSettingsProperty where
  toJSON :: DashDvbSettingsProperty -> Value
toJSON DashDvbSettingsProperty {Maybe [DashDvbMetricsReportingProperty]
Maybe DashDvbFontDownloadProperty
()
haddock_workaround_ :: DashDvbSettingsProperty -> ()
errorMetrics :: DashDvbSettingsProperty -> Maybe [DashDvbMetricsReportingProperty]
fontDownload :: DashDvbSettingsProperty -> Maybe DashDvbFontDownloadProperty
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
fontDownload :: Maybe DashDvbFontDownloadProperty
..}
    = [(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 -> [DashDvbMetricsReportingProperty] -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"ErrorMetrics" ([DashDvbMetricsReportingProperty] -> (Key, Value))
-> Maybe [DashDvbMetricsReportingProperty] -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [DashDvbMetricsReportingProperty]
errorMetrics,
               Key -> DashDvbFontDownloadProperty -> (Key, Value)
forall v. ToJSON v => Key -> v -> (Key, Value)
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(JSON..=) Key
"FontDownload" (DashDvbFontDownloadProperty -> (Key, Value))
-> Maybe DashDvbFontDownloadProperty -> Maybe (Key, Value)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DashDvbFontDownloadProperty
fontDownload]))
instance Property "ErrorMetrics" DashDvbSettingsProperty where
  type PropertyType "ErrorMetrics" DashDvbSettingsProperty = [DashDvbMetricsReportingProperty]
  set :: PropertyType "ErrorMetrics" DashDvbSettingsProperty
-> DashDvbSettingsProperty -> DashDvbSettingsProperty
set PropertyType "ErrorMetrics" DashDvbSettingsProperty
newValue DashDvbSettingsProperty {Maybe [DashDvbMetricsReportingProperty]
Maybe DashDvbFontDownloadProperty
()
haddock_workaround_ :: DashDvbSettingsProperty -> ()
errorMetrics :: DashDvbSettingsProperty -> Maybe [DashDvbMetricsReportingProperty]
fontDownload :: DashDvbSettingsProperty -> Maybe DashDvbFontDownloadProperty
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
fontDownload :: Maybe DashDvbFontDownloadProperty
..}
    = DashDvbSettingsProperty
        {errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
errorMetrics = [DashDvbMetricsReportingProperty]
-> Maybe [DashDvbMetricsReportingProperty]
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure [DashDvbMetricsReportingProperty]
PropertyType "ErrorMetrics" DashDvbSettingsProperty
newValue, Maybe DashDvbFontDownloadProperty
()
haddock_workaround_ :: ()
fontDownload :: Maybe DashDvbFontDownloadProperty
haddock_workaround_ :: ()
fontDownload :: Maybe DashDvbFontDownloadProperty
..}
instance Property "FontDownload" DashDvbSettingsProperty where
  type PropertyType "FontDownload" DashDvbSettingsProperty = DashDvbFontDownloadProperty
  set :: PropertyType "FontDownload" DashDvbSettingsProperty
-> DashDvbSettingsProperty -> DashDvbSettingsProperty
set PropertyType "FontDownload" DashDvbSettingsProperty
newValue DashDvbSettingsProperty {Maybe [DashDvbMetricsReportingProperty]
Maybe DashDvbFontDownloadProperty
()
haddock_workaround_ :: DashDvbSettingsProperty -> ()
errorMetrics :: DashDvbSettingsProperty -> Maybe [DashDvbMetricsReportingProperty]
fontDownload :: DashDvbSettingsProperty -> Maybe DashDvbFontDownloadProperty
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
fontDownload :: Maybe DashDvbFontDownloadProperty
..}
    = DashDvbSettingsProperty
        {fontDownload :: Maybe DashDvbFontDownloadProperty
fontDownload = DashDvbFontDownloadProperty -> Maybe DashDvbFontDownloadProperty
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure PropertyType "FontDownload" DashDvbSettingsProperty
DashDvbFontDownloadProperty
newValue, Maybe [DashDvbMetricsReportingProperty]
()
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
haddock_workaround_ :: ()
errorMetrics :: Maybe [DashDvbMetricsReportingProperty]
..}