{-# 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.MediaConvert.Types.DvbSubDestinationSettings
-- 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.MediaConvert.Types.DvbSubDestinationSettings where

import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import Amazonka.MediaConvert.Types.DvbSubSubtitleFallbackFont
import Amazonka.MediaConvert.Types.DvbSubtitleAlignment
import Amazonka.MediaConvert.Types.DvbSubtitleApplyFontColor
import Amazonka.MediaConvert.Types.DvbSubtitleBackgroundColor
import Amazonka.MediaConvert.Types.DvbSubtitleFontColor
import Amazonka.MediaConvert.Types.DvbSubtitleOutlineColor
import Amazonka.MediaConvert.Types.DvbSubtitleShadowColor
import Amazonka.MediaConvert.Types.DvbSubtitleStylePassthrough
import Amazonka.MediaConvert.Types.DvbSubtitleTeletextSpacing
import Amazonka.MediaConvert.Types.DvbSubtitlingType
import Amazonka.MediaConvert.Types.DvbddsHandling
import Amazonka.MediaConvert.Types.FontScript
import qualified Amazonka.Prelude as Prelude

-- | Settings related to DVB-Sub captions. Set up DVB-Sub captions in the
-- same output as your video. For more information, see
-- https:\/\/docs.aws.amazon.com\/mediaconvert\/latest\/ug\/dvb-sub-output-captions.html.
-- When you work directly in your JSON job specification, include this
-- object and any required children when you set destinationType to
-- DVB_SUB.
--
-- /See:/ 'newDvbSubDestinationSettings' smart constructor.
data DvbSubDestinationSettings = DvbSubDestinationSettings'
  { -- | Specify how MediaConvert handles the display definition segment (DDS).
    -- Keep the default, None (NONE), to exclude the DDS from this set of
    -- captions. Choose No display window (NO_DISPLAY_WINDOW) to have
    -- MediaConvert include the DDS but not include display window data. In
    -- this case, MediaConvert writes that information to the page composition
    -- segment (PCS) instead. Choose Specify (SPECIFIED) to have MediaConvert
    -- set up the display window based on the values that you specify in
    -- related job settings. For video resolutions that are 576 pixels or
    -- smaller in height, MediaConvert doesn\'t include the DDS, regardless of
    -- the value you choose for DDS handling (ddsHandling). In this case, it
    -- doesn\'t write the display window data to the PCS either. Related
    -- settings: Use the settings DDS x-coordinate (ddsXCoordinate) and DDS
    -- y-coordinate (ddsYCoordinate) to specify the offset between the top left
    -- corner of the display window and the top left corner of the video frame.
    -- All burn-in and DVB-Sub font settings must match.
    DvbSubDestinationSettings -> Maybe DvbddsHandling
ddsHandling :: Prelude.Maybe DvbddsHandling,
    -- | Specify the opacity of the background rectangle. Enter a value from 0 to
    -- 255, where 0 is transparent and 255 is opaque. If Style passthrough
    -- (StylePassthrough) is set to enabled, leave blank to pass through the
    -- background style information in your input captions to your output
    -- captions. If Style passthrough is set to disabled, leave blank to use a
    -- value of 0 and remove all backgrounds from your output captions. Within
    -- your job settings, all of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe Natural
backgroundOpacity :: Prelude.Maybe Prelude.Natural,
    -- | Specify the font that you want the service to use for your burn in
    -- captions when your input captions specify a font that MediaConvert
    -- doesn\'t support. When you set Fallback font (FallbackFont) to best
    -- match (BEST_MATCH), or leave blank, MediaConvert uses a supported font
    -- that most closely matches the font that your input captions specify.
    -- When there are multiple unsupported fonts in your input captions,
    -- MediaConvert matches each font with the supported font that matches
    -- best. When you explicitly choose a replacement font, MediaConvert uses
    -- that font to replace all unsupported fonts from your input.
    DvbSubDestinationSettings -> Maybe DvbSubSubtitleFallbackFont
fallbackFont :: Prelude.Maybe DvbSubSubtitleFallbackFont,
    -- | Specify the height, in pixels, of this set of DVB-Sub captions. The
    -- default value is 576 pixels. Related setting: When you use this setting,
    -- you must set DDS handling (ddsHandling) to a value other than None
    -- (NONE). All burn-in and DVB-Sub font settings must match.
    DvbSubDestinationSettings -> Maybe Natural
height :: Prelude.Maybe Prelude.Natural,
    -- | Specify the opacity of the burned-in captions. 255 is opaque; 0 is
    -- transparent. Within your job settings, all of your DVB-Sub settings must
    -- be identical.
    DvbSubDestinationSettings -> Maybe Natural
fontOpacity :: Prelude.Maybe Prelude.Natural,
    -- | Specify the vertical offset of the shadow relative to the captions in
    -- pixels. A value of -2 would result in a shadow offset 2 pixels above the
    -- text. Leave Shadow y-offset (ShadowYOffset) blank and set Style
    -- passthrough (StylePassthrough) to enabled to use the shadow y-offset
    -- data from your input captions, if present. Within your job settings, all
    -- of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe Int
shadowYOffset :: Prelude.Maybe Prelude.Int,
    -- | Specify the Font resolution (FontResolution) in DPI (dots per inch).
    -- Within your job settings, all of your DVB-Sub settings must be
    -- identical.
    DvbSubDestinationSettings -> Maybe Natural
fontResolution :: Prelude.Maybe Prelude.Natural,
    -- | Specify the vertical position (YPosition) of the captions, relative to
    -- the top of the output in pixels. A value of 10 would result in the
    -- captions starting 10 pixels from the top of the output. If no explicit
    -- y_position is provided, the caption will be positioned towards the
    -- bottom of the output. Within your job settings, all of your DVB-Sub
    -- settings must be identical.
    DvbSubDestinationSettings -> Maybe Natural
yPosition :: Prelude.Maybe Prelude.Natural,
    -- | Use this setting, along with DDS x-coordinate (ddsXCoordinate), to
    -- specify the upper left corner of the display definition segment (DDS)
    -- display window. With this setting, specify the distance, in pixels,
    -- between the top of the frame and the top of the DDS display window. Keep
    -- the default value, 0, to have MediaConvert automatically choose this
    -- offset. Related setting: When you use this setting, you must set DDS
    -- handling (ddsHandling) to a value other than None (NONE). MediaConvert
    -- uses these values to determine whether to write page position data to
    -- the DDS or to the page composition segment (PCS). All burn-in and
    -- DVB-Sub font settings must match.
    DvbSubDestinationSettings -> Maybe Natural
ddsYCoordinate :: Prelude.Maybe Prelude.Natural,
    -- | Specify the color of the rectangle behind the captions. Leave background
    -- color (BackgroundColor) blank and set Style passthrough
    -- (StylePassthrough) to enabled to use the background color data from your
    -- input captions, if present.
    DvbSubDestinationSettings -> Maybe DvbSubtitleBackgroundColor
backgroundColor :: Prelude.Maybe DvbSubtitleBackgroundColor,
    -- | Specify the horizontal offset of the shadow, relative to the captions in
    -- pixels. A value of -2 would result in a shadow offset 2 pixels to the
    -- left. Within your job settings, all of your DVB-Sub settings must be
    -- identical.
    DvbSubDestinationSettings -> Maybe Int
shadowXOffset :: Prelude.Maybe Prelude.Int,
    -- | Specify the Font size (FontSize) in pixels. Must be a positive integer.
    -- Set to 0, or leave blank, for automatic font size. Within your job
    -- settings, all of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe Natural
fontSize :: Prelude.Maybe Prelude.Natural,
    -- | Specify the width, in pixels, of this set of DVB-Sub captions. The
    -- default value is 720 pixels. Related setting: When you use this setting,
    -- you must set DDS handling (ddsHandling) to a value other than None
    -- (NONE). All burn-in and DVB-Sub font settings must match.
    DvbSubDestinationSettings -> Maybe Natural
width :: Prelude.Maybe Prelude.Natural,
    -- | Use this setting, along with DDS y-coordinate (ddsYCoordinate), to
    -- specify the upper left corner of the display definition segment (DDS)
    -- display window. With this setting, specify the distance, in pixels,
    -- between the left side of the frame and the left side of the DDS display
    -- window. Keep the default value, 0, to have MediaConvert automatically
    -- choose this offset. Related setting: When you use this setting, you must
    -- set DDS handling (ddsHandling) to a value other than None (NONE).
    -- MediaConvert uses these values to determine whether to write page
    -- position data to the DDS or to the page composition segment (PCS). All
    -- burn-in and DVB-Sub font settings must match.
    DvbSubDestinationSettings -> Maybe Natural
ddsXCoordinate :: Prelude.Maybe Prelude.Natural,
    -- | Specify the horizontal position (XPosition) of the captions, relative to
    -- the left side of the outputin pixels. A value of 10 would result in the
    -- captions starting 10 pixels from the left ofthe output. If no explicit
    -- x_position is provided, the horizontal caption position will
    -- bedetermined by the alignment parameter. Within your job settings, all
    -- of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe Natural
xPosition :: Prelude.Maybe Prelude.Natural,
    -- | Specify whether the Text spacing (TextSpacing) in your captions is set
    -- by the captions grid, or varies depending on letter width. Choose fixed
    -- grid (FIXED_GRID) to conform to the spacing specified in the captions
    -- file more accurately. Choose proportional (PROPORTIONAL) to make the
    -- text easier to read for closed captions. Within your job settings, all
    -- of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe DvbSubtitleTeletextSpacing
teletextSpacing :: Prelude.Maybe DvbSubtitleTeletextSpacing,
    -- | Set Font script (FontScript) to Automatically determined (AUTOMATIC), or
    -- leave blank, to automatically determine the font script in your input
    -- captions. Otherwise, set to Simplified Chinese (HANS) or Traditional
    -- Chinese (HANT) if your input font script uses Simplified or Traditional
    -- Chinese. Within your job settings, all of your DVB-Sub settings must be
    -- identical.
    DvbSubDestinationSettings -> Maybe FontScript
fontScript :: Prelude.Maybe FontScript,
    -- | Specify the alignment of your captions. If no explicit x_position is
    -- provided, setting alignment to centered will placethe captions at the
    -- bottom center of the output. Similarly, setting a left alignment
    -- willalign captions to the bottom left of the output. If x and y
    -- positions are given in conjunction with the alignment parameter, the
    -- font will be justified (either left or centered) relative to those
    -- coordinates. Within your job settings, all of your DVB-Sub settings must
    -- be identical.
    DvbSubDestinationSettings -> Maybe DvbSubtitleAlignment
alignment :: Prelude.Maybe DvbSubtitleAlignment,
    -- | Specify the opacity of the shadow. Enter a value from 0 to 255, where 0
    -- is transparent and 255 is opaque. If Style passthrough
    -- (StylePassthrough) is set to Enabled, leave Shadow opacity
    -- (ShadowOpacity) blank to pass through the shadow style information in
    -- your input captions to your output captions. If Style passthrough is set
    -- to disabled, leave blank to use a value of 0 and remove all shadows from
    -- your output captions. Within your job settings, all of your DVB-Sub
    -- settings must be identical.
    DvbSubDestinationSettings -> Maybe Natural
shadowOpacity :: Prelude.Maybe Prelude.Natural,
    -- | Ignore this setting unless Style Passthrough (StylePassthrough) is set
    -- to Enabled and Font color (FontColor) set to Black, Yellow, Red, Green,
    -- Blue, or Hex. Use Apply font color (ApplyFontColor) for additional font
    -- color controls. When you choose White text only (WHITE_TEXT_ONLY), or
    -- leave blank, your font color setting only applies to white text in your
    -- input captions. For example, if your font color setting is Yellow, and
    -- your input captions have red and white text, your output captions will
    -- have red and yellow text. When you choose ALL_TEXT, your font color
    -- setting applies to all of your output captions text.
    DvbSubDestinationSettings -> Maybe DvbSubtitleApplyFontColor
applyFontColor :: Prelude.Maybe DvbSubtitleApplyFontColor,
    -- | Set Style passthrough (StylePassthrough) to ENABLED to use the available
    -- style, color, and position information from your input captions.
    -- MediaConvert uses default settings for any missing style and position
    -- information in your input captions. Set Style passthrough to DISABLED,
    -- or leave blank, to ignore the style and position information from your
    -- input captions and use default settings: white text with black
    -- outlining, bottom-center positioning, and automatic sizing. Whether you
    -- set Style passthrough to enabled or not, you can also choose to manually
    -- override any of the individual style and position settings.
    DvbSubDestinationSettings -> Maybe DvbSubtitleStylePassthrough
stylePassthrough :: Prelude.Maybe DvbSubtitleStylePassthrough,
    -- | Specify font outline color. Leave Outline color (OutlineColor) blank and
    -- set Style passthrough (StylePassthrough) to enabled to use the font
    -- outline color data from your input captions, if present. Within your job
    -- settings, all of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe DvbSubtitleOutlineColor
outlineColor :: Prelude.Maybe DvbSubtitleOutlineColor,
    -- | Specify the Outline size (OutlineSize) of the caption text, in pixels.
    -- Leave Outline size blank and set Style passthrough (StylePassthrough) to
    -- enabled to use the outline size data from your input captions, if
    -- present. Within your job settings, all of your DVB-Sub settings must be
    -- identical.
    DvbSubDestinationSettings -> Maybe Natural
outlineSize :: Prelude.Maybe Prelude.Natural,
    -- | Specify the color of the shadow cast by the captions. Leave Shadow color
    -- (ShadowColor) blank and set Style passthrough (StylePassthrough) to
    -- enabled to use the shadow color data from your input captions, if
    -- present. Within your job settings, all of your DVB-Sub settings must be
    -- identical.
    DvbSubDestinationSettings -> Maybe DvbSubtitleShadowColor
shadowColor :: Prelude.Maybe DvbSubtitleShadowColor,
    -- | Ignore this setting unless your Font color is set to Hex. Enter either
    -- six or eight hexidecimal digits, representing red, green, and blue, with
    -- two optional extra digits for alpha. For example a value of 1122AABB is
    -- a red value of 0x11, a green value of 0x22, a blue value of 0xAA, and an
    -- alpha value of 0xBB.
    DvbSubDestinationSettings -> Maybe Text
hexFontColor :: Prelude.Maybe Prelude.Text,
    -- | Specify the color of the captions text. Leave Font color (FontColor)
    -- blank and set Style passthrough (StylePassthrough) to enabled to use the
    -- font color data from your input captions, if present. Within your job
    -- settings, all of your DVB-Sub settings must be identical.
    DvbSubDestinationSettings -> Maybe DvbSubtitleFontColor
fontColor :: Prelude.Maybe DvbSubtitleFontColor,
    -- | Specify whether your DVB subtitles are standard or for hearing impaired.
    -- Choose hearing impaired if your subtitles include audio descriptions and
    -- dialogue. Choose standard if your subtitles include only dialogue.
    DvbSubDestinationSettings -> Maybe DvbSubtitlingType
subtitlingType :: Prelude.Maybe DvbSubtitlingType
  }
  deriving (DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool
(DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool)
-> (DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool)
-> Eq DvbSubDestinationSettings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool
$c/= :: DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool
== :: DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool
$c== :: DvbSubDestinationSettings -> DvbSubDestinationSettings -> Bool
Prelude.Eq, ReadPrec [DvbSubDestinationSettings]
ReadPrec DvbSubDestinationSettings
Int -> ReadS DvbSubDestinationSettings
ReadS [DvbSubDestinationSettings]
(Int -> ReadS DvbSubDestinationSettings)
-> ReadS [DvbSubDestinationSettings]
-> ReadPrec DvbSubDestinationSettings
-> ReadPrec [DvbSubDestinationSettings]
-> Read DvbSubDestinationSettings
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DvbSubDestinationSettings]
$creadListPrec :: ReadPrec [DvbSubDestinationSettings]
readPrec :: ReadPrec DvbSubDestinationSettings
$creadPrec :: ReadPrec DvbSubDestinationSettings
readList :: ReadS [DvbSubDestinationSettings]
$creadList :: ReadS [DvbSubDestinationSettings]
readsPrec :: Int -> ReadS DvbSubDestinationSettings
$creadsPrec :: Int -> ReadS DvbSubDestinationSettings
Prelude.Read, Int -> DvbSubDestinationSettings -> ShowS
[DvbSubDestinationSettings] -> ShowS
DvbSubDestinationSettings -> String
(Int -> DvbSubDestinationSettings -> ShowS)
-> (DvbSubDestinationSettings -> String)
-> ([DvbSubDestinationSettings] -> ShowS)
-> Show DvbSubDestinationSettings
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DvbSubDestinationSettings] -> ShowS
$cshowList :: [DvbSubDestinationSettings] -> ShowS
show :: DvbSubDestinationSettings -> String
$cshow :: DvbSubDestinationSettings -> String
showsPrec :: Int -> DvbSubDestinationSettings -> ShowS
$cshowsPrec :: Int -> DvbSubDestinationSettings -> ShowS
Prelude.Show, (forall x.
 DvbSubDestinationSettings -> Rep DvbSubDestinationSettings x)
