{-# 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.VoiceId.Types.FraudDetectionAction
-- 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.VoiceId.Types.FraudDetectionAction
  ( FraudDetectionAction
      ( ..,
        FraudDetectionAction_FAIL,
        FraudDetectionAction_IGNORE
      ),
  )
where

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

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

pattern FraudDetectionAction_FAIL :: FraudDetectionAction
pattern $bFraudDetectionAction_FAIL :: FraudDetectionAction
$mFraudDetectionAction_FAIL :: forall r. FraudDetectionAction -> (Void# -> r) -> (Void# -> r) -> r
FraudDetectionAction_FAIL = FraudDetectionAction' "FAIL"

pattern FraudDetectionAction_IGNORE :: FraudDetectionAction
pattern $bFraudDetectionAction_IGNORE :: FraudDetectionAction
$mFraudDetectionAction_IGNORE :: forall r. FraudDetectionAction -> (Void# -> r) -> (Void# -> r) -> r
FraudDetectionAction_IGNORE = FraudDetectionAction' "IGNORE"

{-# COMPLETE
  FraudDetectionAction_FAIL,
  FraudDetectionAction_IGNORE,
  FraudDetectionAction'
  #-}