{-# 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.CaptionDestinationType
-- 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.CaptionDestinationType
  ( CaptionDestinationType
      ( ..,
        CaptionDestinationType_BURN_IN,
        CaptionDestinationType_DVB_SUB,
        CaptionDestinationType_EMBEDDED,
        CaptionDestinationType_EMBEDDED_PLUS_SCTE20,
        CaptionDestinationType_IMSC,
        CaptionDestinationType_SCC,
        CaptionDestinationType_SCTE20_PLUS_EMBEDDED,
        CaptionDestinationType_SMI,
        CaptionDestinationType_SRT,
        CaptionDestinationType_TELETEXT,
        CaptionDestinationType_TTML,
        CaptionDestinationType_WEBVTT
      ),
  )
where

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

-- | Specify the format for this set of captions on this output. The default
-- format is embedded without SCTE-20. Note that your choice of video
-- output container constrains your choice of output captions format. For
-- more information, see
-- https:\/\/docs.aws.amazon.com\/mediaconvert\/latest\/ug\/captions-support-tables.html.
-- If you are using SCTE-20 and you want to create an output that complies
-- with the SCTE-43 spec, choose SCTE-20 plus embedded
-- (SCTE20_PLUS_EMBEDDED). To create a non-compliant output where the
-- embedded captions come first, choose Embedded plus SCTE-20
-- (EMBEDDED_PLUS_SCTE20).
newtype CaptionDestinationType = CaptionDestinationType'
  { CaptionDestinationType -> Text
fromCaptionDestinationType ::
      Core.Text
  }
  deriving stock
    ( Int -> CaptionDestinationType -> ShowS
[CaptionDestinationType] -> ShowS
CaptionDestinationType -> String
(Int -> CaptionDestinationType -> ShowS)
-> (CaptionDestinationType -> String)
-> ([CaptionDestinationType] -> ShowS)
-> Show CaptionDestinationType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CaptionDestinationType] -> ShowS
$cshowList :: [CaptionDestinationType] -> ShowS
show :: CaptionDestinationType -> String
$cshow :: CaptionDestinationType -> String
showsPrec :: Int -> CaptionDestinationType -> ShowS
$cshowsPrec :: Int -> CaptionDestinationType -> ShowS
Prelude.Show,
      ReadPrec [CaptionDestinationType]
ReadPrec CaptionDestinationType
Int -> ReadS CaptionDestinationType
ReadS [CaptionDestinationType]
(Int -> ReadS CaptionDestinationType)
-> ReadS [CaptionDestinationType]
-> ReadPrec CaptionDestinationType
-> ReadPrec [CaptionDestinationType]
-> Read CaptionDestinationType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CaptionDestinationType]
$creadListPrec :: ReadPrec [CaptionDestinationType]
readPrec :: ReadPrec CaptionDestinationType
$creadPrec :: ReadPrec CaptionDestinationType
readList :: ReadS [CaptionDestinationType]
$creadList :: ReadS [CaptionDestinationType]
readsPrec :: Int -> ReadS CaptionDestinationType
$creadsPrec :: Int -> ReadS CaptionDestinationType
Prelude.Read,
      CaptionDestinationType -> CaptionDestinationType -> Bool
(CaptionDestinationType -> CaptionDestinationType -> Bool)
-> (CaptionDestinationType -> CaptionDestinationType -> Bool)
-> Eq CaptionDestinationType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c/= :: CaptionDestinationType -> CaptionDestinationType -> Bool
== :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c== :: CaptionDestinationType -> CaptionDestinationType -> Bool
Prelude.Eq,
      Eq CaptionDestinationType
Eq CaptionDestinationType
-> (CaptionDestinationType -> CaptionDestinationType -> Ordering)
-> (CaptionDestinationType -> CaptionDestinationType -> Bool)
-> (CaptionDestinationType -> CaptionDestinationType -> Bool)
-> (CaptionDestinationType -> CaptionDestinationType -> Bool)
-> (CaptionDestinationType -> CaptionDestinationType -> Bool)
-> (CaptionDestinationType
    -> CaptionDestinationType -> CaptionDestinationType)
