{-# 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.AccessAnalyzer.Types.Locale
-- 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.AccessAnalyzer.Types.Locale
  ( Locale
      ( ..,
        Locale_DE,
        Locale_EN,
        Locale_ES,
        Locale_FR,
        Locale_IT,
        Locale_JA,
        Locale_KO,
        Locale_PT_BR,
        Locale_ZH_CN,
        Locale_ZH_TW
      ),
  )
where

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

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

pattern Locale_DE :: Locale
pattern $bLocale_DE :: Locale
$mLocale_DE :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_DE = Locale' "DE"

pattern Locale_EN :: Locale
pattern $bLocale_EN :: Locale
$mLocale_EN :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_EN = Locale' "EN"

pattern Locale_ES :: Locale
pattern $bLocale_ES :: Locale
$mLocale_ES :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_ES = Locale' "ES"

pattern Locale_FR :: Locale
pattern $bLocale_FR :: Locale
$mLocale_FR :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_FR = Locale' "FR"

pattern Locale_IT :: Locale
pattern $bLocale_IT :: Locale
$mLocale_IT :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_IT = Locale' "IT"

pattern Locale_JA :: Locale
pattern $bLocale_JA :: Locale
$mLocale_JA :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_JA = Locale' "JA"

pattern Locale_KO :: Locale
pattern $bLocale_KO :: Locale
$mLocale_KO :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_KO = Locale' "KO"

pattern Locale_PT_BR :: Locale
pattern $bLocale_PT_BR :: Locale
$mLocale_PT_BR :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_PT_BR = Locale' "PT_BR"

pattern Locale_ZH_CN :: Locale
pattern $bLocale_ZH_CN :: Locale
$mLocale_ZH_CN :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_ZH_CN = Locale' "ZH_CN"

pattern Locale_ZH_TW :: Locale
pattern $bLocale_ZH_TW :: Locale
$mLocale_ZH_TW :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_ZH_TW = Locale' "ZH_TW"

{-# COMPLETE
  Locale_DE,
  Locale_EN,
  Locale_ES,
  Locale_FR,
  Locale_IT,
  Locale_JA,
  Locale_KO,
  Locale_PT_BR,
  Locale_ZH_CN,
  Locale_ZH_TW,
  Locale'
  #-}