{-# 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.FraudDetectionDecision
-- 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.FraudDetectionDecision
  ( FraudDetectionDecision
      ( ..,
        FraudDetectionDecision_HIGH_RISK,
        FraudDetectionDecision_LOW_RISK,
        FraudDetectionDecision_NOT_ENOUGH_SPEECH
      ),
  )
where

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

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

pattern FraudDetectionDecision_HIGH_RISK :: FraudDetectionDecision
pattern $bFraudDetectionDecision_HIGH_RISK :: FraudDetectionDecision
$mFraudDetectionDecision_HIGH_RISK :: forall r.
FraudDetectionDecision -> (Void# -> r) -> (Void# -> r) -> r
FraudDetectionDecision_HIGH_RISK = FraudDetectionDecision' "HIGH_RISK"

pattern FraudDetectionDecision_LOW_RISK :: FraudDetectionDecision
pattern $bFraudDetectionDecision_LOW_RISK :: FraudDetectionDecision
$mFraudDetectionDecision_LOW_RISK :: forall r.
FraudDetectionDecision -> (Void# -> r) -> (Void# -> r) -> r
FraudDetectionDecision_LOW_RISK = FraudDetectionDecision' "LOW_RISK"

pattern FraudDetectionDecision_NOT_ENOUGH_SPEECH :: FraudDetectionDecision
pattern $bFraudDetectionDecision_NOT_ENOUGH_SPEECH :: FraudDetectionDecision
$mFraudDetectionDecision_NOT_ENOUGH_SPEECH :: forall r.
FraudDetectionDecision -> (Void# -> r) -> (Void# -> r) -> r
FraudDetectionDecision_NOT_ENOUGH_SPEECH = FraudDetectionDecision' "NOT_ENOUGH_SPEECH"

{-# COMPLETE
  FraudDetectionDecision_HIGH_RISK,
  FraudDetectionDecision_LOW_RISK,
  FraudDetectionDecision_NOT_ENOUGH_SPEECH,
  FraudDetectionDecision'
  #-}