-> (CaptionDestinationType
    -> CaptionDestinationType -> CaptionDestinationType)
-> Ord CaptionDestinationType
CaptionDestinationType -> CaptionDestinationType -> Bool
CaptionDestinationType -> CaptionDestinationType -> Ordering
CaptionDestinationType
-> CaptionDestinationType -> CaptionDestinationType
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 :: CaptionDestinationType
-> CaptionDestinationType -> CaptionDestinationType
$cmin :: CaptionDestinationType
-> CaptionDestinationType -> CaptionDestinationType
max :: CaptionDestinationType
-> CaptionDestinationType -> CaptionDestinationType
$cmax :: CaptionDestinationType
-> CaptionDestinationType -> CaptionDestinationType
>= :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c>= :: CaptionDestinationType -> CaptionDestinationType -> Bool
> :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c> :: CaptionDestinationType -> CaptionDestinationType -> Bool
<= :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c<= :: CaptionDestinationType -> CaptionDestinationType -> Bool
< :: CaptionDestinationType -> CaptionDestinationType -> Bool
$c< :: CaptionDestinationType -> CaptionDestinationType -> Bool
compare :: CaptionDestinationType -> CaptionDestinationType -> Ordering
$ccompare :: CaptionDestinationType -> CaptionDestinationType -> Ordering
$cp1Ord :: Eq CaptionDestinationType
Prelude.Ord,
      (forall x. CaptionDestinationType -> Rep CaptionDestinationType x)
-> (forall x.
    Rep CaptionDestinationType x -> CaptionDestinationType)