-> (forall x.
    Rep DvbSubDestinationSettings x -> DvbSubDestinationSettings)
-> Generic DvbSubDestinationSettings
forall x.
Rep DvbSubDestinationSettings x -> DvbSubDestinationSettings
forall x.
DvbSubDestinationSettings -> Rep DvbSubDestinationSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DvbSubDestinationSettings x -> DvbSubDestinationSettings
$cfrom :: forall x.
DvbSubDestinationSettings -> Rep DvbSubDestinationSettings x
Prelude.Generic)

-- |
-- Create a value of 'DvbSubDestinationSettings' 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:
--
-- 'ddsHandling', 'dvbSubDestinationSettings_ddsHandling' - Specify how MediaConvert handles the display definition segment (DDS).
-- Keep the default, None (NONE), to exclude the DDS from this set of
-- captions. Choose No display window (NO_DISPLAY_WINDOW) to have
-- MediaConvert include the DDS but not include display window data. In
-- this case, MediaConvert writes that information to the page composition
-- segment (PCS) instead. Choose Specify (SPECIFIED) to have MediaConvert
-- set up the display window based on the values that you specify in
-- related job settings. For video resolutions that are 576 pixels or
-- smaller in height, MediaConvert doesn\'t include the DDS, regardless of
-- the value you choose for DDS handling (ddsHandling). In this case, it
-- doesn\'t write the display window data to the PCS either. Related
-- settings: Use the settings DDS x-coordinate (ddsXCoordinate) and DDS
-- y-coordinate (ddsYCoordinate) to specify the offset between the top left
-- corner of the display window and the top left corner of the video frame.
-- All burn-in and DVB-Sub font settings must match.
--
-- 'backgroundOpacity', 'dvbSubDestinationSettings_backgroundOpacity' - Specify the opacity of the background rectangle. Enter a value from 0 to
-- 255, where 0 is transparent and 255 is opaque. If Style passthrough
-- (StylePassthrough) is set to enabled, leave blank to pass through the
-- background style information in your input captions to your output
-- captions. If Style passthrough is set to disabled, leave blank to use a
-- value of 0 and remove all backgrounds from your output captions. Within
-- your job settings, all of your DVB-Sub settings must be identical.
--
-- 'fallbackFont', 'dvbSubDestinationSettings_fallbackFont' - Specify the font that you want the service to use for your burn in
-- captions when your input captions specify a font that MediaConvert
-- doesn\'t support. When you set Fallback font (FallbackFont) to best
-- match (BEST_MATCH), or leave blank, MediaConvert uses a supported font
-- that most closely matches the font that your input captions specify.
-- When there are multiple unsupported fonts in your input captions,
-- MediaConvert matches each font with the supported font that matches
-- best. When you explicitly choose a replacement font, MediaConvert uses
-- that font to replace all unsupported fonts from your input.
--
-- 'height', 'dvbSubDestinationSettings_height' - Specify the height, in pixels, of this set of DVB-Sub captions. The
-- default value is 576 pixels. Related setting: When you use this setting,
-- you must set DDS handling (ddsHandling) to a value other than None
-- (NONE). All burn-in and DVB-Sub font settings must match.
--
-- 'fontOpacity', 'dvbSubDestinationSettings_fontOpacity' - Specify the opacity of the burned-in captions. 255 is opaque; 0 is
-- transparent. Within your job settings, all of your DVB-Sub settings must
-- be identical.
--
-- 'shadowYOffset', 'dvbSubDestinationSettings_shadowYOffset' - Specify the vertical offset of the shadow relative to the captions in
-- pixels. A value of -2 would result in a shadow offset 2 pixels above the
-- text. Leave Shadow y-offset (ShadowYOffset) blank and set Style
-- passthrough (StylePassthrough) to enabled to use the shadow y-offset
-- data from your input captions, if present. Within your job settings, all
-- of your DVB-Sub settings must be identical.
--
-- 'fontResolution', 'dvbSubDestinationSettings_fontResolution' - Specify the Font resolution (FontResolution) in DPI (dots per inch).
-- Within your job settings, all of your DVB-Sub settings must be
-- identical.
--
-- 'yPosition', 'dvbSubDestinationSettings_yPosition' - Specify the vertical position (YPosition) of the captions, relative to
-- the top of the output in pixels. A value of 10 would result in the
-- captions starting 10 pixels from the top of the output. If no explicit
-- y_position is provided, the caption will be positioned towards the
-- bottom of the output. Within your job settings, all of your DVB-Sub
-- settings must be identical.
--
-- 'ddsYCoordinate', 'dvbSubDestinationSettings_ddsYCoordinate' - Use this setting, along with DDS x-coordinate (ddsXCoordinate), to
-- specify the upper left corner of the display definition segment (DDS)
-- display window. With this setting, specify the distance, in pixels,
-- between the top of the frame and the top of the DDS display window. Keep
-- the default value, 0, to have MediaConvert automatically choose this
-- offset. Related setting: When you use this setting, you must set DDS
-- handling (ddsHandling) to a value other than None (NONE). MediaConvert
-- uses these values to determine whether to write page position data to
-- the DDS or to the page composition segment (PCS). All burn-in and
-- DVB-Sub font settings must match.
--
-- 'backgroundColor', 'dvbSubDestinationSettings_backgroundColor' - Specify the color of the rectangle behind the captions. Leave background
-- color (BackgroundColor) blank and set Style passthrough
-- (StylePassthrough) to enabled to use the background color data from your
-- input captions, if present.
--
-- 'shadowXOffset', 'dvbSubDestinationSettings_shadowXOffset' - Specify the horizontal offset of the shadow, relative to the captions in
-- pixels. A value of -2 would result in a shadow offset 2 pixels to the
-- left. Within your job settings, all of your DVB-Sub settings must be
-- identical.
--
-- 'fontSize', 'dvbSubDestinationSettings_fontSize' - Specify the Font size (FontSize) in pixels. Must be a positive integer.
-- Set to 0, or leave blank, for automatic font size. Within your job
-- settings, all of your DVB-Sub settings must be identical.
--
-- 'width', 'dvbSubDestinationSettings_width' - Specify the width, in pixels, of this set of DVB-Sub captions. The
-- default value is 720 pixels. Related setting: When you use this setting,
-- you must set DDS handling (ddsHandling) to a value other than None
-- (NONE). All burn-in and DVB-Sub font settings must match.
--
-- 'ddsXCoordinate', 'dvbSubDestinationSettings_ddsXCoordinate' - Use this setting, along with DDS y-coordinate (ddsYCoordinate), to
-- specify the upper left corner of the display definition segment (DDS)
-- display window. With this setting, specify the distance, in pixels,
-- between the left side of the frame and the left side of the DDS display
-- window. Keep the default value, 0, to have MediaConvert automatically
-- choose this offset. Related setting: When you use this setting, you must
-- set DDS handling (ddsHandling) to a value other than None (NONE).
-- MediaConvert uses these values to determine whether to write page
-- position data to the DDS or to the page composition segment (PCS). All
-- burn-in and DVB-Sub font settings must match.
--
-- 'xPosition', 'dvbSubDestinationSettings_xPosition' - Specify the horizontal position (XPosition) of the captions, relative to
-- the left side of the outputin pixels. A value of 10 would result in the
-- captions starting 10 pixels from the left ofthe output. If no explicit
-- x_position is provided, the horizontal caption position will
-- bedetermined by the alignment parameter. Within your job settings, all
-- of your DVB-Sub settings must be identical.
--
-- 'teletextSpacing', 'dvbSubDestinationSettings_teletextSpacing' - Specify whether the Text spacing (TextSpacing) in your captions is set
-- by the captions grid, or varies depending on letter width. Choose fixed
-- grid (FIXED_GRID) to conform to the spacing specified in the captions
-- file more accurately. Choose proportional (PROPORTIONAL) to make the
-- text easier to read for closed captions. Within your job settings, all
-- of your DVB-Sub settings must be identical.
--
-- 'fontScript', 'dvbSubDestinationSettings_fontScript' - Set Font script (FontScript) to Automatically determined (AUTOMATIC), or
-- leave blank, to automatically determine the font script in your input
-- captions. Otherwise, set to Simplified Chinese (HANS) or Traditional
-- Chinese (HANT) if your input font script uses Simplified or Traditional
-- Chinese. Within your job settings, all of your DVB-Sub settings must be
-- identical.
--
-- 'alignment', 'dvbSubDestinationSettings_alignment' - Specify the alignment of your captions. If no explicit x_position is
-- provided, setting alignment to centered will placethe captions at the
-- bottom center of the output. Similarly, setting a left alignment
-- willalign captions to the bottom left of the output. If x and y
-- positions are given in conjunction with the alignment parameter, the
-- font will be justified (either left or centered) relative to those
-- coordinates. Within your job settings, all of your DVB-Sub settings must
-- be identical.
--
-- 'shadowOpacity', 'dvbSubDestinationSettings_shadowOpacity' - Specify the opacity of the shadow. Enter a value from 0 to 255, where 0
-- is transparent and 255 is opaque. If Style passthrough
-- (StylePassthrough) is set to Enabled, leave Shadow opacity
-- (ShadowOpacity) blank to pass through the shadow style information in
-- your input captions to your output captions. If Style passthrough is set
-- to disabled, leave blank to use a value of 0 and remove all shadows from
-- your output captions. Within your job settings, all of your DVB-Sub
-- settings must be identical.
--
-- 'applyFontColor', 'dvbSubDestinationSettings_applyFontColor' - Ignore this setting unless Style Passthrough (StylePassthrough) is set
-- to Enabled and Font color (FontColor) set to Black, Yellow, Red, Green,
-- Blue, or Hex. Use Apply font color (ApplyFontColor) for additional font
-- color controls. When you choose White text only (WHITE_TEXT_ONLY), or
-- leave blank, your font color setting only applies to white text in your
-- input captions. For example, if your font color setting is Yellow, and
-- your input captions have red and white text, your output captions will
-- have red and yellow text. When you choose ALL_TEXT, your font color
-- setting applies to all of your output captions text.
--
-- 'stylePassthrough', 'dvbSubDestinationSettings_stylePassthrough' - Set Style passthrough (StylePassthrough) to ENABLED to use the available
-- style, color, and position information from your input captions.
-- MediaConvert uses default settings for any missing style and position
-- information in your input captions. Set Style passthrough to DISABLED,
-- or leave blank, to ignore the style and position information from your
-- input captions and use default settings: white text with black
-- outlining, bottom-center positioning, and automatic sizing. Whether you
-- set Style passthrough to enabled or not, you can also choose to manually
-- override any of the individual style and position settings.
--
-- 'outlineColor', 'dvbSubDestinationSettings_outlineColor' - Specify font outline color. Leave Outline color (OutlineColor) blank and
-- set Style passthrough (StylePassthrough) to enabled to use the font
-- outline color data from your input captions, if present. Within your job
-- settings, all of your DVB-Sub settings must be identical.
--
-- 'outlineSize', 'dvbSubDestinationSettings_outlineSize' - Specify the Outline size (OutlineSize) of the caption text, in pixels.
-- Leave Outline size blank and set Style passthrough (StylePassthrough) to
-- enabled to use the outline size data from your input captions, if
-- present. Within your job settings, all of your DVB-Sub settings must be
-- identical.
--
-- 'shadowColor', 'dvbSubDestinationSettings_shadowColor' - Specify the color of the shadow cast by the captions. Leave Shadow color
-- (ShadowColor) blank and set Style passthrough (StylePassthrough) to
-- enabled to use the shadow color data from your input captions, if
-- present. Within your job settings, all of your DVB-Sub settings must be
-- identical.
--
-- 'hexFontColor', 'dvbSubDestinationSettings_hexFontColor' - Ignore this setting unless your Font color is set to Hex. Enter either
-- six or eight hexidecimal digits, representing red, green, and blue, with
-- two optional extra digits for alpha. For example a value of 1122AABB is
-- a red value of 0x11, a green value of 0x22, a blue value of 0xAA, and an
-- alpha value of 0xBB.
--
-- 'fontColor', 'dvbSubDestinationSettings_fontColor' - Specify the color of the captions text. Leave Font color (FontColor)
-- blank and set Style passthrough (StylePassthrough) to enabled to use the
-- font color data from your input captions, if present. Within your job
-- settings, all of your DVB-Sub settings must be identical.
--
-- 'subtitlingType', 'dvbSubDestinationSettings_subtitlingType' - Specify whether your DVB subtitles are standard or for hearing impaired.
-- Choose hearing impaired if your subtitles include audio descriptions and
-- dialogue. Choose standard if your subtitles include only dialogue.
newDvbSubDestinationSettings ::
  DvbSubDestinationSettings
