{-# 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.FontScript
-- 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.FontScript
  ( FontScript
      ( ..,
        FontScript_AUTOMATIC,
        FontScript_HANS,
        FontScript_HANT
      ),
  )
where

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

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

pattern FontScript_AUTOMATIC :: FontScript
pattern $bFontScript_AUTOMATIC :: FontScript
$mFontScript_AUTOMATIC :: forall r. FontScript -> (Void# -> r) -> (Void# -> r) -> r
FontScript_AUTOMATIC = FontScript' "AUTOMATIC"

pattern FontScript_HANS :: FontScript
pattern $bFontScript_HANS :: FontScript
$mFontScript_HANS :: forall r. FontScript -> (Void# -> r) -> (Void# -> r) -> r
FontScript_HANS = FontScript' "HANS"

pattern FontScript_HANT :: FontScript
pattern $bFontScript_HANT :: FontScript
$mFontScript_HANT :: forall r. FontScript -> (Void# -> r) -> (Void# -> r) -> r
FontScript_HANT = FontScript' "HANT"

{-# COMPLETE
  FontScript_AUTOMATIC,
  FontScript_HANS,
  FontScript_HANT,
  FontScript'
  #-}