{-# 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 #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.MediaLive.Types.HlsGroupSettings
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MediaLive.Types.HlsGroupSettings where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import Amazonka.MediaLive.Types.CaptionLanguageMapping
import Amazonka.MediaLive.Types.HlsAdMarkers
import Amazonka.MediaLive.Types.HlsCaptionLanguageSetting
import Amazonka.MediaLive.Types.HlsCdnSettings
import Amazonka.MediaLive.Types.HlsClientCache
import Amazonka.MediaLive.Types.HlsCodecSpecification
import Amazonka.MediaLive.Types.HlsDirectoryStructure
import Amazonka.MediaLive.Types.HlsDiscontinuityTags
import Amazonka.MediaLive.Types.HlsEncryptionType
import Amazonka.MediaLive.Types.HlsId3SegmentTaggingState
import Amazonka.MediaLive.Types.HlsIncompleteSegmentBehavior
import Amazonka.MediaLive.Types.HlsIvInManifest
import Amazonka.MediaLive.Types.HlsIvSource
import Amazonka.MediaLive.Types.HlsManifestCompression
import Amazonka.MediaLive.Types.HlsManifestDurationFormat
import Amazonka.MediaLive.Types.HlsMode
import Amazonka.MediaLive.Types.HlsOutputSelection
import Amazonka.MediaLive.Types.HlsProgramDateTime
import Amazonka.MediaLive.Types.HlsRedundantManifest
import Amazonka.MediaLive.Types.HlsSegmentationMode
import Amazonka.MediaLive.Types.HlsStreamInfResolution
import Amazonka.MediaLive.Types.HlsTimedMetadataId3Frame
import Amazonka.MediaLive.Types.HlsTsFileMode
import Amazonka.MediaLive.Types.IFrameOnlyPlaylistType
import Amazonka.MediaLive.Types.InputLossActionForHlsOut
import Amazonka.MediaLive.Types.KeyProviderSettings
import Amazonka.MediaLive.Types.OutputLocationRef
import qualified Amazonka.Prelude as Prelude

-- | Hls Group Settings
--
-- /See:/ 'newHlsGroupSettings' smart constructor.
data HlsGroupSettings = HlsGroupSettings'
  { -- | Place segments in subdirectories.
    HlsGroupSettings -> Maybe HlsDirectoryStructure
directoryStructure :: Prelude.Maybe HlsDirectoryStructure,
    -- | Encrypts the segments with the given encryption scheme. Exclude this
    -- parameter if no encryption is desired.
    HlsGroupSettings -> Maybe HlsEncryptionType
encryptionType :: Prelude.Maybe HlsEncryptionType,
    -- | Timed Metadata interval in seconds.
    HlsGroupSettings -> Maybe Natural
timedMetadataId3Period :: Prelude.Maybe Prelude.Natural,
    -- | For use with encryptionType. The IV (Initialization Vector) is a 128-bit
    -- number used in conjunction with the key for encrypting blocks. If set to
    -- \"include\", IV is listed in the manifest, otherwise the IV is not in
    -- the manifest.
    HlsGroupSettings -> Maybe HlsIvInManifest
ivInManifest :: Prelude.Maybe HlsIvInManifest,
    -- | Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child
    -- manifests for this output group. Typically, choose Insert because these
    -- tags are required in the manifest (according to the HLS specification)
    -- and serve an important purpose. Choose Never Insert only if the
    -- downstream system is doing real-time failover (without using the
    -- MediaLive automatic failover feature) and only if that downstream system
    -- has advised you to exclude the tags.
    HlsGroupSettings -> Maybe HlsDiscontinuityTags
discontinuityTags :: Prelude.Maybe HlsDiscontinuityTags,
    -- | SEGMENTED_FILES: Emit the program as segments - multiple .ts media
    -- files. SINGLE_FILE: Applies only if Mode field is VOD. Emit the program
    -- as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
    -- tags to index segments for playback. A typical use for this value is
    -- when sending the output to AWS Elemental MediaConvert, which can accept
    -- only a single media file. Playback while the channel is running is not
    -- guaranteed due to HTTP server caching.
    HlsGroupSettings -> Maybe HlsTsFileMode
tsFileMode :: Prelude.Maybe HlsTsFileMode,
    -- | When set, minimumSegmentLength is enforced by looking ahead and back
    -- within the specified range for a nearby avail and extending the segment
    -- size if needed.
    HlsGroupSettings -> Maybe Natural
minSegmentLength :: Prelude.Maybe Prelude.Natural,
    -- | DISABLED: Do not create an I-frame-only manifest, but do create the
    -- master and media manifests (according to the Output Selection field).
    -- STANDARD: Create an I-frame-only manifest for each output that contains
    -- video, as well as the other manifests (according to the Output Selection
    -- field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to
    -- indicate it is I-frame only, and one or more #EXT-X-BYTERANGE entries
    -- identifying the I-frame position. For example,
    -- #EXT-X-BYTERANGE:160364\@1461888\"
    HlsGroupSettings -> Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists :: Prelude.Maybe IFrameOnlyPlaylistType,
    -- | Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest
    -- files. The value is calculated as follows: either the program date and
    -- time are initialized using the input timecode source, or the time is
    -- initialized using the input timecode source and the date is initialized
    -- using the timestampOffset.
    HlsGroupSettings -> Maybe HlsProgramDateTime
programDateTime :: Prelude.Maybe HlsProgramDateTime,
    -- | Applies only if Mode field is LIVE. Specifies the maximum number of
    -- segments in the media manifest file. After this maximum, older segments
    -- are removed from the media manifest. This number must be smaller than
    -- the number in the Keep Segments field.
    HlsGroupSettings -> Maybe Natural
indexNSegments :: Prelude.Maybe Prelude.Natural,
    -- | Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
    HlsGroupSettings -> Maybe Natural
programDateTimePeriod :: Prelude.Maybe Prelude.Natural,
    -- | Specification to use (RFC-6381 or the default RFC-4281) during m3u8
    -- playlist generation.
    HlsGroupSettings -> Maybe HlsCodecSpecification
codecSpecification :: Prelude.Maybe HlsCodecSpecification,
    -- | Parameters that control interactions with the CDN.
    HlsGroupSettings -> Maybe HlsCdnSettings
hlsCdnSettings :: Prelude.Maybe HlsCdnSettings,
    -- | Mapping of up to 4 caption channels to caption languages. Is only
    -- meaningful if captionLanguageSetting is set to \"insert\".
    HlsGroupSettings -> Maybe [CaptionLanguageMapping]
captionLanguageMappings :: Prelude.Maybe [CaptionLanguageMapping],
    -- | Parameter that control output group behavior on input loss.
    HlsGroupSettings -> Maybe InputLossActionForHlsOut
inputLossAction :: Prelude.Maybe InputLossActionForHlsOut,
    -- | If \"vod\", all segments are indexed and kept permanently in the
    -- destination and manifest. If \"live\", only the number segments
    -- specified in keepSegments and indexNSegments are kept; newer segments
    -- replace older segments, which may prevent players from rewinding all the
    -- way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE
    -- of EVENT while the channel is running, converting it to a \"VOD\" type
    -- manifest on completion of the stream.
    HlsGroupSettings -> Maybe HlsMode
mode :: Prelude.Maybe HlsMode,
    -- | The key provider settings.
    HlsGroupSettings -> Maybe KeyProviderSettings
keyProviderSettings :: Prelude.Maybe KeyProviderSettings,
    -- | Specifies whether to include the final (incomplete) segment in the media
    -- output when the pipeline stops producing output because of a channel
    -- stop, a channel pause or a loss of input to the pipeline. Auto means
    -- that MediaLive decides whether to include the final segment, depending
    -- on the channel class and the types of output groups. Suppress means to
    -- never include the incomplete segment. We recommend you choose Auto and
    -- let MediaLive control the behavior.
    HlsGroupSettings -> Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior :: Prelude.Maybe HlsIncompleteSegmentBehavior,
    -- | For use with encryptionType. This is a 128-bit, 16-byte hex value
    -- represented by a 32-character text string. If ivSource is set to
    -- \"explicit\" then this parameter is required and is used as the IV for
    -- encryption.
    HlsGroupSettings -> Maybe Text
constantIv :: Prelude.Maybe Prelude.Text,
    -- | A partial URI prefix that will be prepended to each output in the media
    -- .m3u8 file. Can be used if base manifest is delivered from a different
    -- URL than the main .m3u8 file.
    HlsGroupSettings -> Maybe Text
baseUrlManifest :: Prelude.Maybe Prelude.Text,
    -- | Choose one or more ad marker types to pass SCTE35 signals through to
    -- this group of Apple HLS outputs.
    HlsGroupSettings -> Maybe [HlsAdMarkers]
adMarkers :: Prelude.Maybe [HlsAdMarkers],
    -- | The value specifies how the key is represented in the resource
    -- identified by the URI. If parameter is absent, an implicit value of
    -- \"identity\" is used. A reverse DNS string can also be given.
    HlsGroupSettings -> Maybe Text
keyFormat :: Prelude.Maybe Prelude.Text,
    -- | Length of MPEG-2 Transport Stream segments to create (in seconds). Note
    -- that segments will end on the next keyframe after this number of
    -- seconds, so actual segment length may be longer.
    HlsGroupSettings -> Maybe Natural
segmentLength :: Prelude.Maybe Prelude.Natural,
    -- | State of HLS ID3 Segment Tagging
    HlsGroupSettings -> Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging :: Prelude.Maybe HlsId3SegmentTaggingState,
    -- | Indicates ID3 frame that has the timecode.
    HlsGroupSettings -> Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame :: Prelude.Maybe HlsTimedMetadataId3Frame,
    -- | A partial URI prefix that will be prepended to each output in the media
    -- .m3u8 file. Can be used if base manifest is delivered from a different
    -- URL than the main .m3u8 file.
    HlsGroupSettings -> Maybe Text
baseUrlContent :: Prelude.Maybe Prelude.Text,
    -- | MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if
    -- applicable, and media manifests) for this output group.
    -- VARIANT_MANIFESTS_AND_SEGMENTS: Generates media manifests for this
    -- output group, but not a master manifest. SEGMENTS_ONLY: Does not
    -- generate any manifests for this output group.
    HlsGroupSettings -> Maybe HlsOutputSelection
outputSelection :: Prelude.Maybe HlsOutputSelection,
    -- | Applies only to 608 Embedded output captions. insert: Include
    -- CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
    -- the CC1 Language Code field. One CLOSED-CAPTION line is added for each
    -- Language Code you specify. Make sure to specify the languages in the
    -- order in which they appear in the original source (if the source is
    -- embedded format) or the order of the caption selectors (if the source is
    -- other than embedded). Otherwise, languages in the manifest will not
    -- match up properly with the output captions. none: Include
    -- CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
    -- CLOSED-CAPTIONS line from the manifest.
    HlsGroupSettings -> Maybe HlsCaptionLanguageSetting
captionLanguageSetting :: Prelude.Maybe HlsCaptionLanguageSetting,
    -- | Number of segments to write to a subdirectory before starting a new one.
    -- directoryStructure must be subdirectoryPerStream for this setting to
    -- have an effect.
    HlsGroupSettings -> Maybe Natural
segmentsPerSubdirectory :: Prelude.Maybe Prelude.Natural,
    -- | Indicates whether the output manifest should use floating point or
    -- integer values for segment duration.
    HlsGroupSettings -> Maybe HlsManifestDurationFormat
manifestDurationFormat :: Prelude.Maybe HlsManifestDurationFormat,
    -- | For use with encryptionType. The IV (Initialization Vector) is a 128-bit
    -- number used in conjunction with the key for encrypting blocks. If this
    -- setting is \"followsSegmentNumber\", it will cause the IV to change
    -- every segment (to match the segment number). If this is set to
    -- \"explicit\", you must enter a constantIv value.
    HlsGroupSettings -> Maybe HlsIvSource
ivSource :: Prelude.Maybe HlsIvSource,
    -- | useInputSegmentation has been deprecated. The configured segment size is
    -- always used.
    HlsGroupSettings -> Maybe HlsSegmentationMode
segmentationMode :: Prelude.Maybe HlsSegmentationMode,
    -- | Either a single positive integer version value or a slash delimited list
    -- of version values (1\/2\/3).
    HlsGroupSettings -> Maybe Text
keyFormatVersions :: Prelude.Maybe Prelude.Text,
    -- | When set to \"disabled\", sets the #EXT-X-ALLOW-CACHE:no tag in the
    -- manifest, which prevents clients from saving media segments for later
    -- replay.
    HlsGroupSettings -> Maybe HlsClientCache
clientCache :: Prelude.Maybe HlsClientCache,
    -- | Provides an extra millisecond delta offset to fine tune the timestamps.
    HlsGroupSettings -> Maybe Natural
timestampDeltaMilliseconds :: Prelude.Maybe Prelude.Natural,
    -- | Optional. One value per output group. Complete this field only if you
    -- are completing Base URL manifest A, and the downstream system has
    -- notified you that the child manifest files for pipeline 1 of all outputs
    -- are in a location different from the child manifest files for pipeline
    -- 0.
    HlsGroupSettings -> Maybe Text
baseUrlManifest1 :: Prelude.Maybe Prelude.Text,
    -- | ENABLED: The master manifest (.m3u8 file) for each pipeline includes
    -- information about both pipelines: first its own media files, then the
    -- media files of the other pipeline. This feature allows playout device
    -- that support stale manifest detection to switch from one manifest to the
    -- other, when the current manifest seems to be stale. There are still two
    -- destinations and two master manifests, but both master manifests
    -- reference the media files from both pipelines. DISABLED: The master
    -- manifest (.m3u8 file) for each pipeline includes information about its
    -- own pipeline only. For an HLS output group with MediaPackage as the
    -- destination, the DISABLED behavior is always followed. MediaPackage
    -- regenerates the manifests it serves to players so a redundant manifest
    -- from MediaLive is irrelevant.
    HlsGroupSettings -> Maybe HlsRedundantManifest
redundantManifest :: Prelude.Maybe HlsRedundantManifest,
    -- | Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF
    -- tag of variant manifest.
    HlsGroupSettings -> Maybe HlsStreamInfResolution
streamInfResolution :: Prelude.Maybe HlsStreamInfResolution,
    -- | Applies only if Mode field is LIVE. Specifies the number of media
    -- segments to retain in the destination directory. This number should be
    -- bigger than indexNSegments (Num segments). We recommend (value = (2 x
    -- indexNsegments) + 1). If this \"keep segments\" number is too low, the
    -- following might happen: the player is still reading a media manifest
    -- file that lists this segment, but that segment has been removed from the
    -- destination directory (as directed by indexNSegments). This situation
    -- would result in a 404 HTTP error on the player.
    HlsGroupSettings -> Maybe Natural
keepSegments :: Prelude.Maybe Prelude.Natural,
    -- | Optional. One value per output group. This field is required only if you
    -- are completing Base URL content A, and the downstream system has
    -- notified you that the media files for pipeline 1 of all outputs are in a
    -- location different from the media files for pipeline 0.
    HlsGroupSettings -> Maybe Text
baseUrlContent1 :: Prelude.Maybe Prelude.Text,
    -- | When set to gzip, compresses HLS playlist.
    HlsGroupSettings -> Maybe HlsManifestCompression
manifestCompression :: Prelude.Maybe HlsManifestCompression,
    -- | A directory or HTTP destination for the HLS segments, manifest files,
    -- and encryption keys (if enabled).
    HlsGroupSettings -> OutputLocationRef
destination :: OutputLocationRef
  }
  deriving (HlsGroupSettings -> HlsGroupSettings -> Bool
(HlsGroupSettings -> HlsGroupSettings -> Bool)
-> (HlsGroupSettings -> HlsGroupSettings -> Bool)
-> Eq HlsGroupSettings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HlsGroupSettings -> HlsGroupSettings -> Bool
$c/= :: HlsGroupSettings -> HlsGroupSettings -> Bool
== :: HlsGroupSettings -> HlsGroupSettings -> Bool
$c== :: HlsGroupSettings -> HlsGroupSettings -> Bool
Prelude.Eq, ReadPrec [HlsGroupSettings]
ReadPrec HlsGroupSettings
Int -> ReadS HlsGroupSettings
ReadS [HlsGroupSettings]
(Int -> ReadS HlsGroupSettings)
-> ReadS [HlsGroupSettings]
-> ReadPrec HlsGroupSettings
-> ReadPrec [HlsGroupSettings]
-> Read HlsGroupSettings
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [HlsGroupSettings]
$creadListPrec :: ReadPrec [HlsGroupSettings]
readPrec :: ReadPrec HlsGroupSettings
$creadPrec :: ReadPrec HlsGroupSettings
readList :: ReadS [HlsGroupSettings]
$creadList :: ReadS [HlsGroupSettings]
readsPrec :: Int -> ReadS HlsGroupSettings
$creadsPrec :: Int -> ReadS HlsGroupSettings
Prelude.Read, Int -> HlsGroupSettings -> ShowS
[HlsGroupSettings] -> ShowS
HlsGroupSettings -> String
(Int -> HlsGroupSettings -> ShowS)
-> (HlsGroupSettings -> String)
-> ([HlsGroupSettings] -> ShowS)
-> Show HlsGroupSettings
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [HlsGroupSettings] -> ShowS
$cshowList :: [HlsGroupSettings] -> ShowS
show :: HlsGroupSettings -> String
$cshow :: HlsGroupSettings -> String
showsPrec :: Int -> HlsGroupSettings -> ShowS
$cshowsPrec :: Int -> HlsGroupSettings -> ShowS
Prelude.Show, (forall x. HlsGroupSettings -> Rep HlsGroupSettings x)
-> (forall x. Rep HlsGroupSettings x -> HlsGroupSettings)
-> Generic HlsGroupSettings
forall x. Rep HlsGroupSettings x -> HlsGroupSettings
forall x. HlsGroupSettings -> Rep HlsGroupSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep HlsGroupSettings x -> HlsGroupSettings
$cfrom :: forall x. HlsGroupSettings -> Rep HlsGroupSettings x
Prelude.Generic)

-- |
-- Create a value of 'HlsGroupSettings' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'directoryStructure', 'hlsGroupSettings_directoryStructure' - Place segments in subdirectories.
--
-- 'encryptionType', 'hlsGroupSettings_encryptionType' - Encrypts the segments with the given encryption scheme. Exclude this
-- parameter if no encryption is desired.
--
-- 'timedMetadataId3Period', 'hlsGroupSettings_timedMetadataId3Period' - Timed Metadata interval in seconds.
--
-- 'ivInManifest', 'hlsGroupSettings_ivInManifest' - For use with encryptionType. The IV (Initialization Vector) is a 128-bit
-- number used in conjunction with the key for encrypting blocks. If set to
-- \"include\", IV is listed in the manifest, otherwise the IV is not in
-- the manifest.
--
-- 'discontinuityTags', 'hlsGroupSettings_discontinuityTags' - Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child
-- manifests for this output group. Typically, choose Insert because these
-- tags are required in the manifest (according to the HLS specification)
-- and serve an important purpose. Choose Never Insert only if the
-- downstream system is doing real-time failover (without using the
-- MediaLive automatic failover feature) and only if that downstream system
-- has advised you to exclude the tags.
--
-- 'tsFileMode', 'hlsGroupSettings_tsFileMode' - SEGMENTED_FILES: Emit the program as segments - multiple .ts media
-- files. SINGLE_FILE: Applies only if Mode field is VOD. Emit the program
-- as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
-- tags to index segments for playback. A typical use for this value is
-- when sending the output to AWS Elemental MediaConvert, which can accept
-- only a single media file. Playback while the channel is running is not
-- guaranteed due to HTTP server caching.
--
-- 'minSegmentLength', 'hlsGroupSettings_minSegmentLength' - When set, minimumSegmentLength is enforced by looking ahead and back
-- within the specified range for a nearby avail and extending the segment
-- size if needed.
--
-- 'iFrameOnlyPlaylists', 'hlsGroupSettings_iFrameOnlyPlaylists' - DISABLED: Do not create an I-frame-only manifest, but do create the
-- master and media manifests (according to the Output Selection field).
-- STANDARD: Create an I-frame-only manifest for each output that contains
-- video, as well as the other manifests (according to the Output Selection
-- field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to
-- indicate it is I-frame only, and one or more #EXT-X-BYTERANGE entries
-- identifying the I-frame position. For example,
-- #EXT-X-BYTERANGE:160364\@1461888\"
--
-- 'programDateTime', 'hlsGroupSettings_programDateTime' - Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest
-- files. The value is calculated as follows: either the program date and
-- time are initialized using the input timecode source, or the time is
-- initialized using the input timecode source and the date is initialized
-- using the timestampOffset.
--
-- 'indexNSegments', 'hlsGroupSettings_indexNSegments' - Applies only if Mode field is LIVE. Specifies the maximum number of
-- segments in the media manifest file. After this maximum, older segments
-- are removed from the media manifest. This number must be smaller than
-- the number in the Keep Segments field.
--
-- 'programDateTimePeriod', 'hlsGroupSettings_programDateTimePeriod' - Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
--
-- 'codecSpecification', 'hlsGroupSettings_codecSpecification' - Specification to use (RFC-6381 or the default RFC-4281) during m3u8
-- playlist generation.
--
-- 'hlsCdnSettings', 'hlsGroupSettings_hlsCdnSettings' - Parameters that control interactions with the CDN.
--
-- 'captionLanguageMappings', 'hlsGroupSettings_captionLanguageMappings' - Mapping of up to 4 caption channels to caption languages. Is only
-- meaningful if captionLanguageSetting is set to \"insert\".
--
-- 'inputLossAction', 'hlsGroupSettings_inputLossAction' - Parameter that control output group behavior on input loss.
--
-- 'mode', 'hlsGroupSettings_mode' - If \"vod\", all segments are indexed and kept permanently in the
-- destination and manifest. If \"live\", only the number segments
-- specified in keepSegments and indexNSegments are kept; newer segments
-- replace older segments, which may prevent players from rewinding all the
-- way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE
-- of EVENT while the channel is running, converting it to a \"VOD\" type
-- manifest on completion of the stream.
--
-- 'keyProviderSettings', 'hlsGroupSettings_keyProviderSettings' - The key provider settings.
--
-- 'incompleteSegmentBehavior', 'hlsGroupSettings_incompleteSegmentBehavior' - Specifies whether to include the final (incomplete) segment in the media
-- output when the pipeline stops producing output because of a channel
-- stop, a channel pause or a loss of input to the pipeline. Auto means
-- that MediaLive decides whether to include the final segment, depending
-- on the channel class and the types of output groups. Suppress means to
-- never include the incomplete segment. We recommend you choose Auto and
-- let MediaLive control the behavior.
--
-- 'constantIv', 'hlsGroupSettings_constantIv' - For use with encryptionType. This is a 128-bit, 16-byte hex value
-- represented by a 32-character text string. If ivSource is set to
-- \"explicit\" then this parameter is required and is used as the IV for
-- encryption.
--
-- 'baseUrlManifest', 'hlsGroupSettings_baseUrlManifest' - A partial URI prefix that will be prepended to each output in the media
-- .m3u8 file. Can be used if base manifest is delivered from a different
-- URL than the main .m3u8 file.
--
-- 'adMarkers', 'hlsGroupSettings_adMarkers' - Choose one or more ad marker types to pass SCTE35 signals through to
-- this group of Apple HLS outputs.
--
-- 'keyFormat', 'hlsGroupSettings_keyFormat' - The value specifies how the key is represented in the resource
-- identified by the URI. If parameter is absent, an implicit value of
-- \"identity\" is used. A reverse DNS string can also be given.
--
-- 'segmentLength', 'hlsGroupSettings_segmentLength' - Length of MPEG-2 Transport Stream segments to create (in seconds). Note
-- that segments will end on the next keyframe after this number of
-- seconds, so actual segment length may be longer.
--
-- 'hlsId3SegmentTagging', 'hlsGroupSettings_hlsId3SegmentTagging' - State of HLS ID3 Segment Tagging
--
-- 'timedMetadataId3Frame', 'hlsGroupSettings_timedMetadataId3Frame' - Indicates ID3 frame that has the timecode.
--
-- 'baseUrlContent', 'hlsGroupSettings_baseUrlContent' - A partial URI prefix that will be prepended to each output in the media
-- .m3u8 file. Can be used if base manifest is delivered from a different
-- URL than the main .m3u8 file.
--
-- 'outputSelection', 'hlsGroupSettings_outputSelection' - MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if
-- applicable, and media manifests) for this output group.
-- VARIANT_MANIFESTS_AND_SEGMENTS: Generates media manifests for this
-- output group, but not a master manifest. SEGMENTS_ONLY: Does not
-- generate any manifests for this output group.
--
-- 'captionLanguageSetting', 'hlsGroupSettings_captionLanguageSetting' - Applies only to 608 Embedded output captions. insert: Include
-- CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
-- the CC1 Language Code field. One CLOSED-CAPTION line is added for each
-- Language Code you specify. Make sure to specify the languages in the
-- order in which they appear in the original source (if the source is
-- embedded format) or the order of the caption selectors (if the source is
-- other than embedded). Otherwise, languages in the manifest will not
-- match up properly with the output captions. none: Include
-- CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
-- CLOSED-CAPTIONS line from the manifest.
--
-- 'segmentsPerSubdirectory', 'hlsGroupSettings_segmentsPerSubdirectory' - Number of segments to write to a subdirectory before starting a new one.
-- directoryStructure must be subdirectoryPerStream for this setting to
-- have an effect.
--
-- 'manifestDurationFormat', 'hlsGroupSettings_manifestDurationFormat' - Indicates whether the output manifest should use floating point or
-- integer values for segment duration.
--
-- 'ivSource', 'hlsGroupSettings_ivSource' - For use with encryptionType. The IV (Initialization Vector) is a 128-bit
-- number used in conjunction with the key for encrypting blocks. If this
-- setting is \"followsSegmentNumber\", it will cause the IV to change
-- every segment (to match the segment number). If this is set to
-- \"explicit\", you must enter a constantIv value.
--
-- 'segmentationMode', 'hlsGroupSettings_segmentationMode' - useInputSegmentation has been deprecated. The configured segment size is
-- always used.
--
-- 'keyFormatVersions', 'hlsGroupSettings_keyFormatVersions' - Either a single positive integer version value or a slash delimited list
-- of version values (1\/2\/3).
--
-- 'clientCache', 'hlsGroupSettings_clientCache' - When set to \"disabled\", sets the #EXT-X-ALLOW-CACHE:no tag in the
-- manifest, which prevents clients from saving media segments for later
-- replay.
--
-- 'timestampDeltaMilliseconds', 'hlsGroupSettings_timestampDeltaMilliseconds' - Provides an extra millisecond delta offset to fine tune the timestamps.
--
-- 'baseUrlManifest1', 'hlsGroupSettings_baseUrlManifest1' - Optional. One value per output group. Complete this field only if you
-- are completing Base URL manifest A, and the downstream system has
-- notified you that the child manifest files for pipeline 1 of all outputs
-- are in a location different from the child manifest files for pipeline
-- 0.
--
-- 'redundantManifest', 'hlsGroupSettings_redundantManifest' - ENABLED: The master manifest (.m3u8 file) for each pipeline includes
-- information about both pipelines: first its own media files, then the
-- media files of the other pipeline. This feature allows playout device
-- that support stale manifest detection to switch from one manifest to the
-- other, when the current manifest seems to be stale. There are still two
-- destinations and two master manifests, but both master manifests
-- reference the media files from both pipelines. DISABLED: The master
-- manifest (.m3u8 file) for each pipeline includes information about its
-- own pipeline only. For an HLS output group with MediaPackage as the
-- destination, the DISABLED behavior is always followed. MediaPackage
-- regenerates the manifests it serves to players so a redundant manifest
-- from MediaLive is irrelevant.
--
-- 'streamInfResolution', 'hlsGroupSettings_streamInfResolution' - Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF
-- tag of variant manifest.
--
-- 'keepSegments', 'hlsGroupSettings_keepSegments' - Applies only if Mode field is LIVE. Specifies the number of media
-- segments to retain in the destination directory. This number should be
-- bigger than indexNSegments (Num segments). We recommend (value = (2 x
-- indexNsegments) + 1). If this \"keep segments\" number is too low, the
-- following might happen: the player is still reading a media manifest
-- file that lists this segment, but that segment has been removed from the
-- destination directory (as directed by indexNSegments). This situation
-- would result in a 404 HTTP error on the player.
--
-- 'baseUrlContent1', 'hlsGroupSettings_baseUrlContent1' - Optional. One value per output group. This field is required only if you
-- are completing Base URL content A, and the downstream system has
-- notified you that the media files for pipeline 1 of all outputs are in a
-- location different from the media files for pipeline 0.
--
-- 'manifestCompression', 'hlsGroupSettings_manifestCompression' - When set to gzip, compresses HLS playlist.
--
-- 'destination', 'hlsGroupSettings_destination' - A directory or HTTP destination for the HLS segments, manifest files,
-- and encryption keys (if enabled).
newHlsGroupSettings ::
  -- | 'destination'
  OutputLocationRef ->
  HlsGroupSettings
newHlsGroupSettings :: OutputLocationRef -> HlsGroupSettings
newHlsGroupSettings OutputLocationRef
pDestination_ =
  HlsGroupSettings' :: Maybe HlsDirectoryStructure
-> Maybe HlsEncryptionType
-> Maybe Natural
-> Maybe HlsIvInManifest
-> Maybe HlsDiscontinuityTags
-> Maybe HlsTsFileMode
-> Maybe Natural
-> Maybe IFrameOnlyPlaylistType
-> Maybe HlsProgramDateTime
-> Maybe Natural
-> Maybe Natural
-> Maybe HlsCodecSpecification
-> Maybe HlsCdnSettings
-> Maybe [CaptionLanguageMapping]
-> Maybe InputLossActionForHlsOut
-> Maybe HlsMode
-> Maybe KeyProviderSettings
-> Maybe HlsIncompleteSegmentBehavior
-> Maybe Text
-> Maybe Text
-> Maybe [HlsAdMarkers]
-> Maybe Text
-> Maybe Natural
-> Maybe HlsId3SegmentTaggingState
-> Maybe HlsTimedMetadataId3Frame
-> Maybe Text
-> Maybe HlsOutputSelection
-> Maybe HlsCaptionLanguageSetting
-> Maybe Natural
-> Maybe HlsManifestDurationFormat
-> Maybe HlsIvSource
-> Maybe HlsSegmentationMode
-> Maybe Text
-> Maybe HlsClientCache
-> Maybe Natural
-> Maybe Text
-> Maybe HlsRedundantManifest
-> Maybe HlsStreamInfResolution
-> Maybe Natural
-> Maybe Text
-> Maybe HlsManifestCompression
-> OutputLocationRef
-> HlsGroupSettings
HlsGroupSettings'
    { $sel:directoryStructure:HlsGroupSettings' :: Maybe HlsDirectoryStructure
directoryStructure =
        Maybe HlsDirectoryStructure
forall a. Maybe a
Prelude.Nothing,
      $sel:encryptionType:HlsGroupSettings' :: Maybe HlsEncryptionType
encryptionType = Maybe HlsEncryptionType
forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataId3Period:HlsGroupSettings' :: Maybe Natural
timedMetadataId3Period = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:ivInManifest:HlsGroupSettings' :: Maybe HlsIvInManifest
ivInManifest = Maybe HlsIvInManifest
forall a. Maybe a
Prelude.Nothing,
      $sel:discontinuityTags:HlsGroupSettings' :: Maybe HlsDiscontinuityTags
discontinuityTags = Maybe HlsDiscontinuityTags
forall a. Maybe a
Prelude.Nothing,
      $sel:tsFileMode:HlsGroupSettings' :: Maybe HlsTsFileMode
tsFileMode = Maybe HlsTsFileMode
forall a. Maybe a
Prelude.Nothing,
      $sel:minSegmentLength:HlsGroupSettings' :: Maybe Natural
minSegmentLength = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:iFrameOnlyPlaylists:HlsGroupSettings' :: Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists = Maybe IFrameOnlyPlaylistType
forall a. Maybe a
Prelude.Nothing,
      $sel:programDateTime:HlsGroupSettings' :: Maybe HlsProgramDateTime
programDateTime = Maybe HlsProgramDateTime
forall a. Maybe a
Prelude.Nothing,
      $sel:indexNSegments:HlsGroupSettings' :: Maybe Natural
indexNSegments = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:programDateTimePeriod:HlsGroupSettings' :: Maybe Natural
programDateTimePeriod = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:codecSpecification:HlsGroupSettings' :: Maybe HlsCodecSpecification
codecSpecification = Maybe HlsCodecSpecification
forall a. Maybe a
Prelude.Nothing,
      $sel:hlsCdnSettings:HlsGroupSettings' :: Maybe HlsCdnSettings
hlsCdnSettings = Maybe HlsCdnSettings
forall a. Maybe a
Prelude.Nothing,
      $sel:captionLanguageMappings:HlsGroupSettings' :: Maybe [CaptionLanguageMapping]
captionLanguageMappings = Maybe [CaptionLanguageMapping]
forall a. Maybe a
Prelude.Nothing,
      $sel:inputLossAction:HlsGroupSettings' :: Maybe InputLossActionForHlsOut
inputLossAction = Maybe InputLossActionForHlsOut
forall a. Maybe a
Prelude.Nothing,
      $sel:mode:HlsGroupSettings' :: Maybe HlsMode
mode = Maybe HlsMode
forall a. Maybe a
Prelude.Nothing,
      $sel:keyProviderSettings:HlsGroupSettings' :: Maybe KeyProviderSettings
keyProviderSettings = Maybe KeyProviderSettings
forall a. Maybe a
Prelude.Nothing,
      $sel:incompleteSegmentBehavior:HlsGroupSettings' :: Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior = Maybe HlsIncompleteSegmentBehavior
forall a. Maybe a
Prelude.Nothing,
      $sel:constantIv:HlsGroupSettings' :: Maybe Text
constantIv = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:baseUrlManifest:HlsGroupSettings' :: Maybe Text
baseUrlManifest = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:adMarkers:HlsGroupSettings' :: Maybe [HlsAdMarkers]
adMarkers = Maybe [HlsAdMarkers]
forall a. Maybe a
Prelude.Nothing,
      $sel:keyFormat:HlsGroupSettings' :: Maybe Text
keyFormat = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentLength:HlsGroupSettings' :: Maybe Natural
segmentLength = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:hlsId3SegmentTagging:HlsGroupSettings' :: Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging = Maybe HlsId3SegmentTaggingState
forall a. Maybe a
Prelude.Nothing,
      $sel:timedMetadataId3Frame:HlsGroupSettings' :: Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame = Maybe HlsTimedMetadataId3Frame
forall a. Maybe a
Prelude.Nothing,
      $sel:baseUrlContent:HlsGroupSettings' :: Maybe Text
baseUrlContent = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:outputSelection:HlsGroupSettings' :: Maybe HlsOutputSelection
outputSelection = Maybe HlsOutputSelection
forall a. Maybe a
Prelude.Nothing,
      $sel:captionLanguageSetting:HlsGroupSettings' :: Maybe HlsCaptionLanguageSetting
captionLanguageSetting = Maybe HlsCaptionLanguageSetting
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentsPerSubdirectory:HlsGroupSettings' :: Maybe Natural
segmentsPerSubdirectory = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:manifestDurationFormat:HlsGroupSettings' :: Maybe HlsManifestDurationFormat
manifestDurationFormat = Maybe HlsManifestDurationFormat
forall a. Maybe a
Prelude.Nothing,
      $sel:ivSource:HlsGroupSettings' :: Maybe HlsIvSource
ivSource = Maybe HlsIvSource
forall a. Maybe a
Prelude.Nothing,
      $sel:segmentationMode:HlsGroupSettings' :: Maybe HlsSegmentationMode
segmentationMode = Maybe HlsSegmentationMode
forall a. Maybe a
Prelude.Nothing,
      $sel:keyFormatVersions:HlsGroupSettings' :: Maybe Text
keyFormatVersions = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:clientCache:HlsGroupSettings' :: Maybe HlsClientCache
clientCache = Maybe HlsClientCache
forall a. Maybe a
Prelude.Nothing,
      $sel:timestampDeltaMilliseconds:HlsGroupSettings' :: Maybe Natural
timestampDeltaMilliseconds = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:baseUrlManifest1:HlsGroupSettings' :: Maybe Text
baseUrlManifest1 = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:redundantManifest:HlsGroupSettings' :: Maybe HlsRedundantManifest
redundantManifest = Maybe HlsRedundantManifest
forall a. Maybe a
Prelude.Nothing,
      $sel:streamInfResolution:HlsGroupSettings' :: Maybe HlsStreamInfResolution
streamInfResolution = Maybe HlsStreamInfResolution
forall a. Maybe a
Prelude.Nothing,
      $sel:keepSegments:HlsGroupSettings' :: Maybe Natural
keepSegments = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:baseUrlContent1:HlsGroupSettings' :: Maybe Text
baseUrlContent1 = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:manifestCompression:HlsGroupSettings' :: Maybe HlsManifestCompression
manifestCompression = Maybe HlsManifestCompression
forall a. Maybe a
Prelude.Nothing,
      $sel:destination:HlsGroupSettings' :: OutputLocationRef
destination = OutputLocationRef
pDestination_
    }

-- | Place segments in subdirectories.
hlsGroupSettings_directoryStructure :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsDirectoryStructure)
hlsGroupSettings_directoryStructure :: (Maybe HlsDirectoryStructure -> f (Maybe HlsDirectoryStructure))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_directoryStructure = (HlsGroupSettings -> Maybe HlsDirectoryStructure)
-> (HlsGroupSettings
    -> Maybe HlsDirectoryStructure -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsDirectoryStructure)
     (Maybe HlsDirectoryStructure)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsDirectoryStructure
directoryStructure :: Maybe HlsDirectoryStructure
$sel:directoryStructure:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsDirectoryStructure
directoryStructure} -> Maybe HlsDirectoryStructure
directoryStructure) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsDirectoryStructure
a -> HlsGroupSettings
s {$sel:directoryStructure:HlsGroupSettings' :: Maybe HlsDirectoryStructure
directoryStructure = Maybe HlsDirectoryStructure
a} :: HlsGroupSettings)

-- | Encrypts the segments with the given encryption scheme. Exclude this
-- parameter if no encryption is desired.
hlsGroupSettings_encryptionType :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsEncryptionType)
hlsGroupSettings_encryptionType :: (Maybe HlsEncryptionType -> f (Maybe HlsEncryptionType))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_encryptionType = (HlsGroupSettings -> Maybe HlsEncryptionType)
-> (HlsGroupSettings
    -> Maybe HlsEncryptionType -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsEncryptionType)
     (Maybe HlsEncryptionType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsEncryptionType
encryptionType :: Maybe HlsEncryptionType
$sel:encryptionType:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsEncryptionType
encryptionType} -> Maybe HlsEncryptionType
encryptionType) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsEncryptionType
a -> HlsGroupSettings
s {$sel:encryptionType:HlsGroupSettings' :: Maybe HlsEncryptionType
encryptionType = Maybe HlsEncryptionType
a} :: HlsGroupSettings)