newDvbSubDestinationSettings :: DvbSubDestinationSettings
newDvbSubDestinationSettings =
  DvbSubDestinationSettings' :: Maybe DvbddsHandling
-> Maybe Natural
-> Maybe DvbSubSubtitleFallbackFont
-> Maybe Natural
-> Maybe Natural
-> Maybe Int
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe DvbSubtitleBackgroundColor
-> Maybe Int
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe DvbSubtitleTeletextSpacing
-> Maybe FontScript
-> Maybe DvbSubtitleAlignment
-> Maybe Natural
-> Maybe DvbSubtitleApplyFontColor
-> Maybe DvbSubtitleStylePassthrough
-> Maybe DvbSubtitleOutlineColor
-> Maybe Natural
-> Maybe DvbSubtitleShadowColor
-> Maybe Text
-> Maybe DvbSubtitleFontColor
-> Maybe DvbSubtitlingType
-> DvbSubDestinationSettings
DvbSubDestinationSettings'
    { $sel:ddsHandling:DvbSubDestinationSettings' :: Maybe DvbddsHandling
ddsHandling =
        Maybe DvbddsHandling
forall a. Maybe a
Prelude.Nothing,
      $sel:backgroundOpacity:DvbSubDestinationSettings' :: Maybe Natural
backgroundOpacity = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:fallbackFont:DvbSubDestinationSettings' :: Maybe DvbSubSubtitleFallbackFont
fallbackFont = Maybe DvbSubSubtitleFallbackFont
forall a. Maybe a
Prelude.Nothing,
      $sel:height:DvbSubDestinationSettings' :: Maybe Natural
height = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:fontOpacity:DvbSubDestinationSettings' :: Maybe Natural
fontOpacity = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:shadowYOffset:DvbSubDestinationSettings' :: Maybe Int
shadowYOffset = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:fontResolution:DvbSubDestinationSettings' :: Maybe Natural
fontResolution = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:yPosition:DvbSubDestinationSettings' :: Maybe Natural
yPosition = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:ddsYCoordinate:DvbSubDestinationSettings' :: Maybe Natural
ddsYCoordinate = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:backgroundColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleBackgroundColor
backgroundColor = Maybe DvbSubtitleBackgroundColor
forall a. Maybe a
Prelude.Nothing,
      $sel:shadowXOffset:DvbSubDestinationSettings' :: Maybe Int
shadowXOffset = Maybe Int
forall a. Maybe a
Prelude.Nothing,
      $sel:fontSize:DvbSubDestinationSettings' :: Maybe Natural
fontSize = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:width:DvbSubDestinationSettings' :: Maybe Natural
width = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:ddsXCoordinate:DvbSubDestinationSettings' :: Maybe Natural
ddsXCoordinate = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:xPosition:DvbSubDestinationSettings' :: Maybe Natural
xPosition = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:teletextSpacing:DvbSubDestinationSettings' :: Maybe DvbSubtitleTeletextSpacing
teletextSpacing = Maybe DvbSubtitleTeletextSpacing
forall a. Maybe a
Prelude.Nothing,
      $sel:fontScript:DvbSubDestinationSettings' :: Maybe FontScript
fontScript = Maybe FontScript
forall a. Maybe a
Prelude.Nothing,
      $sel:alignment:DvbSubDestinationSettings' :: Maybe DvbSubtitleAlignment
alignment = Maybe DvbSubtitleAlignment
forall a. Maybe a
Prelude.Nothing,
      $sel:shadowOpacity:DvbSubDestinationSettings' :: Maybe Natural
shadowOpacity = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:applyFontColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleApplyFontColor
applyFontColor = Maybe DvbSubtitleApplyFontColor
forall a. Maybe a
Prelude.Nothing,
      $sel:stylePassthrough:DvbSubDestinationSettings' :: Maybe DvbSubtitleStylePassthrough
stylePassthrough = Maybe DvbSubtitleStylePassthrough
forall a. Maybe a
Prelude.Nothing,
      $sel:outlineColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleOutlineColor
outlineColor = Maybe DvbSubtitleOutlineColor
forall a. Maybe a
Prelude.Nothing,
      $sel:outlineSize:DvbSubDestinationSettings' :: Maybe Natural
outlineSize = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
      $sel:shadowColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleShadowColor
shadowColor = Maybe DvbSubtitleShadowColor
forall a. Maybe a
Prelude.Nothing,
      $sel:hexFontColor:DvbSubDestinationSettings' :: Maybe Text
hexFontColor = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:fontColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleFontColor
fontColor = Maybe DvbSubtitleFontColor
forall a. Maybe a
Prelude.Nothing,
      $sel:subtitlingType:DvbSubDestinationSettings' :: Maybe DvbSubtitlingType
subtitlingType = Maybe DvbSubtitlingType
forall a. Maybe a
Prelude.Nothing
    }