-> Generic CaptionDestinationType
forall x. Rep CaptionDestinationType x -> CaptionDestinationType
forall x. CaptionDestinationType -> Rep CaptionDestinationType x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CaptionDestinationType x -> CaptionDestinationType
$cfrom :: forall x. CaptionDestinationType -> Rep CaptionDestinationType x
Prelude.Generic
    )
  deriving newtype
    ( Int -> CaptionDestinationType -> Int
CaptionDestinationType -> Int
(Int -> CaptionDestinationType -> Int)
-> (CaptionDestinationType -> Int)
-> Hashable CaptionDestinationType
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: CaptionDestinationType -> Int
$chash :: CaptionDestinationType -> Int
hashWithSalt :: Int -> CaptionDestinationType -> Int
$chashWithSalt :: Int -> CaptionDestinationType -> Int
Prelude.Hashable,
      CaptionDestinationType -> ()
(CaptionDestinationType -> ()) -> NFData CaptionDestinationType
forall a. (a -> ()) -> NFData a
rnf :: CaptionDestinationType -> ()
$crnf :: CaptionDestinationType -> ()
Prelude.NFData,
      Text -> Either String CaptionDestinationType
(Text -> Either String CaptionDestinationType)
-> FromText CaptionDestinationType
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String CaptionDestinationType
$cfromText :: Text -> Either String CaptionDestinationType
Core.FromText,
      CaptionDestinationType -> Text
(CaptionDestinationType -> Text) -> ToText CaptionDestinationType
forall a. (a -> Text) -> ToText a
toText :: CaptionDestinationType -> Text
$ctoText :: CaptionDestinationType -> Text
Core.ToText,
      CaptionDestinationType -> ByteString
(CaptionDestinationType -> ByteString)
-> ToByteString CaptionDestinationType
forall a. (a -> ByteString) -> ToByteString a
toBS :: CaptionDestinationType -> ByteString
$ctoBS :: CaptionDestinationType -> ByteString
Core.ToByteString,
      CaptionDestinationType -> ByteStringBuilder
(CaptionDestinationType -> ByteStringBuilder)
-> ToLog CaptionDestinationType
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: CaptionDestinationType -> ByteStringBuilder
$cbuild :: CaptionDestinationType -> ByteStringBuilder
Core.ToLog,
      HeaderName -> CaptionDestinationType -> [Header]
(HeaderName -> CaptionDestinationType -> [Header])
-> ToHeader CaptionDestinationType
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> CaptionDestinationType -> [Header]
$ctoHeader :: HeaderName -> CaptionDestinationType -> [Header]
Core.ToHeader,
      CaptionDestinationType -> QueryString
(CaptionDestinationType -> QueryString)
-> ToQuery CaptionDestinationType
forall a. (a -> QueryString) -> ToQuery a
toQuery :: CaptionDestinationType -> QueryString
$ctoQuery :: CaptionDestinationType -> QueryString
Core.ToQuery,
      Value -> Parser [CaptionDestinationType]
Value -> Parser CaptionDestinationType
(Value -> Parser CaptionDestinationType)
-> (Value -> Parser [CaptionDestinationType])
-> FromJSON CaptionDestinationType
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [CaptionDestinationType]
$cparseJSONList :: Value -> Parser [CaptionDestinationType]
parseJSON :: Value -> Parser CaptionDestinationType
$cparseJSON :: Value -> Parser CaptionDestinationType
Core.FromJSON,
      FromJSONKeyFunction [CaptionDestinationType]
FromJSONKeyFunction CaptionDestinationType
FromJSONKeyFunction CaptionDestinationType
-> FromJSONKeyFunction [CaptionDestinationType]
-> FromJSONKey CaptionDestinationType
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [CaptionDestinationType]
$cfromJSONKeyList :: FromJSONKeyFunction [CaptionDestinationType]
fromJSONKey :: FromJSONKeyFunction CaptionDestinationType
$cfromJSONKey :: FromJSONKeyFunction CaptionDestinationType
Core.FromJSONKey,
      [CaptionDestinationType] -> Encoding
[CaptionDestinationType] -> Value
CaptionDestinationType -> Encoding
CaptionDestinationType -> Value
(CaptionDestinationType -> Value)
-> (CaptionDestinationType -> Encoding)
-> ([CaptionDestinationType] -> Value)
-> ([CaptionDestinationType] -> Encoding)
-> ToJSON CaptionDestinationType
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [CaptionDestinationType] -> Encoding
$ctoEncodingList :: [CaptionDestinationType] -> Encoding
toJSONList :: [CaptionDestinationType] -> Value
$ctoJSONList :: [CaptionDestinationType] -> Value
toEncoding :: CaptionDestinationType -> Encoding
$ctoEncoding :: CaptionDestinationType -> Encoding
toJSON :: CaptionDestinationType -> Value
$ctoJSON :: CaptionDestinationType -> Value
Core.ToJSON,
      ToJSONKeyFunction [CaptionDestinationType]
ToJSONKeyFunction CaptionDestinationType
ToJSONKeyFunction CaptionDestinationType
-> ToJSONKeyFunction [CaptionDestinationType]
-> ToJSONKey CaptionDestinationType
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [CaptionDestinationType]
$ctoJSONKeyList :: ToJSONKeyFunction [CaptionDestinationType]
toJSONKey :: ToJSONKeyFunction CaptionDestinationType
$ctoJSONKey :: ToJSONKeyFunction CaptionDestinationType
Core.ToJSONKey,
      [Node] -> Either String CaptionDestinationType
([Node] -> Either String CaptionDestinationType)
-> FromXML CaptionDestinationType
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String CaptionDestinationType
$cparseXML :: [Node] -> Either String CaptionDestinationType
Core.FromXML,
      CaptionDestinationType -> XML
(CaptionDestinationType -> XML) -> ToXML CaptionDestinationType
forall a. (a -> XML) -> ToXML a
toXML :: CaptionDestinationType -> XML
$ctoXML :: CaptionDestinationType -> XML
Core.ToXML
    )

pattern CaptionDestinationType_BURN_IN :: CaptionDestinationType
pattern $bCaptionDestinationType_BURN_IN :: CaptionDestinationType
$mCaptionDestinationType_BURN_IN :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_BURN_IN = CaptionDestinationType' "BURN_IN"