-- | Timed Metadata interval in seconds.
hlsGroupSettings_timedMetadataId3Period :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_timedMetadataId3Period :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_timedMetadataId3Period = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
timedMetadataId3Period :: Maybe Natural
$sel:timedMetadataId3Period:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
timedMetadataId3Period} -> Maybe Natural
timedMetadataId3Period) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:timedMetadataId3Period:HlsGroupSettings' :: Maybe Natural
timedMetadataId3Period = Maybe Natural
a} :: HlsGroupSettings)

-- | For use with encryptionType. The IV (Initialization Vector) is a 128-bit
-- number used in conjunction with the key for encrypting blocks. If set to
-- \"include\", IV is listed in the manifest, otherwise the IV is not in
-- the manifest.
hlsGroupSettings_ivInManifest :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsIvInManifest)
hlsGroupSettings_ivInManifest :: (Maybe HlsIvInManifest -> f (Maybe HlsIvInManifest))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_ivInManifest = (HlsGroupSettings -> Maybe HlsIvInManifest)
-> (HlsGroupSettings -> Maybe HlsIvInManifest -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsIvInManifest)
     (Maybe HlsIvInManifest)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsIvInManifest
ivInManifest :: Maybe HlsIvInManifest
$sel:ivInManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIvInManifest
ivInManifest} -> Maybe HlsIvInManifest
ivInManifest) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsIvInManifest
a -> HlsGroupSettings
s {$sel:ivInManifest:HlsGroupSettings' :: Maybe HlsIvInManifest
ivInManifest = Maybe HlsIvInManifest
a} :: HlsGroupSettings)

