{-# 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.Transcribe.Types.CLMLanguageCode
-- 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.Transcribe.Types.CLMLanguageCode
  ( CLMLanguageCode
      ( ..,
        CLMLanguageCode_En_AU,
        CLMLanguageCode_En_GB,
        CLMLanguageCode_En_US,
        CLMLanguageCode_Es_US,
        CLMLanguageCode_Hi_IN
      ),
  )
where

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

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

pattern CLMLanguageCode_En_AU :: CLMLanguageCode
pattern $bCLMLanguageCode_En_AU :: CLMLanguageCode
$mCLMLanguageCode_En_AU :: forall r. CLMLanguageCode -> (Void# -> r) -> (Void# -> r) -> r
CLMLanguageCode_En_AU = CLMLanguageCode' "en-AU"

pattern CLMLanguageCode_En_GB :: CLMLanguageCode
pattern $bCLMLanguageCode_En_GB :: CLMLanguageCode
$mCLMLanguageCode_En_GB :: forall r. CLMLanguageCode -> (Void# -> r) -> (Void# -> r) -> r
CLMLanguageCode_En_GB = CLMLanguageCode' "en-GB"

pattern CLMLanguageCode_En_US :: CLMLanguageCode
pattern $bCLMLanguageCode_En_US :: CLMLanguageCode
$mCLMLanguageCode_En_US :: forall r. CLMLanguageCode -> (Void# -> r) -> (Void# -> r) -> r
CLMLanguageCode_En_US = CLMLanguageCode' "en-US"

pattern CLMLanguageCode_Es_US :: CLMLanguageCode
pattern $bCLMLanguageCode_Es_US :: CLMLanguageCode
$mCLMLanguageCode_Es_US :: forall r. CLMLanguageCode -> (Void# -> r) -> (Void# -> r) -> r
CLMLanguageCode_Es_US = CLMLanguageCode' "es-US"

pattern CLMLanguageCode_Hi_IN :: CLMLanguageCode
pattern $bCLMLanguageCode_Hi_IN :: CLMLanguageCode
$mCLMLanguageCode_Hi_IN :: forall r. CLMLanguageCode -> (Void# -> r) -> (Void# -> r) -> r
CLMLanguageCode_Hi_IN = CLMLanguageCode' "hi-IN"

{-# COMPLETE
  CLMLanguageCode_En_AU,
  CLMLanguageCode_En_GB,
  CLMLanguageCode_En_US,
  CLMLanguageCode_Es_US,
  CLMLanguageCode_Hi_IN,
  CLMLanguageCode'
  #-}