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

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

newtype ContactLanguage = ContactLanguage'
  { ContactLanguage -> Text
fromContactLanguage ::
      Core.Text
  }
  deriving stock
    ( Int -> ContactLanguage -> ShowS
[ContactLanguage] -> ShowS
ContactLanguage -> String
(Int -> ContactLanguage -> ShowS)
-> (ContactLanguage -> String)
-> ([ContactLanguage] -> ShowS)
-> Show ContactLanguage
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]
(Int -> ReadS ContactLanguage)
-> ReadS [ContactLanguage]
-> ReadPrec ContactLanguage
-> ReadPrec [ContactLanguage]
-> Read 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
(ContactLanguage -> ContactLanguage -> Bool)
-> (ContactLanguage -> ContactLanguage -> Bool)
-> Eq ContactLanguage
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
Eq ContactLanguage
-> (ContactLanguage -> ContactLanguage -> Ordering)
-> (ContactLanguage -> ContactLanguage -> Bool)
-> (ContactLanguage -> ContactLanguage -> Bool)
-> (ContactLanguage -> ContactLanguage -> Bool)
-> (ContactLanguage -> ContactLanguage -> Bool)
-> (ContactLanguage -> ContactLanguage -> ContactLanguage)
-> (ContactLanguage -> ContactLanguage -> ContactLanguage)
-> Ord 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
$cp1Ord :: Eq ContactLanguage
Prelude.Ord,
      (forall x. ContactLanguage -> Rep ContactLanguage x)
-> (forall x. Rep ContactLanguage x -> ContactLanguage)
-> Generic ContactLanguage
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
    ( Int -> ContactLanguage -> Int
ContactLanguage -> Int
(Int -> ContactLanguage -> Int)
-> (ContactLanguage -> Int) -> Hashable ContactLanguage
forall 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 -> ()
(ContactLanguage -> ()) -> NFData ContactLanguage
forall a. (a -> ()) -> NFData a
rnf :: ContactLanguage -> ()
$crnf :: ContactLanguage -> ()
Prelude.NFData,
      Text -> Either String ContactLanguage
(Text -> Either String ContactLanguage) -> FromText ContactLanguage
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String ContactLanguage
$cfromText :: Text -> Either String ContactLanguage
Core.FromText,
      ContactLanguage -> Text
(ContactLanguage -> Text) -> ToText ContactLanguage
forall a. (a -> Text) -> ToText a
toText :: ContactLanguage -> Text
$ctoText :: ContactLanguage -> Text
Core.ToText,
      ContactLanguage -> ByteString
(ContactLanguage -> ByteString) -> ToByteString ContactLanguage
forall a. (a -> ByteString) -> ToByteString a
toBS :: ContactLanguage -> ByteString
$ctoBS :: ContactLanguage -> ByteString
Core.ToByteString,
      ContactLanguage -> ByteStringBuilder
(ContactLanguage -> ByteStringBuilder) -> ToLog ContactLanguage
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: ContactLanguage -> ByteStringBuilder
$cbuild :: ContactLanguage -> ByteStringBuilder
Core.ToLog,
      HeaderName -> ContactLanguage -> [Header]
(HeaderName -> ContactLanguage -> [Header])
-> ToHeader ContactLanguage
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> ContactLanguage -> [Header]
$ctoHeader :: HeaderName -> ContactLanguage -> [Header]
Core.ToHeader,
      ContactLanguage -> QueryString
(ContactLanguage -> QueryString) -> ToQuery ContactLanguage
forall a. (a -> QueryString) -> ToQuery a
toQuery :: ContactLanguage -> QueryString
$ctoQuery :: ContactLanguage -> QueryString
Core.ToQuery,
      Value -> Parser [ContactLanguage]
Value -> Parser ContactLanguage
(Value -> Parser ContactLanguage)
-> (Value -> Parser [ContactLanguage]) -> FromJSON 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
Core.FromJSON,
      FromJSONKeyFunction [ContactLanguage]
FromJSONKeyFunction ContactLanguage
FromJSONKeyFunction ContactLanguage
-> FromJSONKeyFunction [ContactLanguage]
-> FromJSONKey ContactLanguage
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [ContactLanguage]
$cfromJSONKeyList :: FromJSONKeyFunction [ContactLanguage]
fromJSONKey :: FromJSONKeyFunction ContactLanguage
$cfromJSONKey :: FromJSONKeyFunction ContactLanguage
Core.FromJSONKey,
      [ContactLanguage] -> Encoding
[ContactLanguage] -> Value
ContactLanguage -> Encoding
ContactLanguage -> Value
(ContactLanguage -> Value)
-> (ContactLanguage -> Encoding)
-> ([ContactLanguage] -> Value)
-> ([ContactLanguage] -> Encoding)
-> ToJSON ContactLanguage
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
Core.ToJSON,
      ToJSONKeyFunction [ContactLanguage]
ToJSONKeyFunction ContactLanguage
ToJSONKeyFunction ContactLanguage
-> ToJSONKeyFunction [ContactLanguage] -> ToJSONKey ContactLanguage
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [ContactLanguage]
$ctoJSONKeyList :: ToJSONKeyFunction [ContactLanguage]
toJSONKey :: ToJSONKeyFunction ContactLanguage
$ctoJSONKey :: ToJSONKeyFunction ContactLanguage
Core.ToJSONKey,
      [Node] -> Either String ContactLanguage
([Node] -> Either String ContactLanguage)
-> FromXML ContactLanguage
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String ContactLanguage
$cparseXML :: [Node] -> Either String ContactLanguage
Core.FromXML,
      ContactLanguage -> XML
(ContactLanguage -> XML) -> ToXML ContactLanguage
forall a. (a -> XML) -> ToXML a
toXML :: ContactLanguage -> XML
$ctoXML :: ContactLanguage -> XML
Core.ToXML
    )

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

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

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