-- | Specifies whether to insert EXT-X-DISCONTINUITY tags in the HLS child
-- manifests for this output group. Typically, choose Insert because these
-- tags are required in the manifest (according to the HLS specification)
-- and serve an important purpose. Choose Never Insert only if the
-- downstream system is doing real-time failover (without using the
-- MediaLive automatic failover feature) and only if that downstream system
-- has advised you to exclude the tags.
hlsGroupSettings_discontinuityTags :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsDiscontinuityTags)
hlsGroupSettings_discontinuityTags :: (Maybe HlsDiscontinuityTags -> f (Maybe HlsDiscontinuityTags))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_discontinuityTags = (HlsGroupSettings -> Maybe HlsDiscontinuityTags)
-> (HlsGroupSettings
    -> Maybe HlsDiscontinuityTags -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsDiscontinuityTags)
     (Maybe HlsDiscontinuityTags)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsDiscontinuityTags
discontinuityTags :: Maybe HlsDiscontinuityTags
$sel:discontinuityTags:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsDiscontinuityTags
discontinuityTags} -> Maybe HlsDiscontinuityTags
discontinuityTags) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsDiscontinuityTags
a -> HlsGroupSettings
s {$sel:discontinuityTags:HlsGroupSettings' :: Maybe HlsDiscontinuityTags
discontinuityTags = Maybe HlsDiscontinuityTags
a} :: HlsGroupSettings)

-- | SEGMENTED_FILES: Emit the program as segments - multiple .ts media
-- files. SINGLE_FILE: Applies only if Mode field is VOD. Emit the program
-- as a single .ts media file. The media manifest includes #EXT-X-BYTERANGE
-- tags to index segments for playback. A typical use for this value is
-- when sending the output to AWS Elemental MediaConvert, which can accept
-- only a single media file. Playback while the channel is running is not
-- guaranteed due to HTTP server caching.
hlsGroupSettings_tsFileMode :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsTsFileMode)
hlsGroupSettings_tsFileMode :: (Maybe HlsTsFileMode -> f (Maybe HlsTsFileMode))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_tsFileMode = (HlsGroupSettings -> Maybe HlsTsFileMode)
-> (HlsGroupSettings -> Maybe HlsTsFileMode -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsTsFileMode)
     (Maybe HlsTsFileMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsTsFileMode
tsFileMode :: Maybe HlsTsFileMode
$sel:tsFileMode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsTsFileMode
tsFileMode} -> Maybe HlsTsFileMode
tsFileMode) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsTsFileMode
a -> HlsGroupSettings
s {$sel:tsFileMode:HlsGroupSettings' :: Maybe HlsTsFileMode
tsFileMode = Maybe HlsTsFileMode
a} :: HlsGroupSettings)

-- | When set, minimumSegmentLength is enforced by looking ahead and back
-- within the specified range for a nearby avail and extending the segment
-- size if needed.
hlsGroupSettings_minSegmentLength :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_minSegmentLength :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_minSegmentLength = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
minSegmentLength :: Maybe Natural
$sel:minSegmentLength:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
minSegmentLength} -> Maybe Natural
minSegmentLength) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:minSegmentLength:HlsGroupSettings' :: Maybe Natural
minSegmentLength = Maybe Natural
a} :: HlsGroupSettings)

-- | DISABLED: Do not create an I-frame-only manifest, but do create the
-- master and media manifests (according to the Output Selection field).
-- STANDARD: Create an I-frame-only manifest for each output that contains
-- video, as well as the other manifests (according to the Output Selection
-- field). The I-frame manifest contains a #EXT-X-I-FRAMES-ONLY tag to
-- indicate it is I-frame only, and one or more #EXT-X-BYTERANGE entries
-- identifying the I-frame position. For example,
-- #EXT-X-BYTERANGE:160364\@1461888\"
hlsGroupSettings_iFrameOnlyPlaylists :: Lens.Lens' HlsGroupSettings (Prelude.Maybe IFrameOnlyPlaylistType)
hlsGroupSettings_iFrameOnlyPlaylists :: (Maybe IFrameOnlyPlaylistType -> f (Maybe IFrameOnlyPlaylistType))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_iFrameOnlyPlaylists = (HlsGroupSettings -> Maybe IFrameOnlyPlaylistType)
-> (HlsGroupSettings
    -> Maybe IFrameOnlyPlaylistType -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe IFrameOnlyPlaylistType)
     (Maybe IFrameOnlyPlaylistType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists :: Maybe IFrameOnlyPlaylistType
$sel:iFrameOnlyPlaylists:HlsGroupSettings' :: HlsGroupSettings -> Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists} -> Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe IFrameOnlyPlaylistType
a -> HlsGroupSettings
s {$sel:iFrameOnlyPlaylists:HlsGroupSettings' :: Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists = Maybe IFrameOnlyPlaylistType
a} :: HlsGroupSettings)

-- | Includes or excludes EXT-X-PROGRAM-DATE-TIME tag in .m3u8 manifest
-- files. The value is calculated as follows: either the program date and
-- time are initialized using the input timecode source, or the time is
-- initialized using the input timecode source and the date is initialized
-- using the timestampOffset.
hlsGroupSettings_programDateTime :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsProgramDateTime)
hlsGroupSettings_programDateTime :: (Maybe HlsProgramDateTime -> f (Maybe HlsProgramDateTime))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_programDateTime = (HlsGroupSettings -> Maybe HlsProgramDateTime)
-> (HlsGroupSettings
    -> Maybe HlsProgramDateTime -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsProgramDateTime)
     (Maybe HlsProgramDateTime)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsProgramDateTime
programDateTime :: Maybe HlsProgramDateTime
$sel:programDateTime:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsProgramDateTime
programDateTime} -> Maybe HlsProgramDateTime
programDateTime) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsProgramDateTime
a -> HlsGroupSettings
s {$sel:programDateTime:HlsGroupSettings' :: Maybe HlsProgramDateTime
programDateTime = Maybe HlsProgramDateTime
a} :: HlsGroupSettings)

-- | Applies only if Mode field is LIVE. Specifies the maximum number of
-- segments in the media manifest file. After this maximum, older segments
-- are removed from the media manifest. This number must be smaller than
-- the number in the Keep Segments field.
hlsGroupSettings_indexNSegments :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_indexNSegments :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_indexNSegments = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
indexNSegments :: Maybe Natural
$sel:indexNSegments:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
indexNSegments} -> Maybe Natural
indexNSegments) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:indexNSegments:HlsGroupSettings' :: Maybe Natural
indexNSegments = Maybe Natural
a} :: HlsGroupSettings)

-- | Period of insertion of EXT-X-PROGRAM-DATE-TIME entry, in seconds.
hlsGroupSettings_programDateTimePeriod :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_programDateTimePeriod :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_programDateTimePeriod = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
programDateTimePeriod :: Maybe Natural
$sel:programDateTimePeriod:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
programDateTimePeriod} -> Maybe Natural
programDateTimePeriod) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:programDateTimePeriod:HlsGroupSettings' :: Maybe Natural
programDateTimePeriod = Maybe Natural
a} :: HlsGroupSettings)

-- | Specification to use (RFC-6381 or the default RFC-4281) during m3u8
-- playlist generation.
hlsGroupSettings_codecSpecification :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsCodecSpecification)
hlsGroupSettings_codecSpecification :: (Maybe HlsCodecSpecification -> f (Maybe HlsCodecSpecification))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_codecSpecification = (HlsGroupSettings -> Maybe HlsCodecSpecification)
-> (HlsGroupSettings
    -> Maybe HlsCodecSpecification -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsCodecSpecification)
     (Maybe HlsCodecSpecification)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsCodecSpecification
codecSpecification :: Maybe HlsCodecSpecification
$sel:codecSpecification:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCodecSpecification
codecSpecification} -> Maybe HlsCodecSpecification
codecSpecification) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsCodecSpecification
a -> HlsGroupSettings
s {$sel:codecSpecification:HlsGroupSettings' :: Maybe HlsCodecSpecification
codecSpecification = Maybe HlsCodecSpecification
a} :: HlsGroupSettings)

-- | Parameters that control interactions with the CDN.
hlsGroupSettings_hlsCdnSettings :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsCdnSettings)
hlsGroupSettings_hlsCdnSettings :: (Maybe HlsCdnSettings -> f (Maybe HlsCdnSettings))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_hlsCdnSettings = (HlsGroupSettings -> Maybe HlsCdnSettings)
-> (HlsGroupSettings -> Maybe HlsCdnSettings -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsCdnSettings)
     (Maybe HlsCdnSettings)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsCdnSettings
hlsCdnSettings :: Maybe HlsCdnSettings
$sel:hlsCdnSettings:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCdnSettings
hlsCdnSettings} -> Maybe HlsCdnSettings
hlsCdnSettings) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsCdnSettings
a -> HlsGroupSettings
s {$sel:hlsCdnSettings:HlsGroupSettings' :: Maybe HlsCdnSettings
hlsCdnSettings = Maybe HlsCdnSettings
a} :: HlsGroupSettings)

-- | Mapping of up to 4 caption channels to caption languages. Is only
-- meaningful if captionLanguageSetting is set to \"insert\".
hlsGroupSettings_captionLanguageMappings :: Lens.Lens' HlsGroupSettings (Prelude.Maybe [CaptionLanguageMapping])
hlsGroupSettings_captionLanguageMappings :: (Maybe [CaptionLanguageMapping]
 -> f (Maybe [CaptionLanguageMapping]))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_captionLanguageMappings = (HlsGroupSettings -> Maybe [CaptionLanguageMapping])
-> (HlsGroupSettings
    -> Maybe [CaptionLanguageMapping] -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe [CaptionLanguageMapping])
     (Maybe [CaptionLanguageMapping])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe [CaptionLanguageMapping]
captionLanguageMappings :: Maybe [CaptionLanguageMapping]
$sel:captionLanguageMappings:HlsGroupSettings' :: HlsGroupSettings -> Maybe [CaptionLanguageMapping]
captionLanguageMappings} -> Maybe [CaptionLanguageMapping]
captionLanguageMappings) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe [CaptionLanguageMapping]
a -> HlsGroupSettings
s {$sel:captionLanguageMappings:HlsGroupSettings' :: Maybe [CaptionLanguageMapping]
captionLanguageMappings = Maybe [CaptionLanguageMapping]
a} :: HlsGroupSettings) ((Maybe [CaptionLanguageMapping]
  -> f (Maybe [CaptionLanguageMapping]))
 -> HlsGroupSettings -> f HlsGroupSettings)
-> ((Maybe [CaptionLanguageMapping]
     -> f (Maybe [CaptionLanguageMapping]))
    -> Maybe [CaptionLanguageMapping]
    -> f (Maybe [CaptionLanguageMapping]))
-> (Maybe [CaptionLanguageMapping]
    -> f (Maybe [CaptionLanguageMapping]))
