{-# 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.ElasticTranscoder.Types.PresetWatermark -- Copyright : (c) 2013-2023 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) module Amazonka.ElasticTranscoder.Types.PresetWatermark where import qualified Amazonka.Core as Core import qualified Amazonka.Core.Lens.Internal as Lens import qualified Amazonka.Data as Data import qualified Amazonka.Prelude as Prelude -- | Settings for the size, location, and opacity of graphics that you want -- Elastic Transcoder to overlay over videos that are transcoded using this -- preset. You can specify settings for up to four watermarks. Watermarks -- appear in the specified size and location, and with the specified -- opacity for the duration of the transcoded video. -- -- Watermarks can be in .png or .jpg format. If you want to display a -- watermark that is not rectangular, use the .png format, which supports -- transparency. -- -- When you create a job that uses this preset, you specify the .png or -- .jpg graphics that you want Elastic Transcoder to include in the -- transcoded videos. You can specify fewer graphics in the job than you -- specify watermark settings in the preset, which allows you to use the -- same preset for up to four watermarks that have different dimensions. -- -- /See:/ 'newPresetWatermark' smart constructor. data PresetWatermark = PresetWatermark' { -- | The horizontal position of the watermark unless you specify a non-zero -- value for @HorizontalOffset@: -- -- - __Left__: The left edge of the watermark is aligned with the left -- border of the video. -- -- - __Right__: The right edge of the watermark is aligned with the right -- border of the video. -- -- - __Center__: The watermark is centered between the left and right -- borders. PresetWatermark -> Maybe Text horizontalAlign :: Prelude.Maybe Prelude.Text, -- | The amount by which you want the horizontal position of the watermark to -- be offset from the position specified by HorizontalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of MaxWidth. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify Left for @HorizontalAlign@ and 5px for -- @HorizontalOffset@, the left side of the watermark appears 5 pixels from -- the left border of the output video. -- -- @HorizontalOffset@ is only valid when the value of @HorizontalAlign@ is -- @Left@ or @Right@. If you specify an offset that causes the watermark to -- extend beyond the left or right border and Elastic Transcoder has not -- added black bars, the watermark is cropped. If Elastic Transcoder has -- added black bars, the watermark extends into the black bars. If the -- watermark extends beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want to include the -- black bars that are added by Elastic Transcoder, if any, in the offset -- calculation. PresetWatermark -> Maybe Text horizontalOffset :: Prelude.Maybe Prelude.Text, -- | A unique identifier for the settings for one watermark. The value of -- @Id@ can be up to 40 characters long. PresetWatermark -> Maybe Text id :: Prelude.Maybe Prelude.Text, -- | The maximum height of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to the -- value of @MaxHeight@. PresetWatermark -> Maybe Text maxHeight :: Prelude.Maybe Prelude.Text, -- | The maximum width of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxWidth@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to -- the value of @MaxWidth@. PresetWatermark -> Maybe Text maxWidth :: Prelude.Maybe Prelude.Text, -- | A percentage that indicates how much you want a watermark to obscure the -- video in the location where it appears. Valid values are 0 (the -- watermark is invisible) to 100 (the watermark completely obscures the -- video in the specified location). The datatype of @Opacity@ is float. -- -- Elastic Transcoder supports transparent .png graphics. If you use a -- transparent .png, the transparent portion of the video appears as if you -- had specified a value of 0 for @Opacity@. The .jpg file format doesn\'t -- support transparency. PresetWatermark -> Maybe Text opacity :: Prelude.Maybe Prelude.Text, -- | A value that controls scaling of the watermark: -- -- - __Fit__: Elastic Transcoder scales the watermark so it matches the -- value that you specified in either @MaxWidth@ or @MaxHeight@ without -- exceeding the other value. -- -- - __Stretch__: Elastic Transcoder stretches the watermark to match the -- values that you specified for @MaxWidth@ and @MaxHeight@. If the -- relative proportions of the watermark and the values of @MaxWidth@ -- and @MaxHeight@ are different, the watermark will be distorted. -- -- - __ShrinkToFit__: Elastic Transcoder scales the watermark down so -- that its dimensions match the values that you specified for at least -- one of @MaxWidth@ and @MaxHeight@ without exceeding either value. If -- you specify this option, Elastic Transcoder does not scale the -- watermark up. PresetWatermark -> Maybe Text sizingPolicy :: Prelude.Maybe Prelude.Text, -- | A value that determines how Elastic Transcoder interprets values that -- you specified for @HorizontalOffset@, @VerticalOffset@, @MaxWidth@, and -- @MaxHeight@: -- -- - __Content__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video excluding black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video excluding black bars added by Elastic -- Transcoder, if any. -- -- - __Frame__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video including black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video including black bars added by Elastic -- Transcoder, if any. PresetWatermark -> Maybe Text target :: Prelude.Maybe Prelude.Text, -- | The vertical position of the watermark unless you specify a non-zero -- value for @VerticalOffset@: -- -- - __Top__: The top edge of the watermark is aligned with the top -- border of the video. -- -- - __Bottom__: The bottom edge of the watermark is aligned with the -- bottom border of the video. -- -- - __Center__: The watermark is centered between the top and bottom -- borders. PresetWatermark -> Maybe Text verticalAlign :: Prelude.Maybe Prelude.Text, -- | @VerticalOffset@ -- -- The amount by which you want the vertical position of the watermark to -- be offset from the position specified by VerticalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify @Top@ for @VerticalAlign@ and @5px@ for -- @VerticalOffset@, the top of the watermark appears 5 pixels from the top -- border of the output video. -- -- @VerticalOffset@ is only valid when the value of VerticalAlign is Top or -- Bottom. -- -- If you specify an offset that causes the watermark to extend beyond the -- top or bottom border and Elastic Transcoder has not added black bars, -- the watermark is cropped. If Elastic Transcoder has added black bars, -- the watermark extends into the black bars. If the watermark extends -- beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if any, -- in the offset calculation. PresetWatermark -> Maybe Text verticalOffset :: Prelude.Maybe Prelude.Text } deriving (PresetWatermark -> PresetWatermark -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: PresetWatermark -> PresetWatermark -> Bool $c/= :: PresetWatermark -> PresetWatermark -> Bool == :: PresetWatermark -> PresetWatermark -> Bool $c== :: PresetWatermark -> PresetWatermark -> Bool Prelude.Eq, ReadPrec [PresetWatermark] ReadPrec PresetWatermark Int -> ReadS PresetWatermark ReadS [PresetWatermark] forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [PresetWatermark] $creadListPrec :: ReadPrec [PresetWatermark] readPrec :: ReadPrec PresetWatermark $creadPrec :: ReadPrec PresetWatermark readList :: ReadS [PresetWatermark] $creadList :: ReadS [PresetWatermark] readsPrec :: Int -> ReadS PresetWatermark $creadsPrec :: Int -> ReadS PresetWatermark Prelude.Read, Int -> PresetWatermark -> ShowS [PresetWatermark] -> ShowS PresetWatermark -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PresetWatermark] -> ShowS $cshowList :: [PresetWatermark] -> ShowS show :: PresetWatermark -> String $cshow :: PresetWatermark -> String showsPrec :: Int -> PresetWatermark -> ShowS $cshowsPrec :: Int -> PresetWatermark -> ShowS Prelude.Show, forall x. Rep PresetWatermark x -> PresetWatermark forall x. PresetWatermark -> Rep PresetWatermark x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep PresetWatermark x -> PresetWatermark $cfrom :: forall x. PresetWatermark -> Rep PresetWatermark x Prelude.Generic) -- | -- Create a value of 'PresetWatermark' 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: -- -- 'horizontalAlign', 'presetWatermark_horizontalAlign' - The horizontal position of the watermark unless you specify a non-zero -- value for @HorizontalOffset@: -- -- - __Left__: The left edge of the watermark is aligned with the left -- border of the video. -- -- - __Right__: The right edge of the watermark is aligned with the right -- border of the video. -- -- - __Center__: The watermark is centered between the left and right -- borders. -- -- 'horizontalOffset', 'presetWatermark_horizontalOffset' - The amount by which you want the horizontal position of the watermark to -- be offset from the position specified by HorizontalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of MaxWidth. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify Left for @HorizontalAlign@ and 5px for -- @HorizontalOffset@, the left side of the watermark appears 5 pixels from -- the left border of the output video. -- -- @HorizontalOffset@ is only valid when the value of @HorizontalAlign@ is -- @Left@ or @Right@. If you specify an offset that causes the watermark to -- extend beyond the left or right border and Elastic Transcoder has not -- added black bars, the watermark is cropped. If Elastic Transcoder has -- added black bars, the watermark extends into the black bars. If the -- watermark extends beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want to include the -- black bars that are added by Elastic Transcoder, if any, in the offset -- calculation. -- -- 'id', 'presetWatermark_id' - A unique identifier for the settings for one watermark. The value of -- @Id@ can be up to 40 characters long. -- -- 'maxHeight', 'presetWatermark_maxHeight' - The maximum height of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to the -- value of @MaxHeight@. -- -- 'maxWidth', 'presetWatermark_maxWidth' - The maximum width of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxWidth@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to -- the value of @MaxWidth@. -- -- 'opacity', 'presetWatermark_opacity' - A percentage that indicates how much you want a watermark to obscure the -- video in the location where it appears. Valid values are 0 (the -- watermark is invisible) to 100 (the watermark completely obscures the -- video in the specified location). The datatype of @Opacity@ is float. -- -- Elastic Transcoder supports transparent .png graphics. If you use a -- transparent .png, the transparent portion of the video appears as if you -- had specified a value of 0 for @Opacity@. The .jpg file format doesn\'t -- support transparency. -- -- 'sizingPolicy', 'presetWatermark_sizingPolicy' - A value that controls scaling of the watermark: -- -- - __Fit__: Elastic Transcoder scales the watermark so it matches the -- value that you specified in either @MaxWidth@ or @MaxHeight@ without -- exceeding the other value. -- -- - __Stretch__: Elastic Transcoder stretches the watermark to match the -- values that you specified for @MaxWidth@ and @MaxHeight@. If the -- relative proportions of the watermark and the values of @MaxWidth@ -- and @MaxHeight@ are different, the watermark will be distorted. -- -- - __ShrinkToFit__: Elastic Transcoder scales the watermark down so -- that its dimensions match the values that you specified for at least -- one of @MaxWidth@ and @MaxHeight@ without exceeding either value. If -- you specify this option, Elastic Transcoder does not scale the -- watermark up. -- -- 'target', 'presetWatermark_target' - A value that determines how Elastic Transcoder interprets values that -- you specified for @HorizontalOffset@, @VerticalOffset@, @MaxWidth@, and -- @MaxHeight@: -- -- - __Content__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video excluding black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video excluding black bars added by Elastic -- Transcoder, if any. -- -- - __Frame__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video including black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video including black bars added by Elastic -- Transcoder, if any. -- -- 'verticalAlign', 'presetWatermark_verticalAlign' - The vertical position of the watermark unless you specify a non-zero -- value for @VerticalOffset@: -- -- - __Top__: The top edge of the watermark is aligned with the top -- border of the video. -- -- - __Bottom__: The bottom edge of the watermark is aligned with the -- bottom border of the video. -- -- - __Center__: The watermark is centered between the top and bottom -- borders. -- -- 'verticalOffset', 'presetWatermark_verticalOffset' - @VerticalOffset@ -- -- The amount by which you want the vertical position of the watermark to -- be offset from the position specified by VerticalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify @Top@ for @VerticalAlign@ and @5px@ for -- @VerticalOffset@, the top of the watermark appears 5 pixels from the top -- border of the output video. -- -- @VerticalOffset@ is only valid when the value of VerticalAlign is Top or -- Bottom. -- -- If you specify an offset that causes the watermark to extend beyond the -- top or bottom border and Elastic Transcoder has not added black bars, -- the watermark is cropped. If Elastic Transcoder has added black bars, -- the watermark extends into the black bars. If the watermark extends -- beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if any, -- in the offset calculation. newPresetWatermark :: PresetWatermark newPresetWatermark :: PresetWatermark newPresetWatermark = PresetWatermark' { $sel:horizontalAlign:PresetWatermark' :: Maybe Text horizontalAlign = forall a. Maybe a Prelude.Nothing, $sel:horizontalOffset:PresetWatermark' :: Maybe Text horizontalOffset = forall a. Maybe a Prelude.Nothing, $sel:id:PresetWatermark' :: Maybe Text id = forall a. Maybe a Prelude.Nothing, $sel:maxHeight:PresetWatermark' :: Maybe Text maxHeight = forall a. Maybe a Prelude.Nothing, $sel:maxWidth:PresetWatermark' :: Maybe Text maxWidth = forall a. Maybe a Prelude.Nothing, $sel:opacity:PresetWatermark' :: Maybe Text opacity = forall a. Maybe a Prelude.Nothing, $sel:sizingPolicy:PresetWatermark' :: Maybe Text sizingPolicy = forall a. Maybe a Prelude.Nothing, $sel:target:PresetWatermark' :: Maybe Text target = forall a. Maybe a Prelude.Nothing, $sel:verticalAlign:PresetWatermark' :: Maybe Text verticalAlign = forall a. Maybe a Prelude.Nothing, $sel:verticalOffset:PresetWatermark' :: Maybe Text verticalOffset = forall a. Maybe a Prelude.Nothing } -- | The horizontal position of the watermark unless you specify a non-zero -- value for @HorizontalOffset@: -- -- - __Left__: The left edge of the watermark is aligned with the left -- border of the video. -- -- - __Right__: The right edge of the watermark is aligned with the right -- border of the video. -- -- - __Center__: The watermark is centered between the left and right -- borders. presetWatermark_horizontalAlign :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_horizontalAlign :: Lens' PresetWatermark (Maybe Text) presetWatermark_horizontalAlign = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text horizontalAlign :: Maybe Text $sel:horizontalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text horizontalAlign} -> Maybe Text horizontalAlign) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:horizontalAlign:PresetWatermark' :: Maybe Text horizontalAlign = Maybe Text a} :: PresetWatermark) -- | The amount by which you want the horizontal position of the watermark to -- be offset from the position specified by HorizontalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of MaxWidth. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify Left for @HorizontalAlign@ and 5px for -- @HorizontalOffset@, the left side of the watermark appears 5 pixels from -- the left border of the output video. -- -- @HorizontalOffset@ is only valid when the value of @HorizontalAlign@ is -- @Left@ or @Right@. If you specify an offset that causes the watermark to -- extend beyond the left or right border and Elastic Transcoder has not -- added black bars, the watermark is cropped. If Elastic Transcoder has -- added black bars, the watermark extends into the black bars. If the -- watermark extends beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want to include the -- black bars that are added by Elastic Transcoder, if any, in the offset -- calculation. presetWatermark_horizontalOffset :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_horizontalOffset :: Lens' PresetWatermark (Maybe Text) presetWatermark_horizontalOffset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text horizontalOffset :: Maybe Text $sel:horizontalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text horizontalOffset} -> Maybe Text horizontalOffset) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:horizontalOffset:PresetWatermark' :: Maybe Text horizontalOffset = Maybe Text a} :: PresetWatermark) -- | A unique identifier for the settings for one watermark. The value of -- @Id@ can be up to 40 characters long. presetWatermark_id :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_id :: Lens' PresetWatermark (Maybe Text) presetWatermark_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text id :: Maybe Text $sel:id:PresetWatermark' :: PresetWatermark -> Maybe Text id} -> Maybe Text id) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:id:PresetWatermark' :: Maybe Text id = Maybe Text a} :: PresetWatermark) -- | The maximum height of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to the -- value of @MaxHeight@. presetWatermark_maxHeight :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_maxHeight :: Lens' PresetWatermark (Maybe Text) presetWatermark_maxHeight = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text maxHeight :: Maybe Text $sel:maxHeight:PresetWatermark' :: PresetWatermark -> Maybe Text maxHeight} -> Maybe Text maxHeight) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:maxHeight:PresetWatermark' :: Maybe Text maxHeight = Maybe Text a} :: PresetWatermark) -- | The maximum width of the watermark in one of the following formats: -- -- - number of pixels (px): The minimum value is 16 pixels, and the -- maximum value is the value of @MaxWidth@. -- -- - integer percentage (%): The range of valid values is 0 to 100. Use -- the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if -- any, in the calculation. -- -- If you specify the value in pixels, it must be less than or equal to -- the value of @MaxWidth@. presetWatermark_maxWidth :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_maxWidth :: Lens' PresetWatermark (Maybe Text) presetWatermark_maxWidth = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text maxWidth :: Maybe Text $sel:maxWidth:PresetWatermark' :: PresetWatermark -> Maybe Text maxWidth} -> Maybe Text maxWidth) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:maxWidth:PresetWatermark' :: Maybe Text maxWidth = Maybe Text a} :: PresetWatermark) -- | A percentage that indicates how much you want a watermark to obscure the -- video in the location where it appears. Valid values are 0 (the -- watermark is invisible) to 100 (the watermark completely obscures the -- video in the specified location). The datatype of @Opacity@ is float. -- -- Elastic Transcoder supports transparent .png graphics. If you use a -- transparent .png, the transparent portion of the video appears as if you -- had specified a value of 0 for @Opacity@. The .jpg file format doesn\'t -- support transparency. presetWatermark_opacity :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_opacity :: Lens' PresetWatermark (Maybe Text) presetWatermark_opacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text opacity :: Maybe Text $sel:opacity:PresetWatermark' :: PresetWatermark -> Maybe Text opacity} -> Maybe Text opacity) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:opacity:PresetWatermark' :: Maybe Text opacity = Maybe Text a} :: PresetWatermark) -- | A value that controls scaling of the watermark: -- -- - __Fit__: Elastic Transcoder scales the watermark so it matches the -- value that you specified in either @MaxWidth@ or @MaxHeight@ without -- exceeding the other value. -- -- - __Stretch__: Elastic Transcoder stretches the watermark to match the -- values that you specified for @MaxWidth@ and @MaxHeight@. If the -- relative proportions of the watermark and the values of @MaxWidth@ -- and @MaxHeight@ are different, the watermark will be distorted. -- -- - __ShrinkToFit__: Elastic Transcoder scales the watermark down so -- that its dimensions match the values that you specified for at least -- one of @MaxWidth@ and @MaxHeight@ without exceeding either value. If -- you specify this option, Elastic Transcoder does not scale the -- watermark up. presetWatermark_sizingPolicy :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_sizingPolicy :: Lens' PresetWatermark (Maybe Text) presetWatermark_sizingPolicy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text sizingPolicy :: Maybe Text $sel:sizingPolicy:PresetWatermark' :: PresetWatermark -> Maybe Text sizingPolicy} -> Maybe Text sizingPolicy) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:sizingPolicy:PresetWatermark' :: Maybe Text sizingPolicy = Maybe Text a} :: PresetWatermark) -- | A value that determines how Elastic Transcoder interprets values that -- you specified for @HorizontalOffset@, @VerticalOffset@, @MaxWidth@, and -- @MaxHeight@: -- -- - __Content__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video excluding black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video excluding black bars added by Elastic -- Transcoder, if any. -- -- - __Frame__: @HorizontalOffset@ and @VerticalOffset@ values are -- calculated based on the borders of the video including black bars -- added by Elastic Transcoder, if any. In addition, @MaxWidth@ and -- @MaxHeight@, if specified as a percentage, are calculated based on -- the borders of the video including black bars added by Elastic -- Transcoder, if any. presetWatermark_target :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_target :: Lens' PresetWatermark (Maybe Text) presetWatermark_target = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text target :: Maybe Text $sel:target:PresetWatermark' :: PresetWatermark -> Maybe Text target} -> Maybe Text target) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:target:PresetWatermark' :: Maybe Text target = Maybe Text a} :: PresetWatermark) -- | The vertical position of the watermark unless you specify a non-zero -- value for @VerticalOffset@: -- -- - __Top__: The top edge of the watermark is aligned with the top -- border of the video. -- -- - __Bottom__: The bottom edge of the watermark is aligned with the -- bottom border of the video. -- -- - __Center__: The watermark is centered between the top and bottom -- borders. presetWatermark_verticalAlign :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_verticalAlign :: Lens' PresetWatermark (Maybe Text) presetWatermark_verticalAlign = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text verticalAlign :: Maybe Text $sel:verticalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text verticalAlign} -> Maybe Text verticalAlign) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:verticalAlign:PresetWatermark' :: Maybe Text verticalAlign = Maybe Text a} :: PresetWatermark) -- | @VerticalOffset@ -- -- The amount by which you want the vertical position of the watermark to -- be offset from the position specified by VerticalAlign: -- -- - number of pixels (px): The minimum value is 0 pixels, and the -- maximum value is the value of @MaxHeight@. -- -- - integer percentage (%): The range of valid values is 0 to 100. -- -- For example, if you specify @Top@ for @VerticalAlign@ and @5px@ for -- @VerticalOffset@, the top of the watermark appears 5 pixels from the top -- border of the output video. -- -- @VerticalOffset@ is only valid when the value of VerticalAlign is Top or -- Bottom. -- -- If you specify an offset that causes the watermark to extend beyond the -- top or bottom border and Elastic Transcoder has not added black bars, -- the watermark is cropped. If Elastic Transcoder has added black bars, -- the watermark extends into the black bars. If the watermark extends -- beyond the black bars, it is cropped. -- -- Use the value of @Target@ to specify whether you want Elastic Transcoder -- to include the black bars that are added by Elastic Transcoder, if any, -- in the offset calculation. presetWatermark_verticalOffset :: Lens.Lens' PresetWatermark (Prelude.Maybe Prelude.Text) presetWatermark_verticalOffset :: Lens' PresetWatermark (Maybe Text) presetWatermark_verticalOffset = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b Lens.lens (\PresetWatermark' {Maybe Text verticalOffset :: Maybe Text $sel:verticalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text verticalOffset} -> Maybe Text verticalOffset) (\s :: PresetWatermark s@PresetWatermark' {} Maybe Text a -> PresetWatermark s {$sel:verticalOffset:PresetWatermark' :: Maybe Text verticalOffset = Maybe Text a} :: PresetWatermark) instance Data.FromJSON PresetWatermark where parseJSON :: Value -> Parser PresetWatermark parseJSON = forall a. String -> (Object -> Parser a) -> Value -> Parser a Data.withObject String "PresetWatermark" ( \Object x -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> Maybe Text -> PresetWatermark PresetWatermark' forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "HorizontalAlign") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "HorizontalOffset") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "Id") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "MaxHeight") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "MaxWidth") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "Opacity") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "SizingPolicy") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "Target") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "VerticalAlign") forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b Prelude.<*> (Object x forall a. FromJSON a => Object -> Key -> Parser (Maybe a) Data..:? Key "VerticalOffset") ) instance Prelude.Hashable PresetWatermark where hashWithSalt :: Int -> PresetWatermark -> Int hashWithSalt Int _salt PresetWatermark' {Maybe Text verticalOffset :: Maybe Text verticalAlign :: Maybe Text target :: Maybe Text sizingPolicy :: Maybe Text opacity :: Maybe Text maxWidth :: Maybe Text maxHeight :: Maybe Text id :: Maybe Text horizontalOffset :: Maybe Text horizontalAlign :: Maybe Text $sel:verticalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:verticalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:target:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:sizingPolicy:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:opacity:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxWidth:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxHeight:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:id:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text ..} = Int _salt forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text horizontalAlign forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text horizontalOffset forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text id forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text maxHeight forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text maxWidth forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text opacity forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text sizingPolicy forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text target forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text verticalAlign forall a. Hashable a => Int -> a -> Int `Prelude.hashWithSalt` Maybe Text verticalOffset instance Prelude.NFData PresetWatermark where rnf :: PresetWatermark -> () rnf PresetWatermark' {Maybe Text verticalOffset :: Maybe Text verticalAlign :: Maybe Text target :: Maybe Text sizingPolicy :: Maybe Text opacity :: Maybe Text maxWidth :: Maybe Text maxHeight :: Maybe Text id :: Maybe Text horizontalOffset :: Maybe Text horizontalAlign :: Maybe Text $sel:verticalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:verticalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:target:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:sizingPolicy:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:opacity:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxWidth:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxHeight:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:id:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text ..} = forall a. NFData a => a -> () Prelude.rnf Maybe Text horizontalAlign seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text horizontalOffset seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text id seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text maxHeight seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text maxWidth seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text opacity seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text sizingPolicy seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text target seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text verticalAlign seq :: forall a b. a -> b -> b `Prelude.seq` forall a. NFData a => a -> () Prelude.rnf Maybe Text verticalOffset instance Data.ToJSON PresetWatermark where toJSON :: PresetWatermark -> Value toJSON PresetWatermark' {Maybe Text verticalOffset :: Maybe Text verticalAlign :: Maybe Text target :: Maybe Text sizingPolicy :: Maybe Text opacity :: Maybe Text maxWidth :: Maybe Text maxHeight :: Maybe Text id :: Maybe Text horizontalOffset :: Maybe Text horizontalAlign :: Maybe Text $sel:verticalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:verticalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:target:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:sizingPolicy:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:opacity:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxWidth:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:maxHeight:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:id:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalOffset:PresetWatermark' :: PresetWatermark -> Maybe Text $sel:horizontalAlign:PresetWatermark' :: PresetWatermark -> Maybe Text ..} = [Pair] -> Value Data.object ( forall a. [Maybe a] -> [a] Prelude.catMaybes [ (Key "HorizontalAlign" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text horizontalAlign, (Key "HorizontalOffset" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text horizontalOffset, (Key "Id" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text id, (Key "MaxHeight" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text maxHeight, (Key "MaxWidth" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text maxWidth, (Key "Opacity" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text opacity, (Key "SizingPolicy" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text sizingPolicy, (Key "Target" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text target, (Key "VerticalAlign" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text verticalAlign, (Key "VerticalOffset" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b Prelude.<$> Maybe Text verticalOffset ] )