{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype FraudDetectionAction = FraudDetectionAction'
  { FraudDetectionAction -> Text
fromFraudDetectionAction ::
      Data.Text
  }
  deriving stock
    ( Int -> FraudDetectionAction -> ShowS
[FraudDetectionAction] -> ShowS
FraudDetectionAction -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq FraudDetectionAction
Int -> FraudDetectionAction -> Int
FraudDetectionAction -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: FraudDetectionAction -> ()
$crnf :: FraudDetectionAction -> ()
Prelude.NFData,
      Text -> Either String FraudDetectionAction
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String FraudDetectionAction
$cfromText :: Text -> Either String FraudDetectionAction
Data.FromText,
      FraudDetectionAction -> Text
forall a. (a -> Text) -> ToText a
toText :: FraudDetectionAction -> Text
$ctoText :: FraudDetectionAction -> Text
Data.ToText,
      FraudDetectionAction -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: FraudDetectionAction -> ByteString
$ctoBS :: FraudDetectionAction -> ByteString
Data.ToByteString,
      FraudDetectionAction -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: FraudDetectionAction -> ByteStringBuilder
$cbuild :: FraudDetectionAction -> ByteStringBuilder
Data.ToLog,
      HeaderName -> FraudDetectionAction -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> FraudDetectionAction -> [Header]
$ctoHeader :: HeaderName -> FraudDetectionAction -> [Header]
Data.ToHeader,
      FraudDetectionAction -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: FraudDetectionAction -> QueryString
$ctoQuery :: FraudDetectionAction -> QueryString
Data.ToQuery,
      Value -> Parser [FraudDetectionAction]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [FraudDetectionAction]
FromJSONKeyFunction FraudDetectionAction
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [FraudDetectionAction]
$cfromJSONKeyList :: FromJSONKeyFunction [FraudDetectionAction]
fromJSONKey :: FromJSONKeyFunction FraudDetectionAction
$cfromJSONKey :: FromJSONKeyFunction FraudDetectionAction
Data.FromJSONKey,
      [FraudDetectionAction] -> Encoding
[FraudDetectionAction] -> Value
FraudDetectionAction -> Encoding
FraudDetectionAction -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [FraudDetectionAction]
ToJSONKeyFunction FraudDetectionAction
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [FraudDetectionAction]
$ctoJSONKeyList :: ToJSONKeyFunction [FraudDetectionAction]
toJSONKey :: ToJSONKeyFunction FraudDetectionAction
$ctoJSONKey :: ToJSONKeyFunction FraudDetectionAction
Data.ToJSONKey,
      [Node] -> Either String FraudDetectionAction
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String FraudDetectionAction
$cparseXML :: [Node] -> Either String FraudDetectionAction
Data.FromXML,
      FraudDetectionAction -> XML
forall a. (a -> XML) -> ToXML a
toXML :: FraudDetectionAction -> XML
$ctoXML :: FraudDetectionAction -> XML
Data.ToXML
    )

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

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

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