-> HlsGroupSettings
-> f HlsGroupSettings
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
-> Iso
     (Maybe [CaptionLanguageMapping])
     (Maybe [CaptionLanguageMapping])
     (Maybe [CaptionLanguageMapping])
     (Maybe [CaptionLanguageMapping])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
  [CaptionLanguageMapping]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Parameter that control output group behavior on input loss.
hlsGroupSettings_inputLossAction :: Lens.Lens' HlsGroupSettings (Prelude.Maybe InputLossActionForHlsOut)
hlsGroupSettings_inputLossAction :: (Maybe InputLossActionForHlsOut
 -> f (Maybe InputLossActionForHlsOut))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_inputLossAction = (HlsGroupSettings -> Maybe InputLossActionForHlsOut)
-> (HlsGroupSettings
    -> Maybe InputLossActionForHlsOut -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe InputLossActionForHlsOut)
     (Maybe InputLossActionForHlsOut)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe InputLossActionForHlsOut
inputLossAction :: Maybe InputLossActionForHlsOut
$sel:inputLossAction:HlsGroupSettings' :: HlsGroupSettings -> Maybe InputLossActionForHlsOut
inputLossAction} -> Maybe InputLossActionForHlsOut
inputLossAction) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe InputLossActionForHlsOut
a -> HlsGroupSettings
s {$sel:inputLossAction:HlsGroupSettings' :: Maybe InputLossActionForHlsOut
inputLossAction = Maybe InputLossActionForHlsOut
a} :: HlsGroupSettings)

-- | If \"vod\", all segments are indexed and kept permanently in the
-- destination and manifest. If \"live\", only the number segments
-- specified in keepSegments and indexNSegments are kept; newer segments
-- replace older segments, which may prevent players from rewinding all the
-- way to the beginning of the event. VOD mode uses HLS EXT-X-PLAYLIST-TYPE
-- of EVENT while the channel is running, converting it to a \"VOD\" type
-- manifest on completion of the stream.
hlsGroupSettings_mode :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsMode)
hlsGroupSettings_mode :: (Maybe HlsMode -> f (Maybe HlsMode))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_mode = (HlsGroupSettings -> Maybe HlsMode)
-> (HlsGroupSettings -> Maybe HlsMode -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe HlsMode) (Maybe HlsMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsMode
mode :: Maybe HlsMode
$sel:mode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsMode
mode} -> Maybe HlsMode
mode) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsMode
a -> HlsGroupSettings
s {$sel:mode:HlsGroupSettings' :: Maybe HlsMode
mode = Maybe HlsMode
a} :: HlsGroupSettings)

-- | The key provider settings.
hlsGroupSettings_keyProviderSettings :: Lens.Lens' HlsGroupSettings (Prelude.Maybe KeyProviderSettings)
hlsGroupSettings_keyProviderSettings :: (Maybe KeyProviderSettings -> f (Maybe KeyProviderSettings))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_keyProviderSettings = (HlsGroupSettings -> Maybe KeyProviderSettings)
-> (HlsGroupSettings
    -> Maybe KeyProviderSettings -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe KeyProviderSettings)
     (Maybe KeyProviderSettings)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe KeyProviderSettings
keyProviderSettings :: Maybe KeyProviderSettings
$sel:keyProviderSettings:HlsGroupSettings' :: HlsGroupSettings -> Maybe KeyProviderSettings
keyProviderSettings} -> Maybe KeyProviderSettings
keyProviderSettings) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe KeyProviderSettings
a -> HlsGroupSettings
s {$sel:keyProviderSettings:HlsGroupSettings' :: Maybe KeyProviderSettings
keyProviderSettings = Maybe KeyProviderSettings
a} :: HlsGroupSettings)

-- | Specifies whether to include the final (incomplete) segment in the media
-- output when the pipeline stops producing output because of a channel
-- stop, a channel pause or a loss of input to the pipeline. Auto means
-- that MediaLive decides whether to include the final segment, depending
-- on the channel class and the types of output groups. Suppress means to
-- never include the incomplete segment. We recommend you choose Auto and
-- let MediaLive control the behavior.
hlsGroupSettings_incompleteSegmentBehavior :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsIncompleteSegmentBehavior)
hlsGroupSettings_incompleteSegmentBehavior :: (Maybe HlsIncompleteSegmentBehavior
 -> f (Maybe HlsIncompleteSegmentBehavior))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_incompleteSegmentBehavior = (HlsGroupSettings -> Maybe HlsIncompleteSegmentBehavior)
-> (HlsGroupSettings
    -> Maybe HlsIncompleteSegmentBehavior -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsIncompleteSegmentBehavior)
     (Maybe HlsIncompleteSegmentBehavior)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior :: Maybe HlsIncompleteSegmentBehavior
$sel:incompleteSegmentBehavior:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior} -> Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsIncompleteSegmentBehavior
a -> HlsGroupSettings
s {$sel:incompleteSegmentBehavior:HlsGroupSettings' :: Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior = Maybe HlsIncompleteSegmentBehavior
a} :: HlsGroupSettings)

-- | For use with encryptionType. This is a 128-bit, 16-byte hex value
-- represented by a 32-character text string. If ivSource is set to
-- \"explicit\" then this parameter is required and is used as the IV for
-- encryption.
hlsGroupSettings_constantIv :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_constantIv :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_constantIv = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
constantIv :: Maybe Text
$sel:constantIv:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
constantIv} -> Maybe Text
constantIv) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:constantIv:HlsGroupSettings' :: Maybe Text
constantIv = Maybe Text
a} :: HlsGroupSettings)

-- | A partial URI prefix that will be prepended to each output in the media
-- .m3u8 file. Can be used if base manifest is delivered from a different
-- URL than the main .m3u8 file.
hlsGroupSettings_baseUrlManifest :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_baseUrlManifest :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_baseUrlManifest = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
baseUrlManifest :: Maybe Text
$sel:baseUrlManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
baseUrlManifest} -> Maybe Text
baseUrlManifest) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:baseUrlManifest:HlsGroupSettings' :: Maybe Text
baseUrlManifest = Maybe Text
a} :: HlsGroupSettings)

-- | Choose one or more ad marker types to pass SCTE35 signals through to
-- this group of Apple HLS outputs.
hlsGroupSettings_adMarkers :: Lens.Lens' HlsGroupSettings (Prelude.Maybe [HlsAdMarkers])
hlsGroupSettings_adMarkers :: (Maybe [HlsAdMarkers] -> f (Maybe [HlsAdMarkers]))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_adMarkers = (HlsGroupSettings -> Maybe [HlsAdMarkers])
-> (HlsGroupSettings -> Maybe [HlsAdMarkers] -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe [HlsAdMarkers])
     (Maybe [HlsAdMarkers])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe [HlsAdMarkers]
adMarkers :: Maybe [HlsAdMarkers]
$sel:adMarkers:HlsGroupSettings' :: HlsGroupSettings -> Maybe [HlsAdMarkers]
adMarkers} -> Maybe [HlsAdMarkers]
adMarkers) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe [HlsAdMarkers]
a -> HlsGroupSettings
s {$sel:adMarkers:HlsGroupSettings' :: Maybe [HlsAdMarkers]
adMarkers = Maybe [HlsAdMarkers]
a} :: HlsGroupSettings) ((Maybe [HlsAdMarkers] -> f (Maybe [HlsAdMarkers]))
 -> HlsGroupSettings -> f HlsGroupSettings)
-> ((Maybe [HlsAdMarkers] -> f (Maybe [HlsAdMarkers]))
    -> Maybe [HlsAdMarkers] -> f (Maybe [HlsAdMarkers]))
-> (Maybe [HlsAdMarkers] -> f (Maybe [HlsAdMarkers]))
-> HlsGroupSettings
-> f HlsGroupSettings
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [HlsAdMarkers] [HlsAdMarkers] [HlsAdMarkers] [HlsAdMarkers]
-> Iso
     (Maybe [HlsAdMarkers])
     (Maybe [HlsAdMarkers])
     (Maybe [HlsAdMarkers])
     (Maybe [HlsAdMarkers])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [HlsAdMarkers] [HlsAdMarkers] [HlsAdMarkers] [HlsAdMarkers]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The value specifies how the key is represented in the resource
-- identified by the URI. If parameter is absent, an implicit value of
-- \"identity\" is used. A reverse DNS string can also be given.
hlsGroupSettings_keyFormat :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_keyFormat :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_keyFormat = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
keyFormat :: Maybe Text
$sel:keyFormat:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
keyFormat} -> Maybe Text
keyFormat) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:keyFormat:HlsGroupSettings' :: Maybe Text
keyFormat = Maybe Text
a} :: HlsGroupSettings)

-- | Length of MPEG-2 Transport Stream segments to create (in seconds). Note
-- that segments will end on the next keyframe after this number of
-- seconds, so actual segment length may be longer.
hlsGroupSettings_segmentLength :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_segmentLength :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_segmentLength = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
segmentLength :: Maybe Natural
$sel:segmentLength:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
segmentLength} -> Maybe Natural
segmentLength) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:segmentLength:HlsGroupSettings' :: Maybe Natural
segmentLength = Maybe Natural
a} :: HlsGroupSettings)

-- | State of HLS ID3 Segment Tagging
hlsGroupSettings_hlsId3SegmentTagging :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsId3SegmentTaggingState)
hlsGroupSettings_hlsId3SegmentTagging :: (Maybe HlsId3SegmentTaggingState
 -> f (Maybe HlsId3SegmentTaggingState))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_hlsId3SegmentTagging = (HlsGroupSettings -> Maybe HlsId3SegmentTaggingState)
-> (HlsGroupSettings
    -> Maybe HlsId3SegmentTaggingState -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsId3SegmentTaggingState)
     (Maybe HlsId3SegmentTaggingState)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging :: Maybe HlsId3SegmentTaggingState
$sel:hlsId3SegmentTagging:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging} -> Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsId3SegmentTaggingState
a -> HlsGroupSettings
s {$sel:hlsId3SegmentTagging:HlsGroupSettings' :: Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging = Maybe HlsId3SegmentTaggingState
a} :: HlsGroupSettings)

-- | Indicates ID3 frame that has the timecode.
hlsGroupSettings_timedMetadataId3Frame :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsTimedMetadataId3Frame)
hlsGroupSettings_timedMetadataId3Frame :: (Maybe HlsTimedMetadataId3Frame
 -> f (Maybe HlsTimedMetadataId3Frame))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_timedMetadataId3Frame = (HlsGroupSettings -> Maybe HlsTimedMetadataId3Frame)
-> (HlsGroupSettings
    -> Maybe HlsTimedMetadataId3Frame -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsTimedMetadataId3Frame)
     (Maybe HlsTimedMetadataId3Frame)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame :: Maybe HlsTimedMetadataId3Frame
$sel:timedMetadataId3Frame:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame} -> Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsTimedMetadataId3Frame
a -> HlsGroupSettings
s {$sel:timedMetadataId3Frame:HlsGroupSettings' :: Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame = Maybe HlsTimedMetadataId3Frame
a} :: HlsGroupSettings)

-- | A partial URI prefix that will be prepended to each output in the media
-- .m3u8 file. Can be used if base manifest is delivered from a different
-- URL than the main .m3u8 file.
hlsGroupSettings_baseUrlContent :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_baseUrlContent :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_baseUrlContent = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
baseUrlContent :: Maybe Text
$sel:baseUrlContent:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
baseUrlContent} -> Maybe Text
baseUrlContent) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:baseUrlContent:HlsGroupSettings' :: Maybe Text
baseUrlContent = Maybe Text
a} :: HlsGroupSettings)

-- | MANIFESTS_AND_SEGMENTS: Generates manifests (master manifest, if
-- applicable, and media manifests) for this output group.
-- VARIANT_MANIFESTS_AND_SEGMENTS: Generates media manifests for this
-- output group, but not a master manifest. SEGMENTS_ONLY: Does not
-- generate any manifests for this output group.
hlsGroupSettings_outputSelection :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsOutputSelection)
hlsGroupSettings_outputSelection :: (Maybe HlsOutputSelection -> f (Maybe HlsOutputSelection))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_outputSelection = (HlsGroupSettings -> Maybe HlsOutputSelection)
-> (HlsGroupSettings
    -> Maybe HlsOutputSelection -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsOutputSelection)
     (Maybe HlsOutputSelection)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsOutputSelection
outputSelection :: Maybe HlsOutputSelection
$sel:outputSelection:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsOutputSelection
outputSelection} -> Maybe HlsOutputSelection
outputSelection) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsOutputSelection
a -> HlsGroupSettings
s {$sel:outputSelection:HlsGroupSettings' :: Maybe HlsOutputSelection
outputSelection = Maybe HlsOutputSelection
a} :: HlsGroupSettings)

