{-# 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.SESV2.Types.ContactLanguage
-- 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.SESV2.Types.ContactLanguage
  ( ContactLanguage
      ( ..,
        ContactLanguage_EN,
        ContactLanguage_JA
      ),
  )
where

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

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

pattern ContactLanguage_EN :: ContactLanguage
pattern $bContactLanguage_EN :: ContactLanguage
$mContactLanguage_EN :: forall {r}. ContactLanguage -> ((# #) -> r) -> ((# #) -> r) -> r
ContactLanguage_EN = ContactLanguage' "EN"

pattern ContactLanguage_JA :: ContactLanguage
pattern $bContactLanguage_JA :: ContactLanguage
$mContactLanguage_JA :: forall {r}. ContactLanguage -> ((# #) -> r) -> ((# #) -> r) -> r
ContactLanguage_JA = ContactLanguage' "JA"

{-# COMPLETE
  ContactLanguage_EN,
  ContactLanguage_JA,
  ContactLanguage'
  #-}