{-# 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.CognitoIdentityProvider.Types.ChallengeName
-- 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.CognitoIdentityProvider.Types.ChallengeName
  ( ChallengeName
      ( ..,
        ChallengeName_Mfa,
        ChallengeName_Password
      ),
  )
where

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

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

pattern ChallengeName_Mfa :: ChallengeName
pattern $bChallengeName_Mfa :: ChallengeName
$mChallengeName_Mfa :: forall r. ChallengeName -> (Void# -> r) -> (Void# -> r) -> r
ChallengeName_Mfa = ChallengeName' "Mfa"

pattern ChallengeName_Password :: ChallengeName
pattern $bChallengeName_Password :: ChallengeName
$mChallengeName_Password :: forall r. ChallengeName -> (Void# -> r) -> (Void# -> r) -> r
ChallengeName_Password = ChallengeName' "Password"

{-# COMPLETE
  ChallengeName_Mfa,
  ChallengeName_Password,
  ChallengeName'
  #-}