{-# 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.SNS.Types.LanguageCodeString
-- 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.SNS.Types.LanguageCodeString
  ( LanguageCodeString
      ( ..,
        LanguageCodeString_De_DE,
        LanguageCodeString_En_GB,
        LanguageCodeString_En_US,
        LanguageCodeString_Es_419,
        LanguageCodeString_Es_ES,
        LanguageCodeString_Fr_CA,
        LanguageCodeString_Fr_FR,
        LanguageCodeString_It_IT,
        LanguageCodeString_Ja_JP,
        LanguageCodeString_Kr_KR,
        LanguageCodeString_Pt_BR,
        LanguageCodeString_Zh_CN,
        LanguageCodeString_Zh_TW
      ),
  )
where

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

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

pattern LanguageCodeString_De_DE :: LanguageCodeString
pattern $bLanguageCodeString_De_DE :: LanguageCodeString
$mLanguageCodeString_De_DE :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_De_DE = LanguageCodeString' "de-DE"

pattern LanguageCodeString_En_GB :: LanguageCodeString
pattern $bLanguageCodeString_En_GB :: LanguageCodeString
$mLanguageCodeString_En_GB :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_En_GB = LanguageCodeString' "en-GB"

pattern LanguageCodeString_En_US :: LanguageCodeString
pattern $bLanguageCodeString_En_US :: LanguageCodeString
$mLanguageCodeString_En_US :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_En_US = LanguageCodeString' "en-US"

pattern LanguageCodeString_Es_419 :: LanguageCodeString
pattern $bLanguageCodeString_Es_419 :: LanguageCodeString
$mLanguageCodeString_Es_419 :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Es_419 = LanguageCodeString' "es-419"

pattern LanguageCodeString_Es_ES :: LanguageCodeString
pattern $bLanguageCodeString_Es_ES :: LanguageCodeString
$mLanguageCodeString_Es_ES :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Es_ES = LanguageCodeString' "es-ES"

pattern LanguageCodeString_Fr_CA :: LanguageCodeString
pattern $bLanguageCodeString_Fr_CA :: LanguageCodeString
$mLanguageCodeString_Fr_CA :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Fr_CA = LanguageCodeString' "fr-CA"

pattern LanguageCodeString_Fr_FR :: LanguageCodeString
pattern $bLanguageCodeString_Fr_FR :: LanguageCodeString
$mLanguageCodeString_Fr_FR :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Fr_FR = LanguageCodeString' "fr-FR"

pattern LanguageCodeString_It_IT :: LanguageCodeString
pattern $bLanguageCodeString_It_IT :: LanguageCodeString
$mLanguageCodeString_It_IT :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_It_IT = LanguageCodeString' "it-IT"

pattern LanguageCodeString_Ja_JP :: LanguageCodeString
pattern $bLanguageCodeString_Ja_JP :: LanguageCodeString
$mLanguageCodeString_Ja_JP :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Ja_JP = LanguageCodeString' "ja-JP"

pattern LanguageCodeString_Kr_KR :: LanguageCodeString
pattern $bLanguageCodeString_Kr_KR :: LanguageCodeString
$mLanguageCodeString_Kr_KR :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Kr_KR = LanguageCodeString' "kr-KR"

pattern LanguageCodeString_Pt_BR :: LanguageCodeString
pattern $bLanguageCodeString_Pt_BR :: LanguageCodeString
$mLanguageCodeString_Pt_BR :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Pt_BR = LanguageCodeString' "pt-BR"

pattern LanguageCodeString_Zh_CN :: LanguageCodeString
pattern $bLanguageCodeString_Zh_CN :: LanguageCodeString
$mLanguageCodeString_Zh_CN :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Zh_CN = LanguageCodeString' "zh-CN"

pattern LanguageCodeString_Zh_TW :: LanguageCodeString
pattern $bLanguageCodeString_Zh_TW :: LanguageCodeString
$mLanguageCodeString_Zh_TW :: forall r. LanguageCodeString -> (Void# -> r) -> (Void# -> r) -> r
LanguageCodeString_Zh_TW = LanguageCodeString' "zh-TW"

{-# COMPLETE
  LanguageCodeString_De_DE,
  LanguageCodeString_En_GB,
  LanguageCodeString_En_US,
  LanguageCodeString_Es_419,
  LanguageCodeString_Es_ES,
  LanguageCodeString_Fr_CA,
  LanguageCodeString_Fr_FR,
  LanguageCodeString_It_IT,
  LanguageCodeString_Ja_JP,
  LanguageCodeString_Kr_KR,
  LanguageCodeString_Pt_BR,
  LanguageCodeString_Zh_CN,
  LanguageCodeString_Zh_TW,
  LanguageCodeString'
  #-}