-- | Specify how MediaConvert handles the display definition segment (DDS).
-- Keep the default, None (NONE), to exclude the DDS from this set of
-- captions. Choose No display window (NO_DISPLAY_WINDOW) to have
-- MediaConvert include the DDS but not include display window data. In
-- this case, MediaConvert writes that information to the page composition
-- segment (PCS) instead. Choose Specify (SPECIFIED) to have MediaConvert
-- set up the display window based on the values that you specify in
-- related job settings. For video resolutions that are 576 pixels or
-- smaller in height, MediaConvert doesn\'t include the DDS, regardless of
-- the value you choose for DDS handling (ddsHandling). In this case, it
-- doesn\'t write the display window data to the PCS either. Related
-- settings: Use the settings DDS x-coordinate (ddsXCoordinate) and DDS
-- y-coordinate (ddsYCoordinate) to specify the offset between the top left
-- corner of the display window and the top left corner of the video frame.
-- All burn-in and DVB-Sub font settings must match.
dvbSubDestinationSettings_ddsHandling :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbddsHandling)
dvbSubDestinationSettings_ddsHandling :: (Maybe DvbddsHandling -> f (Maybe DvbddsHandling))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_ddsHandling = (DvbSubDestinationSettings -> Maybe DvbddsHandling)
-> (DvbSubDestinationSettings
    -> Maybe DvbddsHandling -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbddsHandling)
     (Maybe DvbddsHandling)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbddsHandling
ddsHandling :: Maybe DvbddsHandling
$sel:ddsHandling:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbddsHandling
ddsHandling} -> Maybe DvbddsHandling
ddsHandling) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbddsHandling
a -> DvbSubDestinationSettings
s {$sel:ddsHandling:DvbSubDestinationSettings' :: Maybe DvbddsHandling
ddsHandling = Maybe DvbddsHandling
a} :: DvbSubDestinationSettings)