-- | Applies only to 608 Embedded output captions. insert: Include
-- CLOSED-CAPTIONS lines in the manifest. Specify at least one language in
-- the CC1 Language Code field. One CLOSED-CAPTION line is added for each
-- Language Code you specify. Make sure to specify the languages in the
-- order in which they appear in the original source (if the source is
-- embedded format) or the order of the caption selectors (if the source is
-- other than embedded). Otherwise, languages in the manifest will not
-- match up properly with the output captions. none: Include
-- CLOSED-CAPTIONS=NONE line in the manifest. omit: Omit any
-- CLOSED-CAPTIONS line from the manifest.
hlsGroupSettings_captionLanguageSetting :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsCaptionLanguageSetting)
hlsGroupSettings_captionLanguageSetting :: (Maybe HlsCaptionLanguageSetting
 -> f (Maybe HlsCaptionLanguageSetting))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_captionLanguageSetting = (HlsGroupSettings -> Maybe HlsCaptionLanguageSetting)
-> (HlsGroupSettings
    -> Maybe HlsCaptionLanguageSetting -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsCaptionLanguageSetting)
     (Maybe HlsCaptionLanguageSetting)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsCaptionLanguageSetting
captionLanguageSetting :: Maybe HlsCaptionLanguageSetting
$sel:captionLanguageSetting:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCaptionLanguageSetting
captionLanguageSetting} -> Maybe HlsCaptionLanguageSetting
captionLanguageSetting) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsCaptionLanguageSetting
a -> HlsGroupSettings
s {$sel:captionLanguageSetting:HlsGroupSettings' :: Maybe HlsCaptionLanguageSetting
captionLanguageSetting = Maybe HlsCaptionLanguageSetting
a} :: HlsGroupSettings)

-- | Number of segments to write to a subdirectory before starting a new one.
-- directoryStructure must be subdirectoryPerStream for this setting to
-- have an effect.
hlsGroupSettings_segmentsPerSubdirectory :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_segmentsPerSubdirectory :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_segmentsPerSubdirectory = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
segmentsPerSubdirectory :: Maybe Natural
$sel:segmentsPerSubdirectory:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
segmentsPerSubdirectory} -> Maybe Natural
segmentsPerSubdirectory) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:segmentsPerSubdirectory:HlsGroupSettings' :: Maybe Natural
segmentsPerSubdirectory = Maybe Natural
a} :: HlsGroupSettings)

-- | Indicates whether the output manifest should use floating point or
-- integer values for segment duration.
hlsGroupSettings_manifestDurationFormat :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsManifestDurationFormat)
hlsGroupSettings_manifestDurationFormat :: (Maybe HlsManifestDurationFormat
 -> f (Maybe HlsManifestDurationFormat))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_manifestDurationFormat = (HlsGroupSettings -> Maybe HlsManifestDurationFormat)
-> (HlsGroupSettings
    -> Maybe HlsManifestDurationFormat -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsManifestDurationFormat)
     (Maybe HlsManifestDurationFormat)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsManifestDurationFormat
manifestDurationFormat :: Maybe HlsManifestDurationFormat
$sel:manifestDurationFormat:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsManifestDurationFormat
manifestDurationFormat} -> Maybe HlsManifestDurationFormat
manifestDurationFormat) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsManifestDurationFormat
a -> HlsGroupSettings
s {$sel:manifestDurationFormat:HlsGroupSettings' :: Maybe HlsManifestDurationFormat
manifestDurationFormat = Maybe HlsManifestDurationFormat
a} :: HlsGroupSettings)

-- | For use with encryptionType. The IV (Initialization Vector) is a 128-bit
-- number used in conjunction with the key for encrypting blocks. If this
-- setting is \"followsSegmentNumber\", it will cause the IV to change
-- every segment (to match the segment number). If this is set to
-- \"explicit\", you must enter a constantIv value.
hlsGroupSettings_ivSource :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsIvSource)
hlsGroupSettings_ivSource :: (Maybe HlsIvSource -> f (Maybe HlsIvSource))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_ivSource = (HlsGroupSettings -> Maybe HlsIvSource)
-> (HlsGroupSettings -> Maybe HlsIvSource -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsIvSource)
     (Maybe HlsIvSource)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsIvSource
ivSource :: Maybe HlsIvSource
$sel:ivSource:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIvSource
ivSource} -> Maybe HlsIvSource
ivSource) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsIvSource
a -> HlsGroupSettings
s {$sel:ivSource:HlsGroupSettings' :: Maybe HlsIvSource
ivSource = Maybe HlsIvSource
a} :: HlsGroupSettings)

-- | useInputSegmentation has been deprecated. The configured segment size is
-- always used.
hlsGroupSettings_segmentationMode :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsSegmentationMode)
hlsGroupSettings_segmentationMode :: (Maybe HlsSegmentationMode -> f (Maybe HlsSegmentationMode))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_segmentationMode = (HlsGroupSettings -> Maybe HlsSegmentationMode)
-> (HlsGroupSettings
    -> Maybe HlsSegmentationMode -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsSegmentationMode)
     (Maybe HlsSegmentationMode)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsSegmentationMode
segmentationMode :: Maybe HlsSegmentationMode
$sel:segmentationMode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsSegmentationMode
segmentationMode} -> Maybe HlsSegmentationMode
segmentationMode) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsSegmentationMode
a -> HlsGroupSettings
s {$sel:segmentationMode:HlsGroupSettings' :: Maybe HlsSegmentationMode
segmentationMode = Maybe HlsSegmentationMode
a} :: HlsGroupSettings)

-- | Either a single positive integer version value or a slash delimited list
-- of version values (1\/2\/3).
hlsGroupSettings_keyFormatVersions :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_keyFormatVersions :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_keyFormatVersions = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
keyFormatVersions :: Maybe Text
$sel:keyFormatVersions:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
keyFormatVersions} -> Maybe Text
keyFormatVersions) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:keyFormatVersions:HlsGroupSettings' :: Maybe Text
keyFormatVersions = Maybe Text
a} :: HlsGroupSettings)

-- | When set to \"disabled\", sets the #EXT-X-ALLOW-CACHE:no tag in the
-- manifest, which prevents clients from saving media segments for later
-- replay.
hlsGroupSettings_clientCache :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsClientCache)
hlsGroupSettings_clientCache :: (Maybe HlsClientCache -> f (Maybe HlsClientCache))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_clientCache = (HlsGroupSettings -> Maybe HlsClientCache)
-> (HlsGroupSettings -> Maybe HlsClientCache -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsClientCache)
     (Maybe HlsClientCache)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsClientCache
clientCache :: Maybe HlsClientCache
$sel:clientCache:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsClientCache
clientCache} -> Maybe HlsClientCache
clientCache) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsClientCache
a -> HlsGroupSettings
s {$sel:clientCache:HlsGroupSettings' :: Maybe HlsClientCache
clientCache = Maybe HlsClientCache
a} :: HlsGroupSettings)

-- | Provides an extra millisecond delta offset to fine tune the timestamps.
hlsGroupSettings_timestampDeltaMilliseconds :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_timestampDeltaMilliseconds :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_timestampDeltaMilliseconds = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
timestampDeltaMilliseconds :: Maybe Natural
$sel:timestampDeltaMilliseconds:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
timestampDeltaMilliseconds} -> Maybe Natural
timestampDeltaMilliseconds) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:timestampDeltaMilliseconds:HlsGroupSettings' :: Maybe Natural
timestampDeltaMilliseconds = Maybe Natural
a} :: HlsGroupSettings)

-- | Optional. One value per output group. Complete this field only if you
-- are completing Base URL manifest A, and the downstream system has
-- notified you that the child manifest files for pipeline 1 of all outputs
-- are in a location different from the child manifest files for pipeline
-- 0.
hlsGroupSettings_baseUrlManifest1 :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_baseUrlManifest1 :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_baseUrlManifest1 = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
baseUrlManifest1 :: Maybe Text
$sel:baseUrlManifest1:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
baseUrlManifest1} -> Maybe Text
baseUrlManifest1) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:baseUrlManifest1:HlsGroupSettings' :: Maybe Text
baseUrlManifest1 = Maybe Text
a} :: HlsGroupSettings)

-- | ENABLED: The master manifest (.m3u8 file) for each pipeline includes
-- information about both pipelines: first its own media files, then the
-- media files of the other pipeline. This feature allows playout device
-- that support stale manifest detection to switch from one manifest to the
-- other, when the current manifest seems to be stale. There are still two
-- destinations and two master manifests, but both master manifests
-- reference the media files from both pipelines. DISABLED: The master
-- manifest (.m3u8 file) for each pipeline includes information about its
-- own pipeline only. For an HLS output group with MediaPackage as the
-- destination, the DISABLED behavior is always followed. MediaPackage
-- regenerates the manifests it serves to players so a redundant manifest
-- from MediaLive is irrelevant.
hlsGroupSettings_redundantManifest :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsRedundantManifest)
hlsGroupSettings_redundantManifest :: (Maybe HlsRedundantManifest -> f (Maybe HlsRedundantManifest))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_redundantManifest = (HlsGroupSettings -> Maybe HlsRedundantManifest)
-> (HlsGroupSettings
    -> Maybe HlsRedundantManifest -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsRedundantManifest)
     (Maybe HlsRedundantManifest)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsRedundantManifest
redundantManifest :: Maybe HlsRedundantManifest
$sel:redundantManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsRedundantManifest
redundantManifest} -> Maybe HlsRedundantManifest
redundantManifest) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsRedundantManifest
a -> HlsGroupSettings
s {$sel:redundantManifest:HlsGroupSettings' :: Maybe HlsRedundantManifest
redundantManifest = Maybe HlsRedundantManifest
a} :: HlsGroupSettings)

-- | Include or exclude RESOLUTION attribute for video in EXT-X-STREAM-INF
-- tag of variant manifest.
hlsGroupSettings_streamInfResolution :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsStreamInfResolution)
hlsGroupSettings_streamInfResolution :: (Maybe HlsStreamInfResolution -> f (Maybe HlsStreamInfResolution))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_streamInfResolution = (HlsGroupSettings -> Maybe HlsStreamInfResolution)
-> (HlsGroupSettings
    -> Maybe HlsStreamInfResolution -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsStreamInfResolution)
     (Maybe HlsStreamInfResolution)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsStreamInfResolution
streamInfResolution :: Maybe HlsStreamInfResolution
$sel:streamInfResolution:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsStreamInfResolution
streamInfResolution} -> Maybe HlsStreamInfResolution
streamInfResolution) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsStreamInfResolution
a -> HlsGroupSettings
s {$sel:streamInfResolution:HlsGroupSettings' :: Maybe HlsStreamInfResolution
streamInfResolution = Maybe HlsStreamInfResolution
a} :: HlsGroupSettings)

-- | Applies only if Mode field is LIVE. Specifies the number of media
-- segments to retain in the destination directory. This number should be
-- bigger than indexNSegments (Num segments). We recommend (value = (2 x
-- indexNsegments) + 1). If this \"keep segments\" number is too low, the
-- following might happen: the player is still reading a media manifest
-- file that lists this segment, but that segment has been removed from the
-- destination directory (as directed by indexNSegments). This situation
-- would result in a 404 HTTP error on the player.
hlsGroupSettings_keepSegments :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Natural)
hlsGroupSettings_keepSegments :: (Maybe Natural -> f (Maybe Natural))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_keepSegments = (HlsGroupSettings -> Maybe Natural)
-> (HlsGroupSettings -> Maybe Natural -> HlsGroupSettings)
-> Lens
     HlsGroupSettings HlsGroupSettings (Maybe Natural) (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Natural
keepSegments :: Maybe Natural
$sel:keepSegments:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
keepSegments} -> Maybe Natural
keepSegments) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Natural
a -> HlsGroupSettings
s {$sel:keepSegments:HlsGroupSettings' :: Maybe Natural
keepSegments = Maybe Natural
a} :: HlsGroupSettings)

-- | Optional. One value per output group. This field is required only if you
-- are completing Base URL content A, and the downstream system has
-- notified you that the media files for pipeline 1 of all outputs are in a
-- location different from the media files for pipeline 0.
hlsGroupSettings_baseUrlContent1 :: Lens.Lens' HlsGroupSettings (Prelude.Maybe Prelude.Text)
hlsGroupSettings_baseUrlContent1 :: (Maybe Text -> f (Maybe Text))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_baseUrlContent1 = (HlsGroupSettings -> Maybe Text)
-> (HlsGroupSettings -> Maybe Text -> HlsGroupSettings)
-> Lens HlsGroupSettings HlsGroupSettings (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe Text
baseUrlContent1 :: Maybe Text
$sel:baseUrlContent1:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
baseUrlContent1} -> Maybe Text
baseUrlContent1) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe Text
a -> HlsGroupSettings
s {$sel:baseUrlContent1:HlsGroupSettings' :: Maybe Text
baseUrlContent1 = Maybe Text
a} :: HlsGroupSettings)

-- | When set to gzip, compresses HLS playlist.
hlsGroupSettings_manifestCompression :: Lens.Lens' HlsGroupSettings (Prelude.Maybe HlsManifestCompression)
hlsGroupSettings_manifestCompression :: (Maybe HlsManifestCompression -> f (Maybe HlsManifestCompression))
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_manifestCompression = (HlsGroupSettings -> Maybe HlsManifestCompression)
-> (HlsGroupSettings
    -> Maybe HlsManifestCompression -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     (Maybe HlsManifestCompression)
     (Maybe HlsManifestCompression)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {Maybe HlsManifestCompression
manifestCompression :: Maybe HlsManifestCompression
$sel:manifestCompression:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsManifestCompression
manifestCompression} -> Maybe HlsManifestCompression
manifestCompression) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} Maybe HlsManifestCompression
a -> HlsGroupSettings
s {$sel:manifestCompression:HlsGroupSettings' :: Maybe HlsManifestCompression
manifestCompression = Maybe HlsManifestCompression
a} :: HlsGroupSettings)

