{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

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

-- |
-- Module      : Amazonka.MediaConvert.Types.DvbSubtitleOutlineColor
-- 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.DvbSubtitleOutlineColor
  ( DvbSubtitleOutlineColor
      ( ..,
        DvbSubtitleOutlineColor_AUTO,
        DvbSubtitleOutlineColor_BLACK,
        DvbSubtitleOutlineColor_BLUE,
        DvbSubtitleOutlineColor_GREEN,
        DvbSubtitleOutlineColor_RED,
        DvbSubtitleOutlineColor_WHITE,
        DvbSubtitleOutlineColor_YELLOW
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

-- | 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.
newtype DvbSubtitleOutlineColor = DvbSubtitleOutlineColor'
  { DvbSubtitleOutlineColor -> Text
fromDvbSubtitleOutlineColor ::
      Core.Text
  }
  deriving stock
    ( Int -> DvbSubtitleOutlineColor -> ShowS
[DvbSubtitleOutlineColor] -> ShowS
DvbSubtitleOutlineColor -> String
(Int -> DvbSubtitleOutlineColor -> ShowS)
-> (DvbSubtitleOutlineColor -> String)
-> ([DvbSubtitleOutlineColor] -> ShowS)
-> Show DvbSubtitleOutlineColor
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DvbSubtitleOutlineColor] -> ShowS
$cshowList :: [DvbSubtitleOutlineColor] -> ShowS
show :: DvbSubtitleOutlineColor -> String
$cshow :: DvbSubtitleOutlineColor -> String
showsPrec :: Int -> DvbSubtitleOutlineColor -> ShowS
$cshowsPrec :: Int -> DvbSubtitleOutlineColor -> ShowS
Prelude.Show,
      ReadPrec [DvbSubtitleOutlineColor]
ReadPrec DvbSubtitleOutlineColor
Int -> ReadS DvbSubtitleOutlineColor
ReadS [DvbSubtitleOutlineColor]
(Int -> ReadS DvbSubtitleOutlineColor)
-> ReadS [DvbSubtitleOutlineColor]
-> ReadPrec DvbSubtitleOutlineColor
-> ReadPrec [DvbSubtitleOutlineColor]
-> Read DvbSubtitleOutlineColor
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DvbSubtitleOutlineColor]
$creadListPrec :: ReadPrec [DvbSubtitleOutlineColor]
readPrec :: ReadPrec DvbSubtitleOutlineColor
$creadPrec :: ReadPrec DvbSubtitleOutlineColor
readList :: ReadS [DvbSubtitleOutlineColor]
$creadList :: ReadS [DvbSubtitleOutlineColor]
readsPrec :: Int -> ReadS DvbSubtitleOutlineColor
$creadsPrec :: Int -> ReadS DvbSubtitleOutlineColor
Prelude.Read,
      DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
(DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> Eq DvbSubtitleOutlineColor
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c/= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
== :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c== :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
Prelude.Eq,
      Eq DvbSubtitleOutlineColor
Eq DvbSubtitleOutlineColor
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Ordering)
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> (DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool)
-> (DvbSubtitleOutlineColor
    -> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor)
-> (DvbSubtitleOutlineColor
    -> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor)
-> Ord DvbSubtitleOutlineColor
DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Ordering
DvbSubtitleOutlineColor
-> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DvbSubtitleOutlineColor
-> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor
$cmin :: DvbSubtitleOutlineColor
-> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor
max :: DvbSubtitleOutlineColor
-> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor
$cmax :: DvbSubtitleOutlineColor
-> DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor
>= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c>= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
> :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c> :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
<= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c<= :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
< :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
$c< :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Bool
compare :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Ordering
$ccompare :: DvbSubtitleOutlineColor -> DvbSubtitleOutlineColor -> Ordering
$cp1Ord :: Eq DvbSubtitleOutlineColor
Prelude.Ord,
      (forall x.
 DvbSubtitleOutlineColor -> Rep DvbSubtitleOutlineColor x)
-> (forall x.
    Rep DvbSubtitleOutlineColor x -> DvbSubtitleOutlineColor)
-> Generic DvbSubtitleOutlineColor
forall x. Rep DvbSubtitleOutlineColor x -> DvbSubtitleOutlineColor
forall x. DvbSubtitleOutlineColor -> Rep DvbSubtitleOutlineColor x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DvbSubtitleOutlineColor x -> DvbSubtitleOutlineColor
$cfrom :: forall x. DvbSubtitleOutlineColor -> Rep DvbSubtitleOutlineColor x
Prelude.Generic
    )
  deriving newtype
    ( Int -> DvbSubtitleOutlineColor -> Int
DvbSubtitleOutlineColor -> Int
(Int -> DvbSubtitleOutlineColor -> Int)
-> (DvbSubtitleOutlineColor -> Int)
-> Hashable DvbSubtitleOutlineColor
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: DvbSubtitleOutlineColor -> Int
$chash :: DvbSubtitleOutlineColor -> Int
hashWithSalt :: Int -> DvbSubtitleOutlineColor -> Int
$chashWithSalt :: Int -> DvbSubtitleOutlineColor -> Int
Prelude.Hashable,
      DvbSubtitleOutlineColor -> ()
(DvbSubtitleOutlineColor -> ()) -> NFData DvbSubtitleOutlineColor
forall a. (a -> ()) -> NFData a
rnf :: DvbSubtitleOutlineColor -> ()
$crnf :: DvbSubtitleOutlineColor -> ()
Prelude.NFData,
      Text -> Either String DvbSubtitleOutlineColor
(Text -> Either String DvbSubtitleOutlineColor)
-> FromText DvbSubtitleOutlineColor
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String DvbSubtitleOutlineColor
$cfromText :: Text -> Either String DvbSubtitleOutlineColor
Core.FromText,
      DvbSubtitleOutlineColor -> Text
(DvbSubtitleOutlineColor -> Text) -> ToText DvbSubtitleOutlineColor
forall a. (a -> Text) -> ToText a
toText :: DvbSubtitleOutlineColor -> Text
$ctoText :: DvbSubtitleOutlineColor -> Text
Core.ToText,
      DvbSubtitleOutlineColor -> ByteString
(DvbSubtitleOutlineColor -> ByteString)
-> ToByteString DvbSubtitleOutlineColor
forall a. (a -> ByteString) -> ToByteString a
toBS :: DvbSubtitleOutlineColor -> ByteString
$ctoBS :: DvbSubtitleOutlineColor -> ByteString
Core.ToByteString,
      DvbSubtitleOutlineColor -> ByteStringBuilder
(DvbSubtitleOutlineColor -> ByteStringBuilder)
-> ToLog DvbSubtitleOutlineColor
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: DvbSubtitleOutlineColor -> ByteStringBuilder
$cbuild :: DvbSubtitleOutlineColor -> ByteStringBuilder
Core.ToLog,
      HeaderName -> DvbSubtitleOutlineColor -> [Header]
(HeaderName -> DvbSubtitleOutlineColor -> [Header])
-> ToHeader DvbSubtitleOutlineColor
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> DvbSubtitleOutlineColor -> [Header]
$ctoHeader :: HeaderName -> DvbSubtitleOutlineColor -> [Header]
Core.ToHeader,
      DvbSubtitleOutlineColor -> QueryString
(DvbSubtitleOutlineColor -> QueryString)
-> ToQuery DvbSubtitleOutlineColor
forall a. (a -> QueryString) -> ToQuery a
toQuery :: DvbSubtitleOutlineColor -> QueryString
$ctoQuery :: DvbSubtitleOutlineColor -> QueryString
Core.ToQuery,
      Value -> Parser [DvbSubtitleOutlineColor]
Value -> Parser DvbSubtitleOutlineColor
(Value -> Parser DvbSubtitleOutlineColor)
-> (Value -> Parser [DvbSubtitleOutlineColor])
-> FromJSON DvbSubtitleOutlineColor
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [DvbSubtitleOutlineColor]
$cparseJSONList :: Value -> Parser [DvbSubtitleOutlineColor]
parseJSON :: Value -> Parser DvbSubtitleOutlineColor
$cparseJSON :: Value -> Parser DvbSubtitleOutlineColor
Core.FromJSON,
      FromJSONKeyFunction [DvbSubtitleOutlineColor]
FromJSONKeyFunction DvbSubtitleOutlineColor
FromJSONKeyFunction DvbSubtitleOutlineColor
-> FromJSONKeyFunction [DvbSubtitleOutlineColor]
-> FromJSONKey DvbSubtitleOutlineColor
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [DvbSubtitleOutlineColor]
$cfromJSONKeyList :: FromJSONKeyFunction [DvbSubtitleOutlineColor]
fromJSONKey :: FromJSONKeyFunction DvbSubtitleOutlineColor
$cfromJSONKey :: FromJSONKeyFunction DvbSubtitleOutlineColor
Core.FromJSONKey,
      [DvbSubtitleOutlineColor] -> Encoding
[DvbSubtitleOutlineColor] -> Value
DvbSubtitleOutlineColor -> Encoding
DvbSubtitleOutlineColor -> Value
(DvbSubtitleOutlineColor -> Value)
-> (DvbSubtitleOutlineColor -> Encoding)
-> ([DvbSubtitleOutlineColor] -> Value)
-> ([DvbSubtitleOutlineColor] -> Encoding)
-> ToJSON DvbSubtitleOutlineColor
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [DvbSubtitleOutlineColor] -> Encoding
$ctoEncodingList :: [DvbSubtitleOutlineColor] -> Encoding
toJSONList :: [DvbSubtitleOutlineColor] -> Value
$ctoJSONList :: [DvbSubtitleOutlineColor] -> Value
toEncoding :: DvbSubtitleOutlineColor -> Encoding
$ctoEncoding :: DvbSubtitleOutlineColor -> Encoding
toJSON :: DvbSubtitleOutlineColor -> Value
$ctoJSON :: DvbSubtitleOutlineColor -> Value
Core.ToJSON,
      ToJSONKeyFunction [DvbSubtitleOutlineColor]
ToJSONKeyFunction DvbSubtitleOutlineColor
ToJSONKeyFunction DvbSubtitleOutlineColor
-> ToJSONKeyFunction [DvbSubtitleOutlineColor]
-> ToJSONKey DvbSubtitleOutlineColor
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [DvbSubtitleOutlineColor]
$ctoJSONKeyList :: ToJSONKeyFunction [DvbSubtitleOutlineColor]
toJSONKey :: ToJSONKeyFunction DvbSubtitleOutlineColor
$ctoJSONKey :: ToJSONKeyFunction DvbSubtitleOutlineColor
Core.ToJSONKey,
      [Node] -> Either String DvbSubtitleOutlineColor
([Node] -> Either String DvbSubtitleOutlineColor)
-> FromXML DvbSubtitleOutlineColor
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String DvbSubtitleOutlineColor
$cparseXML :: [Node] -> Either String DvbSubtitleOutlineColor
Core.FromXML,
      DvbSubtitleOutlineColor -> XML
(DvbSubtitleOutlineColor -> XML) -> ToXML DvbSubtitleOutlineColor
forall a. (a -> XML) -> ToXML a
toXML :: DvbSubtitleOutlineColor -> XML
$ctoXML :: DvbSubtitleOutlineColor -> XML
Core.ToXML
    )

pattern DvbSubtitleOutlineColor_AUTO :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_AUTO :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_AUTO :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_AUTO = DvbSubtitleOutlineColor' "AUTO"

pattern DvbSubtitleOutlineColor_BLACK :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_BLACK :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_BLACK :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_BLACK = DvbSubtitleOutlineColor' "BLACK"

pattern DvbSubtitleOutlineColor_BLUE :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_BLUE :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_BLUE :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_BLUE = DvbSubtitleOutlineColor' "BLUE"

pattern DvbSubtitleOutlineColor_GREEN :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_GREEN :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_GREEN :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_GREEN = DvbSubtitleOutlineColor' "GREEN"

pattern DvbSubtitleOutlineColor_RED :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_RED :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_RED :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_RED = DvbSubtitleOutlineColor' "RED"

pattern DvbSubtitleOutlineColor_WHITE :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_WHITE :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_WHITE :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_WHITE = DvbSubtitleOutlineColor' "WHITE"

pattern DvbSubtitleOutlineColor_YELLOW :: DvbSubtitleOutlineColor
pattern $bDvbSubtitleOutlineColor_YELLOW :: DvbSubtitleOutlineColor
$mDvbSubtitleOutlineColor_YELLOW :: forall r.
DvbSubtitleOutlineColor -> (Void# -> r) -> (Void# -> r) -> r
DvbSubtitleOutlineColor_YELLOW = DvbSubtitleOutlineColor' "YELLOW"

{-# COMPLETE
  DvbSubtitleOutlineColor_AUTO,
  DvbSubtitleOutlineColor_BLACK,
  DvbSubtitleOutlineColor_BLUE,
  DvbSubtitleOutlineColor_GREEN,
  DvbSubtitleOutlineColor_RED,
  DvbSubtitleOutlineColor_WHITE,
  DvbSubtitleOutlineColor_YELLOW,
  DvbSubtitleOutlineColor'
  #-}