module Stratosphere.MediaPackage.PackagingConfiguration.HlsManifestProperty ( module Exports, HlsManifestProperty(..), mkHlsManifestProperty ) where import qualified Data.Aeson as JSON import qualified Stratosphere.Prelude as Prelude import Stratosphere.Property import {-# SOURCE #-} Stratosphere.MediaPackage.PackagingConfiguration.StreamSelectionProperty as Exports import Stratosphere.ResourceProperties import Stratosphere.Value data HlsManifestProperty = -- | See: HlsManifestProperty {haddock_workaround_ :: (), -- | See: adMarkers :: (Prelude.Maybe (Value Prelude.Text)), -- | See: includeIframeOnlyStream :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: manifestName :: (Prelude.Maybe (Value Prelude.Text)), -- | See: programDateTimeIntervalSeconds :: (Prelude.Maybe (Value Prelude.Integer)), -- | See: repeatExtXKey :: (Prelude.Maybe (Value Prelude.Bool)), -- | See: streamSelection :: (Prelude.Maybe StreamSelectionProperty)} deriving stock (Prelude.Eq, Prelude.Show) mkHlsManifestProperty :: HlsManifestProperty mkHlsManifestProperty = HlsManifestProperty {haddock_workaround_ = (), adMarkers = Prelude.Nothing, includeIframeOnlyStream = Prelude.Nothing, manifestName = Prelude.Nothing, programDateTimeIntervalSeconds = Prelude.Nothing, repeatExtXKey = Prelude.Nothing, streamSelection = Prelude.Nothing} instance ToResourceProperties HlsManifestProperty where toResourceProperties HlsManifestProperty {..} = ResourceProperties {awsType = "AWS::MediaPackage::PackagingConfiguration.HlsManifest", supportsTags = Prelude.False, properties = Prelude.fromList (Prelude.catMaybes [(JSON..=) "AdMarkers" Prelude.<$> adMarkers, (JSON..=) "IncludeIframeOnlyStream" Prelude.<$> includeIframeOnlyStream, (JSON..=) "ManifestName" Prelude.<$> manifestName, (JSON..=) "ProgramDateTimeIntervalSeconds" Prelude.<$> programDateTimeIntervalSeconds, (JSON..=) "RepeatExtXKey" Prelude.<$> repeatExtXKey, (JSON..=) "StreamSelection" Prelude.<$> streamSelection])} instance JSON.ToJSON HlsManifestProperty where toJSON HlsManifestProperty {..} = JSON.object (Prelude.fromList (Prelude.catMaybes [(JSON..=) "AdMarkers" Prelude.<$> adMarkers, (JSON..=) "IncludeIframeOnlyStream" Prelude.<$> includeIframeOnlyStream, (JSON..=) "ManifestName" Prelude.<$> manifestName, (JSON..=) "ProgramDateTimeIntervalSeconds" Prelude.<$> programDateTimeIntervalSeconds, (JSON..=) "RepeatExtXKey" Prelude.<$> repeatExtXKey, (JSON..=) "StreamSelection" Prelude.<$> streamSelection])) instance Property "AdMarkers" HlsManifestProperty where type PropertyType "AdMarkers" HlsManifestProperty = Value Prelude.Text set newValue HlsManifestProperty {..} = HlsManifestProperty {adMarkers = Prelude.pure newValue, ..} instance Property "IncludeIframeOnlyStream" HlsManifestProperty where type PropertyType "IncludeIframeOnlyStream" HlsManifestProperty = Value Prelude.Bool set newValue HlsManifestProperty {..} = HlsManifestProperty {includeIframeOnlyStream = Prelude.pure newValue, ..} instance Property "ManifestName" HlsManifestProperty where type PropertyType "ManifestName" HlsManifestProperty = Value Prelude.Text set newValue HlsManifestProperty {..} = HlsManifestProperty {manifestName = Prelude.pure newValue, ..} instance Property "ProgramDateTimeIntervalSeconds" HlsManifestProperty where type PropertyType "ProgramDateTimeIntervalSeconds" HlsManifestProperty = Value Prelude.Integer set newValue HlsManifestProperty {..} = HlsManifestProperty {programDateTimeIntervalSeconds = Prelude.pure newValue, ..} instance Property "RepeatExtXKey" HlsManifestProperty where type PropertyType "RepeatExtXKey" HlsManifestProperty = Value Prelude.Bool set newValue HlsManifestProperty {..} = HlsManifestProperty {repeatExtXKey = Prelude.pure newValue, ..} instance Property "StreamSelection" HlsManifestProperty where type PropertyType "StreamSelection" HlsManifestProperty = StreamSelectionProperty set newValue HlsManifestProperty {..} = HlsManifestProperty {streamSelection = Prelude.pure newValue, ..}