pattern CaptionDestinationType_DVB_SUB :: CaptionDestinationType
pattern $bCaptionDestinationType_DVB_SUB :: CaptionDestinationType
$mCaptionDestinationType_DVB_SUB :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_DVB_SUB = CaptionDestinationType' "DVB_SUB"

pattern CaptionDestinationType_EMBEDDED :: CaptionDestinationType
pattern $bCaptionDestinationType_EMBEDDED :: CaptionDestinationType
$mCaptionDestinationType_EMBEDDED :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_EMBEDDED = CaptionDestinationType' "EMBEDDED"

pattern CaptionDestinationType_EMBEDDED_PLUS_SCTE20 :: CaptionDestinationType
pattern $bCaptionDestinationType_EMBEDDED_PLUS_SCTE20 :: CaptionDestinationType
$mCaptionDestinationType_EMBEDDED_PLUS_SCTE20 :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_EMBEDDED_PLUS_SCTE20 = CaptionDestinationType' "EMBEDDED_PLUS_SCTE20"

pattern CaptionDestinationType_IMSC :: CaptionDestinationType
pattern $bCaptionDestinationType_IMSC :: CaptionDestinationType
$mCaptionDestinationType_IMSC :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_IMSC = CaptionDestinationType' "IMSC"

pattern CaptionDestinationType_SCC :: CaptionDestinationType
pattern $bCaptionDestinationType_SCC :: CaptionDestinationType
$mCaptionDestinationType_SCC :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_SCC = CaptionDestinationType' "SCC"

pattern CaptionDestinationType_SCTE20_PLUS_EMBEDDED :: CaptionDestinationType
pattern $bCaptionDestinationType_SCTE20_PLUS_EMBEDDED :: CaptionDestinationType
$mCaptionDestinationType_SCTE20_PLUS_EMBEDDED :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_SCTE20_PLUS_EMBEDDED = CaptionDestinationType' "SCTE20_PLUS_EMBEDDED"

pattern CaptionDestinationType_SMI :: CaptionDestinationType
pattern $bCaptionDestinationType_SMI :: CaptionDestinationType
$mCaptionDestinationType_SMI :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_SMI = CaptionDestinationType' "SMI"

pattern CaptionDestinationType_SRT :: CaptionDestinationType
pattern $bCaptionDestinationType_SRT :: CaptionDestinationType
$mCaptionDestinationType_SRT :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_SRT = CaptionDestinationType' "SRT"

pattern CaptionDestinationType_TELETEXT :: CaptionDestinationType
pattern $bCaptionDestinationType_TELETEXT :: CaptionDestinationType
$mCaptionDestinationType_TELETEXT :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_TELETEXT = CaptionDestinationType' "TELETEXT"

pattern CaptionDestinationType_TTML :: CaptionDestinationType
pattern $bCaptionDestinationType_TTML :: CaptionDestinationType
$mCaptionDestinationType_TTML :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_TTML = CaptionDestinationType' "TTML"

pattern CaptionDestinationType_WEBVTT :: CaptionDestinationType
pattern $bCaptionDestinationType_WEBVTT :: CaptionDestinationType
$mCaptionDestinationType_WEBVTT :: forall r.
CaptionDestinationType -> (Void# -> r) -> (Void# -> r) -> r
CaptionDestinationType_WEBVTT = CaptionDestinationType' "WEBVTT"

{-# COMPLETE
  CaptionDestinationType_BURN_IN,
  CaptionDestinationType_DVB_SUB,
  CaptionDestinationType_EMBEDDED,
  CaptionDestinationType_EMBEDDED_PLUS_SCTE20,
  CaptionDestinationType_IMSC,
  CaptionDestinationType_SCC,
  CaptionDestinationType_SCTE20_PLUS_EMBEDDED,
  CaptionDestinationType_SMI,
  CaptionDestinationType_SRT,
  CaptionDestinationType_TELETEXT,
  CaptionDestinationType_TTML,
  CaptionDestinationType_WEBVTT,
  CaptionDestinationType'
  #-}