{-# 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.LexModels.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.LexModels.Types.Locale
  ( Locale
      ( ..,
        Locale_De_DE,
        Locale_En_AU,
        Locale_En_GB,
        Locale_En_IN,
        Locale_En_US,
        Locale_Es_419,
        Locale_Es_ES,
        Locale_Es_US,
        Locale_Fr_CA,
        Locale_Fr_FR,
        Locale_It_IT,
        Locale_Ja_JP,
        Locale_Ko_KR
      ),
  )
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_DE :: Locale
pattern $bLocale_De_DE :: Locale
$mLocale_De_DE :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_De_DE = Locale' "de-DE"

pattern Locale_En_AU :: Locale
pattern $bLocale_En_AU :: Locale
$mLocale_En_AU :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_En_AU = Locale' "en-AU"

pattern Locale_En_GB :: Locale
pattern $bLocale_En_GB :: Locale
$mLocale_En_GB :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_En_GB = Locale' "en-GB"

pattern Locale_En_IN :: Locale
pattern $bLocale_En_IN :: Locale
$mLocale_En_IN :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_En_IN = Locale' "en-IN"

pattern Locale_En_US :: Locale
pattern $bLocale_En_US :: Locale
$mLocale_En_US :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_En_US = Locale' "en-US"

pattern Locale_Es_419 :: Locale
pattern $bLocale_Es_419 :: Locale
$mLocale_Es_419 :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Es_419 = Locale' "es-419"

pattern Locale_Es_ES :: Locale
pattern $bLocale_Es_ES :: Locale
$mLocale_Es_ES :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Es_ES = Locale' "es-ES"

pattern Locale_Es_US :: Locale
pattern $bLocale_Es_US :: Locale
$mLocale_Es_US :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Es_US = Locale' "es-US"

pattern Locale_Fr_CA :: Locale
pattern $bLocale_Fr_CA :: Locale
$mLocale_Fr_CA :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Fr_CA = Locale' "fr-CA"

pattern Locale_Fr_FR :: Locale
pattern $bLocale_Fr_FR :: Locale
$mLocale_Fr_FR :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Fr_FR = Locale' "fr-FR"

pattern Locale_It_IT :: Locale
pattern $bLocale_It_IT :: Locale
$mLocale_It_IT :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_It_IT = Locale' "it-IT"

pattern Locale_Ja_JP :: Locale
pattern $bLocale_Ja_JP :: Locale
$mLocale_Ja_JP :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Ja_JP = Locale' "ja-JP"

pattern Locale_Ko_KR :: Locale
pattern $bLocale_Ko_KR :: Locale
$mLocale_Ko_KR :: forall r. Locale -> (Void# -> r) -> (Void# -> r) -> r
Locale_Ko_KR = Locale' "ko-KR"

{-# COMPLETE
  Locale_De_DE,
  Locale_En_AU,
  Locale_En_GB,
  Locale_En_IN,
  Locale_En_US,
  Locale_Es_419,
  Locale_Es_ES,
  Locale_Es_US,
  Locale_Fr_CA,
  Locale_Fr_FR,
  Locale_It_IT,
  Locale_Ja_JP,
  Locale_Ko_KR,
  Locale'
  #-}