-- | Specify the opacity of the background rectangle. Enter a value from 0 to
-- 255, where 0 is transparent and 255 is opaque. If Style passthrough
-- (StylePassthrough) is set to enabled, leave blank to pass through the
-- background style information in your input captions to your output
-- captions. If Style passthrough is set to disabled, leave blank to use a
-- value of 0 and remove all backgrounds from your output captions. Within
-- your job settings, all of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_backgroundOpacity :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_backgroundOpacity :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_backgroundOpacity = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
backgroundOpacity :: Maybe Natural
$sel:backgroundOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
backgroundOpacity} -> Maybe Natural
backgroundOpacity) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:backgroundOpacity:DvbSubDestinationSettings' :: Maybe Natural
backgroundOpacity = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the font that you want the service to use for your burn in
-- captions when your input captions specify a font that MediaConvert
-- doesn\'t support. When you set Fallback font (FallbackFont) to best
-- match (BEST_MATCH), or leave blank, MediaConvert uses a supported font
-- that most closely matches the font that your input captions specify.
-- When there are multiple unsupported fonts in your input captions,
-- MediaConvert matches each font with the supported font that matches
-- best. When you explicitly choose a replacement font, MediaConvert uses
-- that font to replace all unsupported fonts from your input.
dvbSubDestinationSettings_fallbackFont :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubSubtitleFallbackFont)
dvbSubDestinationSettings_fallbackFont :: (Maybe DvbSubSubtitleFallbackFont
 -> f (Maybe DvbSubSubtitleFallbackFont))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fallbackFont = (DvbSubDestinationSettings -> Maybe DvbSubSubtitleFallbackFont)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubSubtitleFallbackFont -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubSubtitleFallbackFont)
     (Maybe DvbSubSubtitleFallbackFont)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubSubtitleFallbackFont
fallbackFont :: Maybe DvbSubSubtitleFallbackFont
$sel:fallbackFont:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubSubtitleFallbackFont
fallbackFont} -> Maybe DvbSubSubtitleFallbackFont
fallbackFont) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubSubtitleFallbackFont
a -> DvbSubDestinationSettings
s {$sel:fallbackFont:DvbSubDestinationSettings' :: Maybe DvbSubSubtitleFallbackFont
fallbackFont = Maybe DvbSubSubtitleFallbackFont
a} :: DvbSubDestinationSettings)

-- | Specify the height, in pixels, of this set of DVB-Sub captions. The
-- default value is 576 pixels. Related setting: When you use this setting,
-- you must set DDS handling (ddsHandling) to a value other than None
-- (NONE). All burn-in and DVB-Sub font settings must match.
dvbSubDestinationSettings_height :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_height :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_height = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
height :: Maybe Natural
$sel:height:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
height} -> Maybe Natural
height) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:height:DvbSubDestinationSettings' :: Maybe Natural
height = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the opacity of the burned-in captions. 255 is opaque; 0 is
-- transparent. Within your job settings, all of your DVB-Sub settings must
-- be identical.
dvbSubDestinationSettings_fontOpacity :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_fontOpacity :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fontOpacity = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
fontOpacity :: Maybe Natural
$sel:fontOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
fontOpacity} -> Maybe Natural
fontOpacity) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:fontOpacity:DvbSubDestinationSettings' :: Maybe Natural
fontOpacity = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the vertical offset of the shadow relative to the captions in
-- pixels. A value of -2 would result in a shadow offset 2 pixels above the
-- text. Leave Shadow y-offset (ShadowYOffset) blank and set Style
-- passthrough (StylePassthrough) to enabled to use the shadow y-offset
-- data from your input captions, if present. Within your job settings, all
-- of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_shadowYOffset :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Int)
dvbSubDestinationSettings_shadowYOffset :: (Maybe Int -> f (Maybe Int))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_shadowYOffset = (DvbSubDestinationSettings -> Maybe Int)
-> (DvbSubDestinationSettings
    -> Maybe Int -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Int
shadowYOffset :: Maybe Int
$sel:shadowYOffset:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Int
shadowYOffset} -> Maybe Int
shadowYOffset) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Int
a -> DvbSubDestinationSettings
s {$sel:shadowYOffset:DvbSubDestinationSettings' :: Maybe Int
shadowYOffset = Maybe Int
a} :: DvbSubDestinationSettings)

-- | Specify the Font resolution (FontResolution) in DPI (dots per inch).
-- Within your job settings, all of your DVB-Sub settings must be
-- identical.
dvbSubDestinationSettings_fontResolution :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_fontResolution :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fontResolution = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
fontResolution :: Maybe Natural
$sel:fontResolution:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
fontResolution} -> Maybe Natural
fontResolution) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:fontResolution:DvbSubDestinationSettings' :: Maybe Natural
fontResolution = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the vertical position (YPosition) of the captions, relative to
-- the top of the output in pixels. A value of 10 would result in the
-- captions starting 10 pixels from the top of the output. If no explicit
-- y_position is provided, the caption will be positioned towards the
-- bottom of the output. Within your job settings, all of your DVB-Sub
-- settings must be identical.
dvbSubDestinationSettings_yPosition :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_yPosition :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_yPosition = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
yPosition :: Maybe Natural
$sel:yPosition:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
yPosition} -> Maybe Natural
yPosition) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:yPosition:DvbSubDestinationSettings' :: Maybe Natural
yPosition = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Use this setting, along with DDS x-coordinate (ddsXCoordinate), to
-- specify the upper left corner of the display definition segment (DDS)
-- display window. With this setting, specify the distance, in pixels,
-- between the top of the frame and the top of the DDS display window. Keep
-- the default value, 0, to have MediaConvert automatically choose this
-- offset. Related setting: When you use this setting, you must set DDS
-- handling (ddsHandling) to a value other than None (NONE). MediaConvert
-- uses these values to determine whether to write page position data to
-- the DDS or to the page composition segment (PCS). All burn-in and
-- DVB-Sub font settings must match.
dvbSubDestinationSettings_ddsYCoordinate :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_ddsYCoordinate :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_ddsYCoordinate = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
ddsYCoordinate :: Maybe Natural
$sel:ddsYCoordinate:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
ddsYCoordinate} -> Maybe Natural
ddsYCoordinate) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:ddsYCoordinate:DvbSubDestinationSettings' :: Maybe Natural
ddsYCoordinate = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the color of the rectangle behind the captions. Leave background
-- color (BackgroundColor) blank and set Style passthrough
-- (StylePassthrough) to enabled to use the background color data from your
-- input captions, if present.
dvbSubDestinationSettings_backgroundColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleBackgroundColor)
dvbSubDestinationSettings_backgroundColor :: (Maybe DvbSubtitleBackgroundColor
 -> f (Maybe DvbSubtitleBackgroundColor))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_backgroundColor = (DvbSubDestinationSettings -> Maybe DvbSubtitleBackgroundColor)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleBackgroundColor -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleBackgroundColor)
     (Maybe DvbSubtitleBackgroundColor)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleBackgroundColor
backgroundColor :: Maybe DvbSubtitleBackgroundColor
$sel:backgroundColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleBackgroundColor
backgroundColor} -> Maybe DvbSubtitleBackgroundColor
backgroundColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleBackgroundColor
a -> DvbSubDestinationSettings
s {$sel:backgroundColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleBackgroundColor
backgroundColor = Maybe DvbSubtitleBackgroundColor
a} :: DvbSubDestinationSettings)

-- | Specify the horizontal offset of the shadow, relative to the captions in
-- pixels. A value of -2 would result in a shadow offset 2 pixels to the
-- left. Within your job settings, all of your DVB-Sub settings must be
-- identical.
dvbSubDestinationSettings_shadowXOffset :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Int)
dvbSubDestinationSettings_shadowXOffset :: (Maybe Int -> f (Maybe Int))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_shadowXOffset = (DvbSubDestinationSettings -> Maybe Int)
-> (DvbSubDestinationSettings
    -> Maybe Int -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Int)
     (Maybe Int)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Int
shadowXOffset :: Maybe Int
$sel:shadowXOffset:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Int
shadowXOffset} -> Maybe Int
shadowXOffset) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Int
a -> DvbSubDestinationSettings
s {$sel:shadowXOffset:DvbSubDestinationSettings' :: Maybe Int
shadowXOffset = Maybe Int
a} :: DvbSubDestinationSettings)