-- | A directory or HTTP destination for the HLS segments, manifest files,
-- and encryption keys (if enabled).
hlsGroupSettings_destination :: Lens.Lens' HlsGroupSettings OutputLocationRef
hlsGroupSettings_destination :: (OutputLocationRef -> f OutputLocationRef)
-> HlsGroupSettings -> f HlsGroupSettings
hlsGroupSettings_destination = (HlsGroupSettings -> OutputLocationRef)
-> (HlsGroupSettings -> OutputLocationRef -> HlsGroupSettings)
-> Lens
     HlsGroupSettings
     HlsGroupSettings
     OutputLocationRef
     OutputLocationRef
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\HlsGroupSettings' {OutputLocationRef
destination :: OutputLocationRef
$sel:destination:HlsGroupSettings' :: HlsGroupSettings -> OutputLocationRef
destination} -> OutputLocationRef
destination) (\s :: HlsGroupSettings
s@HlsGroupSettings' {} OutputLocationRef
a -> HlsGroupSettings
s {$sel:destination:HlsGroupSettings' :: OutputLocationRef
destination = OutputLocationRef
a} :: HlsGroupSettings)

instance Core.FromJSON HlsGroupSettings where
  parseJSON :: Value -> Parser HlsGroupSettings
parseJSON =
    String
-> (Object -> Parser HlsGroupSettings)
-> Value
-> Parser HlsGroupSettings
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"HlsGroupSettings"
      ( \Object
x ->
          Maybe HlsDirectoryStructure
-> Maybe HlsEncryptionType
-> Maybe Natural
-> Maybe HlsIvInManifest
-> Maybe HlsDiscontinuityTags
-> Maybe HlsTsFileMode
-> Maybe Natural
-> Maybe IFrameOnlyPlaylistType
-> Maybe HlsProgramDateTime
-> Maybe Natural
-> Maybe Natural
-> Maybe HlsCodecSpecification
-> Maybe HlsCdnSettings
-> Maybe [CaptionLanguageMapping]
-> Maybe InputLossActionForHlsOut
-> Maybe HlsMode
-> Maybe KeyProviderSettings
-> Maybe HlsIncompleteSegmentBehavior
-> Maybe Text
-> Maybe Text
-> Maybe [HlsAdMarkers]
-> Maybe Text
-> Maybe Natural
-> Maybe HlsId3SegmentTaggingState
-> Maybe HlsTimedMetadataId3Frame
-> Maybe Text
-> Maybe HlsOutputSelection
-> Maybe HlsCaptionLanguageSetting
-> Maybe Natural
-> Maybe HlsManifestDurationFormat
-> Maybe HlsIvSource
-> Maybe HlsSegmentationMode
-> Maybe Text
-> Maybe HlsClientCache
-> Maybe Natural
-> Maybe Text
-> Maybe HlsRedundantManifest
-> Maybe HlsStreamInfResolution
-> Maybe Natural
-> Maybe Text
-> Maybe HlsManifestCompression
-> OutputLocationRef
-> HlsGroupSettings
HlsGroupSettings'
            (Maybe HlsDirectoryStructure
 -> Maybe HlsEncryptionType
 -> Maybe Natural
 -> Maybe HlsIvInManifest
 -> Maybe HlsDiscontinuityTags
 -> Maybe HlsTsFileMode
 -> Maybe Natural
 -> Maybe IFrameOnlyPlaylistType
 -> Maybe HlsProgramDateTime
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe HlsCodecSpecification
 -> Maybe HlsCdnSettings
 -> Maybe [CaptionLanguageMapping]
 -> Maybe InputLossActionForHlsOut
 -> Maybe HlsMode
 -> Maybe KeyProviderSettings
 -> Maybe HlsIncompleteSegmentBehavior
 -> Maybe Text
 -> Maybe Text
 -> Maybe [HlsAdMarkers]
 -> Maybe Text
 -> Maybe Natural
 -> Maybe HlsId3SegmentTaggingState
 -> Maybe HlsTimedMetadataId3Frame
 -> Maybe Text
 -> Maybe HlsOutputSelection
 -> Maybe HlsCaptionLanguageSetting
 -> Maybe Natural
 -> Maybe HlsManifestDurationFormat
 -> Maybe HlsIvSource
 -> Maybe HlsSegmentationMode
 -> Maybe Text
 -> Maybe HlsClientCache
 -> Maybe Natural
 -> Maybe Text
 -> Maybe HlsRedundantManifest
 -> Maybe HlsStreamInfResolution
 -> Maybe Natural
 -> Maybe Text
 -> Maybe HlsManifestCompression
 -> OutputLocationRef
 -> HlsGroupSettings)
-> Parser (Maybe HlsDirectoryStructure)
-> Parser
     (Maybe HlsEncryptionType
      -> Maybe Natural
      -> Maybe HlsIvInManifest
      -> Maybe HlsDiscontinuityTags
      -> Maybe HlsTsFileMode
      -> Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe HlsDirectoryStructure)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"directoryStructure")
            Parser
  (Maybe HlsEncryptionType
   -> Maybe Natural
   -> Maybe HlsIvInManifest
   -> Maybe HlsDiscontinuityTags
   -> Maybe HlsTsFileMode
   -> Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsEncryptionType)
-> Parser
     (Maybe Natural
      -> Maybe HlsIvInManifest
      -> Maybe HlsDiscontinuityTags
      -> Maybe HlsTsFileMode
      -> Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsEncryptionType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"encryptionType")
            Parser
  (Maybe Natural
   -> Maybe HlsIvInManifest
   -> Maybe HlsDiscontinuityTags
   -> Maybe HlsTsFileMode
   -> Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe HlsIvInManifest
      -> Maybe HlsDiscontinuityTags
      -> Maybe HlsTsFileMode
      -> Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"timedMetadataId3Period")
            Parser
  (Maybe HlsIvInManifest
   -> Maybe HlsDiscontinuityTags
   -> Maybe HlsTsFileMode
   -> Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsIvInManifest)
-> Parser
     (Maybe HlsDiscontinuityTags
      -> Maybe HlsTsFileMode
      -> Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsIvInManifest)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ivInManifest")
            Parser
  (Maybe HlsDiscontinuityTags
   -> Maybe HlsTsFileMode
   -> Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsDiscontinuityTags)
-> Parser
     (Maybe HlsTsFileMode
      -> Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsDiscontinuityTags)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"discontinuityTags")
            Parser
  (Maybe HlsTsFileMode
   -> Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsTsFileMode)
-> Parser
     (Maybe Natural
      -> Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsTsFileMode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"tsFileMode")
            Parser
  (Maybe Natural
   -> Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe IFrameOnlyPlaylistType
      -> Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"minSegmentLength")
            Parser
  (Maybe IFrameOnlyPlaylistType
   -> Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe IFrameOnlyPlaylistType)
-> Parser
     (Maybe HlsProgramDateTime
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe IFrameOnlyPlaylistType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"iFrameOnlyPlaylists")
            Parser
  (Maybe HlsProgramDateTime
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsProgramDateTime)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsProgramDateTime)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"programDateTime")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"indexNSegments")
            Parser
  (Maybe Natural
   -> Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe HlsCodecSpecification
      -> Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"programDateTimePeriod")
            Parser
  (Maybe HlsCodecSpecification
   -> Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsCodecSpecification)
-> Parser
     (Maybe HlsCdnSettings
      -> Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsCodecSpecification)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"codecSpecification")
            Parser
  (Maybe HlsCdnSettings
   -> Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsCdnSettings)
-> Parser
     (Maybe [CaptionLanguageMapping]
      -> Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsCdnSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"hlsCdnSettings")
            Parser
  (Maybe [CaptionLanguageMapping]
   -> Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe [CaptionLanguageMapping])
-> Parser
     (Maybe InputLossActionForHlsOut
      -> Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [CaptionLanguageMapping]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"captionLanguageMappings"
                            Parser (Maybe (Maybe [CaptionLanguageMapping]))
-> Maybe [CaptionLanguageMapping]
-> Parser (Maybe [CaptionLanguageMapping])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [CaptionLanguageMapping]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe InputLossActionForHlsOut
   -> Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe InputLossActionForHlsOut)
-> Parser
     (Maybe HlsMode
      -> Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe InputLossActionForHlsOut)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"inputLossAction")
            Parser
  (Maybe HlsMode
   -> Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsMode)
-> Parser
     (Maybe KeyProviderSettings
      -> Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsMode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"mode")
            Parser
  (Maybe KeyProviderSettings
   -> Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe KeyProviderSettings)
-> Parser
     (Maybe HlsIncompleteSegmentBehavior
      -> Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe KeyProviderSettings)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"keyProviderSettings")
            Parser
  (Maybe HlsIncompleteSegmentBehavior
   -> Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsIncompleteSegmentBehavior)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsIncompleteSegmentBehavior)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"incompleteSegmentBehavior")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"constantIv")
            Parser
  (Maybe Text
   -> Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe [HlsAdMarkers]
      -> Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"baseUrlManifest")
            Parser
  (Maybe [HlsAdMarkers]
   -> Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe [HlsAdMarkers])
-> Parser
     (Maybe Text
      -> Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe (Maybe [HlsAdMarkers]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"adMarkers" Parser (Maybe (Maybe [HlsAdMarkers]))
-> Maybe [HlsAdMarkers] -> Parser (Maybe [HlsAdMarkers])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [HlsAdMarkers]
forall a. Monoid a => a
Prelude.mempty)
            Parser
  (Maybe Text
   -> Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe Natural
      -> Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"keyFormat")
            Parser
  (Maybe Natural
   -> Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe HlsId3SegmentTaggingState
      -> Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"segmentLength")
            Parser
  (Maybe HlsId3SegmentTaggingState
   -> Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsId3SegmentTaggingState)
-> Parser
     (Maybe HlsTimedMetadataId3Frame
      -> Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsId3SegmentTaggingState)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"hlsId3SegmentTagging")
            Parser
  (Maybe HlsTimedMetadataId3Frame
   -> Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsTimedMetadataId3Frame)
-> Parser
     (Maybe Text
      -> Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsTimedMetadataId3Frame)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"timedMetadataId3Frame")
            Parser
  (Maybe Text
   -> Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe HlsOutputSelection
      -> Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"baseUrlContent")
            Parser
  (Maybe HlsOutputSelection
   -> Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsOutputSelection)
-> Parser
     (Maybe HlsCaptionLanguageSetting
      -> Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsOutputSelection)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"outputSelection")
            Parser
  (Maybe HlsCaptionLanguageSetting
   -> Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsCaptionLanguageSetting)
-> Parser
     (Maybe Natural
      -> Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsCaptionLanguageSetting)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"captionLanguageSetting")
            Parser
  (Maybe Natural
   -> Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe HlsManifestDurationFormat
      -> Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"segmentsPerSubdirectory")
            Parser
  (Maybe HlsManifestDurationFormat
   -> Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsManifestDurationFormat)
-> Parser
     (Maybe HlsIvSource
      -> Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsManifestDurationFormat)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"manifestDurationFormat")
            Parser
  (Maybe HlsIvSource
   -> Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsIvSource)
-> Parser
     (Maybe HlsSegmentationMode
      -> Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsIvSource)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ivSource")
            Parser
  (Maybe HlsSegmentationMode
   -> Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsSegmentationMode)
-> Parser
     (Maybe Text
      -> Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsSegmentationMode)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"segmentationMode")
            Parser
  (Maybe Text
   -> Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe HlsClientCache
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"keyFormatVersions")
            Parser
  (Maybe HlsClientCache
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsClientCache)
-> Parser
     (Maybe Natural
      -> Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsClientCache)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"clientCache")
            Parser
  (Maybe Natural
   -> Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Text
      -> Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"timestampDeltaMilliseconds")
            Parser
  (Maybe Text
   -> Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe HlsRedundantManifest
      -> Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"baseUrlManifest1")
            Parser
  (Maybe HlsRedundantManifest
   -> Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsRedundantManifest)
-> Parser
     (Maybe HlsStreamInfResolution
      -> Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsRedundantManifest)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"redundantManifest")
            Parser
  (Maybe HlsStreamInfResolution
   -> Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe HlsStreamInfResolution)
-> Parser
     (Maybe Natural
      -> Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsStreamInfResolution)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"streamInfResolution")
            Parser
  (Maybe Natural
   -> Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Text
      -> Maybe HlsManifestCompression
      -> OutputLocationRef
      -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"keepSegments")
            Parser
  (Maybe Text
   -> Maybe HlsManifestCompression
   -> OutputLocationRef
   -> HlsGroupSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe HlsManifestCompression
      -> OutputLocationRef -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"baseUrlContent1")
            Parser
  (Maybe HlsManifestCompression
   -> OutputLocationRef -> HlsGroupSettings)