-- | Specify the Font size (FontSize) in pixels. Must be a positive integer.
-- Set to 0, or leave blank, for automatic font size. Within your job
-- settings, all of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_fontSize :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_fontSize :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fontSize = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
fontSize :: Maybe Natural
$sel:fontSize:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
fontSize} -> Maybe Natural
fontSize) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:fontSize:DvbSubDestinationSettings' :: Maybe Natural
fontSize = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the width, in pixels, of this set of DVB-Sub captions. The
-- default value is 720 pixels. Related setting: When you use this setting,
-- you must set DDS handling (ddsHandling) to a value other than None
-- (NONE). All burn-in and DVB-Sub font settings must match.
dvbSubDestinationSettings_width :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_width :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_width = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
width :: Maybe Natural
$sel:width:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
width} -> Maybe Natural
width) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:width:DvbSubDestinationSettings' :: Maybe Natural
width = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Use this setting, along with DDS y-coordinate (ddsYCoordinate), to
-- specify the upper left corner of the display definition segment (DDS)
-- display window. With this setting, specify the distance, in pixels,
-- between the left side of the frame and the left side of the DDS display
-- window. Keep the default value, 0, to have MediaConvert automatically
-- choose this offset. Related setting: When you use this setting, you must
-- set DDS handling (ddsHandling) to a value other than None (NONE).
-- MediaConvert uses these values to determine whether to write page
-- position data to the DDS or to the page composition segment (PCS). All
-- burn-in and DVB-Sub font settings must match.
dvbSubDestinationSettings_ddsXCoordinate :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_ddsXCoordinate :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_ddsXCoordinate = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
ddsXCoordinate :: Maybe Natural
$sel:ddsXCoordinate:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
ddsXCoordinate} -> Maybe Natural
ddsXCoordinate) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:ddsXCoordinate:DvbSubDestinationSettings' :: Maybe Natural
ddsXCoordinate = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the horizontal position (XPosition) of the captions, relative to
-- the left side of the outputin pixels. A value of 10 would result in the
-- captions starting 10 pixels from the left ofthe output. If no explicit
-- x_position is provided, the horizontal caption position will
-- bedetermined by the alignment parameter. Within your job settings, all
-- of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_xPosition :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_xPosition :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_xPosition = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
xPosition :: Maybe Natural
$sel:xPosition:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
xPosition} -> Maybe Natural
xPosition) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:xPosition:DvbSubDestinationSettings' :: Maybe Natural
xPosition = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify whether the Text spacing (TextSpacing) in your captions is set
-- by the captions grid, or varies depending on letter width. Choose fixed
-- grid (FIXED_GRID) to conform to the spacing specified in the captions
-- file more accurately. Choose proportional (PROPORTIONAL) to make the
-- text easier to read for closed captions. Within your job settings, all
-- of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_teletextSpacing :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleTeletextSpacing)
dvbSubDestinationSettings_teletextSpacing :: (Maybe DvbSubtitleTeletextSpacing
 -> f (Maybe DvbSubtitleTeletextSpacing))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_teletextSpacing = (DvbSubDestinationSettings -> Maybe DvbSubtitleTeletextSpacing)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleTeletextSpacing -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleTeletextSpacing)
     (Maybe DvbSubtitleTeletextSpacing)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleTeletextSpacing
teletextSpacing :: Maybe DvbSubtitleTeletextSpacing
$sel:teletextSpacing:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleTeletextSpacing
teletextSpacing} -> Maybe DvbSubtitleTeletextSpacing
teletextSpacing) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleTeletextSpacing
a -> DvbSubDestinationSettings
s {$sel:teletextSpacing:DvbSubDestinationSettings' :: Maybe DvbSubtitleTeletextSpacing
teletextSpacing = Maybe DvbSubtitleTeletextSpacing
a} :: DvbSubDestinationSettings)

-- | Set Font script (FontScript) to Automatically determined (AUTOMATIC), or
-- leave blank, to automatically determine the font script in your input
-- captions. Otherwise, set to Simplified Chinese (HANS) or Traditional
-- Chinese (HANT) if your input font script uses Simplified or Traditional
-- Chinese. Within your job settings, all of your DVB-Sub settings must be
-- identical.
dvbSubDestinationSettings_fontScript :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe FontScript)
dvbSubDestinationSettings_fontScript :: (Maybe FontScript -> f (Maybe FontScript))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fontScript = (DvbSubDestinationSettings -> Maybe FontScript)
-> (DvbSubDestinationSettings
    -> Maybe FontScript -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe FontScript)
     (Maybe FontScript)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe FontScript
fontScript :: Maybe FontScript
$sel:fontScript:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe FontScript
fontScript} -> Maybe FontScript
fontScript) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe FontScript
a -> DvbSubDestinationSettings
s {$sel:fontScript:DvbSubDestinationSettings' :: Maybe FontScript
fontScript = Maybe FontScript
a} :: DvbSubDestinationSettings)

-- | Specify the alignment of your captions. If no explicit x_position is
-- provided, setting alignment to centered will placethe captions at the
-- bottom center of the output. Similarly, setting a left alignment
-- willalign captions to the bottom left of the output. If x and y
-- positions are given in conjunction with the alignment parameter, the
-- font will be justified (either left or centered) relative to those
-- coordinates. Within your job settings, all of your DVB-Sub settings must
-- be identical.
dvbSubDestinationSettings_alignment :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleAlignment)
dvbSubDestinationSettings_alignment :: (Maybe DvbSubtitleAlignment -> f (Maybe DvbSubtitleAlignment))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_alignment = (DvbSubDestinationSettings -> Maybe DvbSubtitleAlignment)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleAlignment -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleAlignment)
     (Maybe DvbSubtitleAlignment)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleAlignment
alignment :: Maybe DvbSubtitleAlignment
$sel:alignment:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleAlignment
alignment} -> Maybe DvbSubtitleAlignment
alignment) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleAlignment
a -> DvbSubDestinationSettings
s {$sel:alignment:DvbSubDestinationSettings' :: Maybe DvbSubtitleAlignment
alignment = Maybe DvbSubtitleAlignment
a} :: DvbSubDestinationSettings)

-- | Specify the opacity of the shadow. Enter a value from 0 to 255, where 0
-- is transparent and 255 is opaque. If Style passthrough
-- (StylePassthrough) is set to Enabled, leave Shadow opacity
-- (ShadowOpacity) blank to pass through the shadow style information in
-- your input captions to your output captions. If Style passthrough is set
-- to disabled, leave blank to use a value of 0 and remove all shadows from
-- your output captions. Within your job settings, all of your DVB-Sub
-- settings must be identical.
dvbSubDestinationSettings_shadowOpacity :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_shadowOpacity :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_shadowOpacity = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
shadowOpacity :: Maybe Natural
$sel:shadowOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
shadowOpacity} -> Maybe Natural
shadowOpacity) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:shadowOpacity:DvbSubDestinationSettings' :: Maybe Natural
shadowOpacity = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Ignore this setting unless Style Passthrough (StylePassthrough) is set
-- to Enabled and Font color (FontColor) set to Black, Yellow, Red, Green,
-- Blue, or Hex. Use Apply font color (ApplyFontColor) for additional font
-- color controls. When you choose White text only (WHITE_TEXT_ONLY), or
-- leave blank, your font color setting only applies to white text in your
-- input captions. For example, if your font color setting is Yellow, and
-- your input captions have red and white text, your output captions will
-- have red and yellow text. When you choose ALL_TEXT, your font color
-- setting applies to all of your output captions text.
dvbSubDestinationSettings_applyFontColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleApplyFontColor)
dvbSubDestinationSettings_applyFontColor :: (Maybe DvbSubtitleApplyFontColor
 -> f (Maybe DvbSubtitleApplyFontColor))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_applyFontColor = (DvbSubDestinationSettings -> Maybe DvbSubtitleApplyFontColor)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleApplyFontColor -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleApplyFontColor)
     (Maybe DvbSubtitleApplyFontColor)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleApplyFontColor
applyFontColor :: Maybe DvbSubtitleApplyFontColor
$sel:applyFontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleApplyFontColor
applyFontColor} -> Maybe DvbSubtitleApplyFontColor
applyFontColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleApplyFontColor
a -> DvbSubDestinationSettings
s {$sel:applyFontColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleApplyFontColor
applyFontColor = Maybe DvbSubtitleApplyFontColor
a} :: DvbSubDestinationSettings)

-- | Set Style passthrough (StylePassthrough) to ENABLED to use the available
-- style, color, and position information from your input captions.
-- MediaConvert uses default settings for any missing style and position
-- information in your input captions. Set Style passthrough to DISABLED,
-- or leave blank, to ignore the style and position information from your
-- input captions and use default settings: white text with black
-- outlining, bottom-center positioning, and automatic sizing. Whether you
-- set Style passthrough to enabled or not, you can also choose to manually
-- override any of the individual style and position settings.
dvbSubDestinationSettings_stylePassthrough :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleStylePassthrough)
dvbSubDestinationSettings_stylePassthrough :: (Maybe DvbSubtitleStylePassthrough
 -> f (Maybe DvbSubtitleStylePassthrough))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_stylePassthrough = (DvbSubDestinationSettings -> Maybe DvbSubtitleStylePassthrough)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleStylePassthrough -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleStylePassthrough)
     (Maybe DvbSubtitleStylePassthrough)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleStylePassthrough
stylePassthrough :: Maybe DvbSubtitleStylePassthrough
$sel:stylePassthrough:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleStylePassthrough
stylePassthrough} -> Maybe DvbSubtitleStylePassthrough
stylePassthrough) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleStylePassthrough
a -> DvbSubDestinationSettings
s {$sel:stylePassthrough:DvbSubDestinationSettings' :: Maybe DvbSubtitleStylePassthrough
stylePassthrough = Maybe DvbSubtitleStylePassthrough
a} :: DvbSubDestinationSettings)

-- | Specify font outline color. Leave Outline color (OutlineColor) blank and
-- set Style passthrough (StylePassthrough) to enabled to use the font
-- outline color data from your input captions, if present. Within your job
-- settings, all of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_outlineColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleOutlineColor)
dvbSubDestinationSettings_outlineColor :: (Maybe DvbSubtitleOutlineColor
 -> f (Maybe DvbSubtitleOutlineColor))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_outlineColor = (DvbSubDestinationSettings -> Maybe DvbSubtitleOutlineColor)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleOutlineColor -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleOutlineColor)
     (Maybe DvbSubtitleOutlineColor)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleOutlineColor
outlineColor :: Maybe DvbSubtitleOutlineColor
$sel:outlineColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleOutlineColor
outlineColor} -> Maybe DvbSubtitleOutlineColor
outlineColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleOutlineColor
a -> DvbSubDestinationSettings
s {$sel:outlineColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleOutlineColor
outlineColor = Maybe DvbSubtitleOutlineColor
a} :: DvbSubDestinationSettings)

-- | Specify the Outline size (OutlineSize) of the caption text, in pixels.
-- Leave Outline size blank and set Style passthrough (StylePassthrough) to
-- enabled to use the outline size data from your input captions, if
-- present. Within your job settings, all of your DVB-Sub settings must be
-- identical.
dvbSubDestinationSettings_outlineSize :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Natural)
dvbSubDestinationSettings_outlineSize :: (Maybe Natural -> f (Maybe Natural))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_outlineSize = (DvbSubDestinationSettings -> Maybe Natural)
-> (DvbSubDestinationSettings
    -> Maybe Natural -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Natural
outlineSize :: Maybe Natural
$sel:outlineSize:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
outlineSize} -> Maybe Natural
outlineSize) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Natural
a -> DvbSubDestinationSettings
s {$sel:outlineSize:DvbSubDestinationSettings' :: Maybe Natural
outlineSize = Maybe Natural
a} :: DvbSubDestinationSettings)

-- | Specify the color of the shadow cast by the captions. Leave Shadow color
-- (ShadowColor) blank and set Style passthrough (StylePassthrough) to
-- enabled to use the shadow color data from your input captions, if
-- present. Within your job settings, all of your DVB-Sub settings must be
-- identical.
dvbSubDestinationSettings_shadowColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleShadowColor)
dvbSubDestinationSettings_shadowColor :: (Maybe DvbSubtitleShadowColor -> f (Maybe DvbSubtitleShadowColor))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_shadowColor = (DvbSubDestinationSettings -> Maybe DvbSubtitleShadowColor)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleShadowColor -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleShadowColor)
     (Maybe DvbSubtitleShadowColor)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleShadowColor
shadowColor :: Maybe DvbSubtitleShadowColor
$sel:shadowColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleShadowColor
shadowColor} -> Maybe DvbSubtitleShadowColor
shadowColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleShadowColor
a -> DvbSubDestinationSettings
s {$sel:shadowColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleShadowColor
shadowColor = Maybe DvbSubtitleShadowColor
a} :: DvbSubDestinationSettings)

-- | Ignore this setting unless your Font color is set to Hex. Enter either
-- six or eight hexidecimal digits, representing red, green, and blue, with
-- two optional extra digits for alpha. For example a value of 1122AABB is
-- a red value of 0x11, a green value of 0x22, a blue value of 0xAA, and an
-- alpha value of 0xBB.
dvbSubDestinationSettings_hexFontColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe Prelude.Text)
dvbSubDestinationSettings_hexFontColor :: (Maybe Text -> f (Maybe Text))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_hexFontColor = (DvbSubDestinationSettings -> Maybe Text)
-> (DvbSubDestinationSettings
    -> Maybe Text -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe Text
hexFontColor :: Maybe Text
$sel:hexFontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Text
hexFontColor} -> Maybe Text
hexFontColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe Text
a -> DvbSubDestinationSettings
s {$sel:hexFontColor:DvbSubDestinationSettings' :: Maybe Text
hexFontColor = Maybe Text
a} :: DvbSubDestinationSettings)

-- | Specify the color of the captions text. Leave Font color (FontColor)
-- blank and set Style passthrough (StylePassthrough) to enabled to use the
-- font color data from your input captions, if present. Within your job
-- settings, all of your DVB-Sub settings must be identical.
dvbSubDestinationSettings_fontColor :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitleFontColor)
dvbSubDestinationSettings_fontColor :: (Maybe DvbSubtitleFontColor -> f (Maybe DvbSubtitleFontColor))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_fontColor = (DvbSubDestinationSettings -> Maybe DvbSubtitleFontColor)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitleFontColor -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitleFontColor)
     (Maybe DvbSubtitleFontColor)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitleFontColor
fontColor :: Maybe DvbSubtitleFontColor
$sel:fontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleFontColor
fontColor} -> Maybe DvbSubtitleFontColor
fontColor) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitleFontColor
a -> DvbSubDestinationSettings
s {$sel:fontColor:DvbSubDestinationSettings' :: Maybe DvbSubtitleFontColor
fontColor = Maybe DvbSubtitleFontColor
a} :: DvbSubDestinationSettings)

-- | Specify whether your DVB subtitles are standard or for hearing impaired.
-- Choose hearing impaired if your subtitles include audio descriptions and
-- dialogue. Choose standard if your subtitles include only dialogue.
dvbSubDestinationSettings_subtitlingType :: Lens.Lens' DvbSubDestinationSettings (Prelude.Maybe DvbSubtitlingType)
dvbSubDestinationSettings_subtitlingType :: (Maybe DvbSubtitlingType -> f (Maybe DvbSubtitlingType))
-> DvbSubDestinationSettings -> f DvbSubDestinationSettings
dvbSubDestinationSettings_subtitlingType = (DvbSubDestinationSettings -> Maybe DvbSubtitlingType)
-> (DvbSubDestinationSettings
    -> Maybe DvbSubtitlingType -> DvbSubDestinationSettings)
-> Lens
     DvbSubDestinationSettings
     DvbSubDestinationSettings
     (Maybe DvbSubtitlingType)
     (Maybe DvbSubtitlingType)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DvbSubDestinationSettings' {Maybe DvbSubtitlingType
subtitlingType :: Maybe DvbSubtitlingType
$sel:subtitlingType:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitlingType
subtitlingType} -> Maybe DvbSubtitlingType
subtitlingType) (\s :: DvbSubDestinationSettings
s@DvbSubDestinationSettings' {} Maybe DvbSubtitlingType
a -> DvbSubDestinationSettings
s {$sel:subtitlingType:DvbSubDestinationSettings' :: Maybe DvbSubtitlingType
subtitlingType = Maybe DvbSubtitlingType
a} :: DvbSubDestinationSettings)

instance Core.FromJSON DvbSubDestinationSettings where
  parseJSON :: Value -> Parser DvbSubDestinationSettings
parseJSON =
    String
-> (Object -> Parser DvbSubDestinationSettings)
-> Value
-> Parser DvbSubDestinationSettings
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"DvbSubDestinationSettings"
      ( \Object
x ->
          Maybe DvbddsHandling
-> Maybe Natural
-> Maybe DvbSubSubtitleFallbackFont
-> Maybe Natural
-> Maybe Natural
-> Maybe Int
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe DvbSubtitleBackgroundColor
-> Maybe Int
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe Natural
-> Maybe DvbSubtitleTeletextSpacing
-> Maybe FontScript
-> Maybe DvbSubtitleAlignment
-> Maybe Natural
-> Maybe DvbSubtitleApplyFontColor
-> Maybe DvbSubtitleStylePassthrough
-> Maybe DvbSubtitleOutlineColor
-> Maybe Natural
-> Maybe DvbSubtitleShadowColor
-> Maybe Text
-> Maybe DvbSubtitleFontColor
-> Maybe DvbSubtitlingType
-> DvbSubDestinationSettings
DvbSubDestinationSettings'
            (Maybe DvbddsHandling
 -> Maybe Natural
 -> Maybe DvbSubSubtitleFallbackFont
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe Int
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe DvbSubtitleBackgroundColor
 -> Maybe Int
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe Natural
 -> Maybe DvbSubtitleTeletextSpacing
 -> Maybe FontScript
 -> Maybe DvbSubtitleAlignment
 -> Maybe Natural
 -> Maybe DvbSubtitleApplyFontColor
 -> Maybe DvbSubtitleStylePassthrough
 -> Maybe DvbSubtitleOutlineColor
 -> Maybe Natural
 -> Maybe DvbSubtitleShadowColor
 -> Maybe Text
 -> Maybe DvbSubtitleFontColor
 -> Maybe DvbSubtitlingType
 -> DvbSubDestinationSettings)
-> Parser (Maybe DvbddsHandling)
-> Parser
     (Maybe Natural
      -> Maybe DvbSubSubtitleFallbackFont
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe DvbddsHandling)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ddsHandling")
            Parser
  (Maybe Natural
   -> Maybe DvbSubSubtitleFallbackFont
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe DvbSubSubtitleFallbackFont
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"backgroundOpacity")
            Parser
  (Maybe DvbSubSubtitleFallbackFont
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubSubtitleFallbackFont)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubSubtitleFallbackFont)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fallbackFont")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"height")
            Parser
  (Maybe Natural
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"fontOpacity")
            Parser
  (Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Int)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"shadowYOffset")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"fontResolution")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"yPosition")
            Parser
  (Maybe Natural
   -> Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe DvbSubtitleBackgroundColor
      -> Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"ddsYCoordinate")
            Parser
  (Maybe DvbSubtitleBackgroundColor
   -> Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleBackgroundColor)
-> Parser
     (Maybe Int
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleBackgroundColor)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"backgroundColor")
            Parser
  (Maybe Int
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Int)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Int)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"shadowXOffset")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"fontSize")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"width")
            Parser
  (Maybe Natural
   -> Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe Natural
      -> Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"ddsXCoordinate")
            Parser
  (Maybe Natural
   -> Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe DvbSubtitleTeletextSpacing
      -> Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"xPosition")
            Parser
  (Maybe DvbSubtitleTeletextSpacing
   -> Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleTeletextSpacing)
-> Parser
     (Maybe FontScript
      -> Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleTeletextSpacing)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"teletextSpacing")
            Parser
  (Maybe FontScript
   -> Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe FontScript)
-> Parser
     (Maybe DvbSubtitleAlignment
      -> Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe FontScript)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fontScript")
            Parser
  (Maybe DvbSubtitleAlignment
   -> Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleAlignment)
-> Parser
     (Maybe Natural
      -> Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleAlignment)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"alignment")
            Parser
  (Maybe Natural
   -> Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe DvbSubtitleApplyFontColor
      -> Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"shadowOpacity")
            Parser
  (Maybe DvbSubtitleApplyFontColor
   -> Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleApplyFontColor)
-> Parser
     (Maybe DvbSubtitleStylePassthrough
      -> Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleApplyFontColor)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"applyFontColor")
            Parser
  (Maybe DvbSubtitleStylePassthrough
   -> Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleStylePassthrough)
-> Parser
     (Maybe DvbSubtitleOutlineColor
      -> Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleStylePassthrough)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"stylePassthrough")
            Parser
  (Maybe DvbSubtitleOutlineColor
   -> Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleOutlineColor)
-> Parser
     (Maybe Natural
      -> Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleOutlineColor)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"outlineColor")
            Parser
  (Maybe Natural
   -> Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Natural)
-> Parser
     (Maybe DvbSubtitleShadowColor
      -> Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
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
"outlineSize")
            Parser
  (Maybe DvbSubtitleShadowColor
   -> Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleShadowColor)
-> Parser
     (Maybe Text
      -> Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType
      -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleShadowColor)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"shadowColor")
            Parser
  (Maybe Text
   -> Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType
   -> DvbSubDestinationSettings)
-> Parser (Maybe Text)
-> Parser
     (Maybe DvbSubtitleFontColor
      -> Maybe DvbSubtitlingType -> DvbSubDestinationSettings)
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
"hexFontColor")
            Parser
  (Maybe DvbSubtitleFontColor
   -> Maybe DvbSubtitlingType -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitleFontColor)
-> Parser (Maybe DvbSubtitlingType -> DvbSubDestinationSettings)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitleFontColor)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fontColor")
            Parser (Maybe DvbSubtitlingType -> DvbSubDestinationSettings)
-> Parser (Maybe DvbSubtitlingType)
-> Parser DvbSubDestinationSettings
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DvbSubtitlingType)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"subtitlingType")
      )

instance Prelude.Hashable DvbSubDestinationSettings

instance Prelude.NFData DvbSubDestinationSettings

instance Core.ToJSON DvbSubDestinationSettings where
  toJSON :: DvbSubDestinationSettings -> Value
toJSON DvbSubDestinationSettings' {Maybe Int
Maybe Natural
Maybe Text
Maybe DvbSubSubtitleFallbackFont
Maybe DvbSubtitleAlignment
Maybe DvbSubtitleApplyFontColor
Maybe DvbSubtitleBackgroundColor
Maybe DvbSubtitleFontColor
Maybe DvbSubtitleOutlineColor
Maybe DvbSubtitleShadowColor
Maybe DvbSubtitleStylePassthrough
Maybe DvbSubtitleTeletextSpacing
Maybe DvbSubtitlingType
Maybe DvbddsHandling
Maybe FontScript
subtitlingType :: Maybe DvbSubtitlingType
fontColor :: Maybe DvbSubtitleFontColor
hexFontColor :: Maybe Text
shadowColor :: Maybe DvbSubtitleShadowColor
outlineSize :: Maybe Natural
outlineColor :: Maybe DvbSubtitleOutlineColor
stylePassthrough :: Maybe DvbSubtitleStylePassthrough
applyFontColor :: Maybe DvbSubtitleApplyFontColor
shadowOpacity :: Maybe Natural
alignment :: Maybe DvbSubtitleAlignment
fontScript :: Maybe FontScript
teletextSpacing :: Maybe DvbSubtitleTeletextSpacing
xPosition :: Maybe Natural
ddsXCoordinate :: Maybe Natural
width :: Maybe Natural
fontSize :: Maybe Natural
shadowXOffset :: Maybe Int
backgroundColor :: Maybe DvbSubtitleBackgroundColor
ddsYCoordinate :: Maybe Natural
yPosition :: Maybe Natural
fontResolution :: Maybe Natural
shadowYOffset :: Maybe Int
fontOpacity :: Maybe Natural
height :: Maybe Natural
fallbackFont :: Maybe DvbSubSubtitleFallbackFont
backgroundOpacity :: Maybe Natural
ddsHandling :: Maybe DvbddsHandling
$sel:subtitlingType:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitlingType
$sel:fontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleFontColor
$sel:hexFontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Text
$sel:shadowColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleShadowColor
$sel:outlineSize:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:outlineColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleOutlineColor
$sel:stylePassthrough:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleStylePassthrough
$sel:applyFontColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleApplyFontColor
$sel:shadowOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:alignment:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleAlignment
$sel:fontScript:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe FontScript
$sel:teletextSpacing:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleTeletextSpacing
$sel:xPosition:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:ddsXCoordinate:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:width:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:fontSize:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:shadowXOffset:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Int
$sel:backgroundColor:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubtitleBackgroundColor
$sel:ddsYCoordinate:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:yPosition:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:fontResolution:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:shadowYOffset:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Int
$sel:fontOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:height:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:fallbackFont:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbSubSubtitleFallbackFont
$sel:backgroundOpacity:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe Natural
$sel:ddsHandling:DvbSubDestinationSettings' :: DvbSubDestinationSettings -> Maybe DvbddsHandling
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"ddsHandling" Text -> DvbddsHandling -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbddsHandling -> Pair) -> Maybe DvbddsHandling -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbddsHandling
ddsHandling,
            (Text
"backgroundOpacity" 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
backgroundOpacity,
            (Text
"fallbackFont" Text -> DvbSubSubtitleFallbackFont -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbSubSubtitleFallbackFont -> Pair)
-> Maybe DvbSubSubtitleFallbackFont -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubSubtitleFallbackFont
fallbackFont,
            (Text
"height" 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
height,
            (Text
"fontOpacity" 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
fontOpacity,
            (Text
"shadowYOffset" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
shadowYOffset,
            (Text
"fontResolution" 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
fontResolution,
            (Text
"yPosition" 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
yPosition,
            (Text
"ddsYCoordinate" 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
ddsYCoordinate,
            (Text
"backgroundColor" Text -> DvbSubtitleBackgroundColor -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DvbSubtitleBackgroundColor -> Pair)
-> Maybe DvbSubtitleBackgroundColor -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleBackgroundColor
backgroundColor,
            (Text
"shadowXOffset" Text -> Int -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (Int -> Pair) -> Maybe Int -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Int
shadowXOffset,
            (Text
"fontSize" 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
fontSize,
            (Text
"width" 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
width,
            (Text
"ddsXCoordinate" 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
ddsXCoordinate,
            (Text
"xPosition" 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
xPosition,
            (Text
"teletextSpacing" Text -> DvbSubtitleTeletextSpacing -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DvbSubtitleTeletextSpacing -> Pair)
-> Maybe DvbSubtitleTeletextSpacing -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleTeletextSpacing
teletextSpacing,
            (Text
"fontScript" Text -> FontScript -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (FontScript -> Pair) -> Maybe FontScript -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe FontScript
fontScript,
            (Text
"alignment" Text -> DvbSubtitleAlignment -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbSubtitleAlignment -> Pair)
-> Maybe DvbSubtitleAlignment -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleAlignment
alignment,
            (Text
"shadowOpacity" 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
shadowOpacity,
            (Text
"applyFontColor" Text -> DvbSubtitleApplyFontColor -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DvbSubtitleApplyFontColor -> Pair)
-> Maybe DvbSubtitleApplyFontColor -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleApplyFontColor
applyFontColor,
            (Text
"stylePassthrough" Text -> DvbSubtitleStylePassthrough -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DvbSubtitleStylePassthrough -> Pair)
-> Maybe DvbSubtitleStylePassthrough -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleStylePassthrough
stylePassthrough,
            (Text
"outlineColor" Text -> DvbSubtitleOutlineColor -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbSubtitleOutlineColor -> Pair)
-> Maybe DvbSubtitleOutlineColor -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleOutlineColor
outlineColor,
            (Text
"outlineSize" 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
outlineSize,
            (Text
"shadowColor" Text -> DvbSubtitleShadowColor -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbSubtitleShadowColor -> Pair)
-> Maybe DvbSubtitleShadowColor -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleShadowColor
shadowColor,
            (Text
"hexFontColor" 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
hexFontColor,
            (Text
"fontColor" Text -> DvbSubtitleFontColor -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (DvbSubtitleFontColor -> Pair)
-> Maybe DvbSubtitleFontColor -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitleFontColor
fontColor,
            (Text
"subtitlingType" Text -> DvbSubtitlingType -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DvbSubtitlingType -> Pair)
-> Maybe DvbSubtitlingType -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DvbSubtitlingType
subtitlingType
          ]
      )