-> Parser (Maybe HlsManifestCompression)
-> Parser (OutputLocationRef -> HlsGroupSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe HlsManifestCompression)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"manifestCompression")
            Parser (OutputLocationRef -> HlsGroupSettings)
-> Parser OutputLocationRef -> Parser HlsGroupSettings
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser OutputLocationRef
forall a. FromJSON a => Object -> Text -> Parser a
Core..: Text
"destination")
      )

instance Prelude.Hashable HlsGroupSettings

instance Prelude.NFData HlsGroupSettings

instance Core.ToJSON HlsGroupSettings where
  toJSON :: HlsGroupSettings -> Value
toJSON HlsGroupSettings' {Maybe Natural
Maybe [CaptionLanguageMapping]
Maybe [HlsAdMarkers]
Maybe Text
Maybe HlsCaptionLanguageSetting
Maybe HlsClientCache
Maybe HlsCodecSpecification
Maybe HlsDirectoryStructure
Maybe HlsDiscontinuityTags
Maybe HlsEncryptionType
Maybe HlsId3SegmentTaggingState
Maybe HlsIncompleteSegmentBehavior
Maybe HlsIvInManifest
Maybe HlsIvSource
Maybe HlsManifestCompression
Maybe HlsManifestDurationFormat
Maybe HlsMode
Maybe HlsOutputSelection
Maybe HlsProgramDateTime
Maybe HlsRedundantManifest
Maybe HlsSegmentationMode
Maybe HlsStreamInfResolution
Maybe HlsTimedMetadataId3Frame
Maybe HlsTsFileMode
Maybe IFrameOnlyPlaylistType
Maybe InputLossActionForHlsOut
Maybe HlsCdnSettings
Maybe KeyProviderSettings
OutputLocationRef
destination :: OutputLocationRef
manifestCompression :: Maybe HlsManifestCompression
baseUrlContent1 :: Maybe Text
keepSegments :: Maybe Natural
streamInfResolution :: Maybe HlsStreamInfResolution
redundantManifest :: Maybe HlsRedundantManifest
baseUrlManifest1 :: Maybe Text
timestampDeltaMilliseconds :: Maybe Natural
clientCache :: Maybe HlsClientCache
keyFormatVersions :: Maybe Text
segmentationMode :: Maybe HlsSegmentationMode
ivSource :: Maybe HlsIvSource
manifestDurationFormat :: Maybe HlsManifestDurationFormat
segmentsPerSubdirectory :: Maybe Natural
captionLanguageSetting :: Maybe HlsCaptionLanguageSetting
outputSelection :: Maybe HlsOutputSelection
baseUrlContent :: Maybe Text
timedMetadataId3Frame :: Maybe HlsTimedMetadataId3Frame
hlsId3SegmentTagging :: Maybe HlsId3SegmentTaggingState
segmentLength :: Maybe Natural
keyFormat :: Maybe Text
adMarkers :: Maybe [HlsAdMarkers]
baseUrlManifest :: Maybe Text
constantIv :: Maybe Text
incompleteSegmentBehavior :: Maybe HlsIncompleteSegmentBehavior
keyProviderSettings :: Maybe KeyProviderSettings
mode :: Maybe HlsMode
inputLossAction :: Maybe InputLossActionForHlsOut
captionLanguageMappings :: Maybe [CaptionLanguageMapping]
hlsCdnSettings :: Maybe HlsCdnSettings
codecSpecification :: Maybe HlsCodecSpecification
programDateTimePeriod :: Maybe Natural
indexNSegments :: Maybe Natural
programDateTime :: Maybe HlsProgramDateTime
iFrameOnlyPlaylists :: Maybe IFrameOnlyPlaylistType
minSegmentLength :: Maybe Natural
tsFileMode :: Maybe HlsTsFileMode
discontinuityTags :: Maybe HlsDiscontinuityTags
ivInManifest :: Maybe HlsIvInManifest
timedMetadataId3Period :: Maybe Natural
encryptionType :: Maybe HlsEncryptionType
directoryStructure :: Maybe HlsDirectoryStructure
$sel:destination:HlsGroupSettings' :: HlsGroupSettings -> OutputLocationRef
$sel:manifestCompression:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsManifestCompression
$sel:baseUrlContent1:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:keepSegments:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:streamInfResolution:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsStreamInfResolution
$sel:redundantManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsRedundantManifest
$sel:baseUrlManifest1:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:timestampDeltaMilliseconds:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:clientCache:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsClientCache
$sel:keyFormatVersions:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:segmentationMode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsSegmentationMode
$sel:ivSource:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIvSource
$sel:manifestDurationFormat:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsManifestDurationFormat
$sel:segmentsPerSubdirectory:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:captionLanguageSetting:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCaptionLanguageSetting
$sel:outputSelection:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsOutputSelection
$sel:baseUrlContent:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:timedMetadataId3Frame:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsTimedMetadataId3Frame
$sel:hlsId3SegmentTagging:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsId3SegmentTaggingState
$sel:segmentLength:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:keyFormat:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:adMarkers:HlsGroupSettings' :: HlsGroupSettings -> Maybe [HlsAdMarkers]
$sel:baseUrlManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:constantIv:HlsGroupSettings' :: HlsGroupSettings -> Maybe Text
$sel:incompleteSegmentBehavior:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIncompleteSegmentBehavior
$sel:keyProviderSettings:HlsGroupSettings' :: HlsGroupSettings -> Maybe KeyProviderSettings
$sel:mode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsMode
$sel:inputLossAction:HlsGroupSettings' :: HlsGroupSettings -> Maybe InputLossActionForHlsOut
$sel:captionLanguageMappings:HlsGroupSettings' :: HlsGroupSettings -> Maybe [CaptionLanguageMapping]
$sel:hlsCdnSettings:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCdnSettings
$sel:codecSpecification:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsCodecSpecification
$sel:programDateTimePeriod:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:indexNSegments:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:programDateTime:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsProgramDateTime
$sel:iFrameOnlyPlaylists:HlsGroupSettings' :: HlsGroupSettings -> Maybe IFrameOnlyPlaylistType
$sel:minSegmentLength:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:tsFileMode:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsTsFileMode
$sel:discontinuityTags:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsDiscontinuityTags
$sel:ivInManifest:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsIvInManifest
$sel:timedMetadataId3Period:HlsGroupSettings' :: HlsGroupSettings -> Maybe Natural
$sel:encryptionType:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsEncryptionType
$sel:directoryStructure:HlsGroupSettings' :: HlsGroupSettings -> Maybe HlsDirectoryStructure
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"directoryStructure" Text -> HlsDirectoryStructure -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsDirectoryStructure -> Pair)
-> Maybe HlsDirectoryStructure -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsDirectoryStructure
directoryStructure,
            (Text
"encryptionType" Text -> HlsEncryptionType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsEncryptionType -> Pair)
-> Maybe HlsEncryptionType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsEncryptionType
encryptionType,
            (Text
"timedMetadataId3Period" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
timedMetadataId3Period,
            (Text
"ivInManifest" Text -> HlsIvInManifest -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HlsIvInManifest -> Pair) -> Maybe HlsIvInManifest -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsIvInManifest
ivInManifest,
            (Text
"discontinuityTags" Text -> HlsDiscontinuityTags -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsDiscontinuityTags -> Pair)
-> Maybe HlsDiscontinuityTags -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsDiscontinuityTags
discontinuityTags,
            (Text
"tsFileMode" Text -> HlsTsFileMode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HlsTsFileMode -> Pair) -> Maybe HlsTsFileMode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsTsFileMode
tsFileMode,
            (Text
"minSegmentLength" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
minSegmentLength,
            (Text
"iFrameOnlyPlaylists" Text -> IFrameOnlyPlaylistType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (IFrameOnlyPlaylistType -> Pair)
-> Maybe IFrameOnlyPlaylistType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe IFrameOnlyPlaylistType
iFrameOnlyPlaylists,
            (Text
"programDateTime" Text -> HlsProgramDateTime -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsProgramDateTime -> Pair)
-> Maybe HlsProgramDateTime -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsProgramDateTime
programDateTime,
            (Text
"indexNSegments" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
indexNSegments,
            (Text
"programDateTimePeriod" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
programDateTimePeriod,
            (Text
"codecSpecification" Text -> HlsCodecSpecification -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsCodecSpecification -> Pair)
-> Maybe HlsCodecSpecification -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsCodecSpecification
codecSpecification,
            (Text
"hlsCdnSettings" Text -> HlsCdnSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsCdnSettings -> Pair) -> Maybe HlsCdnSettings -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsCdnSettings
hlsCdnSettings,
            (Text
"captionLanguageMappings" Text -> [CaptionLanguageMapping] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([CaptionLanguageMapping] -> Pair)
-> Maybe [CaptionLanguageMapping] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [CaptionLanguageMapping]
captionLanguageMappings,
            (Text
"inputLossAction" Text -> InputLossActionForHlsOut -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (InputLossActionForHlsOut -> Pair)
-> Maybe InputLossActionForHlsOut -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe InputLossActionForHlsOut
inputLossAction,
            (Text
"mode" Text -> HlsMode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HlsMode -> Pair) -> Maybe HlsMode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsMode
mode,
            (Text
"keyProviderSettings" Text -> KeyProviderSettings -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (KeyProviderSettings -> Pair)
-> Maybe KeyProviderSettings -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe KeyProviderSettings
keyProviderSettings,
            (Text
"incompleteSegmentBehavior" Text -> HlsIncompleteSegmentBehavior -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsIncompleteSegmentBehavior -> Pair)
-> Maybe HlsIncompleteSegmentBehavior -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsIncompleteSegmentBehavior
incompleteSegmentBehavior,
            (Text
"constantIv" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
constantIv,
            (Text
"baseUrlManifest" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
baseUrlManifest,
            (Text
"adMarkers" Text -> [HlsAdMarkers] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([HlsAdMarkers] -> Pair) -> Maybe [HlsAdMarkers] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [HlsAdMarkers]
adMarkers,
            (Text
"keyFormat" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
keyFormat,
            (Text
"segmentLength" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
segmentLength,
            (Text
"hlsId3SegmentTagging" Text -> HlsId3SegmentTaggingState -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsId3SegmentTaggingState -> Pair)
-> Maybe HlsId3SegmentTaggingState -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsId3SegmentTaggingState
hlsId3SegmentTagging,
            (Text
"timedMetadataId3Frame" Text -> HlsTimedMetadataId3Frame -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsTimedMetadataId3Frame -> Pair)
-> Maybe HlsTimedMetadataId3Frame -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsTimedMetadataId3Frame
timedMetadataId3Frame,
            (Text
"baseUrlContent" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
baseUrlContent,
            (Text
"outputSelection" Text -> HlsOutputSelection -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsOutputSelection -> Pair)
-> Maybe HlsOutputSelection -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsOutputSelection
outputSelection,
            (Text
"captionLanguageSetting" Text -> HlsCaptionLanguageSetting -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsCaptionLanguageSetting -> Pair)
-> Maybe HlsCaptionLanguageSetting -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsCaptionLanguageSetting
captionLanguageSetting,
            (Text
"segmentsPerSubdirectory" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
segmentsPerSubdirectory,
            (Text
"manifestDurationFormat" Text -> HlsManifestDurationFormat -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsManifestDurationFormat -> Pair)
-> Maybe HlsManifestDurationFormat -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsManifestDurationFormat
manifestDurationFormat,
            (Text
"ivSource" Text -> HlsIvSource -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HlsIvSource -> Pair) -> Maybe HlsIvSource -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsIvSource
ivSource,
            (Text
"segmentationMode" Text -> HlsSegmentationMode -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsSegmentationMode -> Pair)
-> Maybe HlsSegmentationMode -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsSegmentationMode
segmentationMode,
            (Text
"keyFormatVersions" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
keyFormatVersions,
            (Text
"clientCache" Text -> HlsClientCache -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (HlsClientCache -> Pair) -> Maybe HlsClientCache -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsClientCache
clientCache,
            (Text
"timestampDeltaMilliseconds" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
timestampDeltaMilliseconds,
            (Text
"baseUrlManifest1" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
baseUrlManifest1,
            (Text
"redundantManifest" Text -> HlsRedundantManifest -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsRedundantManifest -> Pair)
-> Maybe HlsRedundantManifest -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsRedundantManifest
redundantManifest,
            (Text
"streamInfResolution" Text -> HlsStreamInfResolution -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsStreamInfResolution -> Pair)
-> Maybe HlsStreamInfResolution -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsStreamInfResolution
streamInfResolution,
            (Text
"keepSegments" Text -> Natural -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Natural -> Pair) -> Maybe Natural -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Natural
keepSegments,
            (Text
"baseUrlContent1" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
baseUrlContent1,
            (Text
"manifestCompression" Text -> HlsManifestCompression -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (HlsManifestCompression -> Pair)
-> Maybe HlsManifestCompression -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe HlsManifestCompression
manifestCompression,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just (Text
"destination" Text -> OutputLocationRef -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= OutputLocationRef
destination)
          ]
      )