{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Amazonka.VoiceId.Types.FraudDetectionResult where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude
import Amazonka.VoiceId.Types.FraudDetectionConfiguration
import Amazonka.VoiceId.Types.FraudDetectionDecision
import Amazonka.VoiceId.Types.FraudDetectionReason
import Amazonka.VoiceId.Types.FraudRiskDetails
data FraudDetectionResult = FraudDetectionResult'
{
FraudDetectionResult -> Maybe POSIX
audioAggregationEndedAt :: Prelude.Maybe Data.POSIX,
FraudDetectionResult -> Maybe POSIX
audioAggregationStartedAt :: Prelude.Maybe Data.POSIX,
FraudDetectionResult -> Maybe FraudDetectionConfiguration
configuration :: Prelude.Maybe FraudDetectionConfiguration,
FraudDetectionResult -> Maybe FraudDetectionDecision
decision :: Prelude.Maybe FraudDetectionDecision,
FraudDetectionResult -> Maybe Text
fraudDetectionResultId :: Prelude.Maybe Prelude.Text,
FraudDetectionResult -> Maybe [FraudDetectionReason]
reasons :: Prelude.Maybe [FraudDetectionReason],
FraudDetectionResult -> Maybe FraudRiskDetails
riskDetails :: Prelude.Maybe FraudRiskDetails
}
deriving (FraudDetectionResult -> FraudDetectionResult -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: FraudDetectionResult -> FraudDetectionResult -> Bool
$c/= :: FraudDetectionResult -> FraudDetectionResult -> Bool
== :: FraudDetectionResult -> FraudDetectionResult -> Bool
$c== :: FraudDetectionResult -> FraudDetectionResult -> Bool
Prelude.Eq, ReadPrec [FraudDetectionResult]
ReadPrec FraudDetectionResult
Int -> ReadS FraudDetectionResult
ReadS [FraudDetectionResult]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [FraudDetectionResult]
$creadListPrec :: ReadPrec [FraudDetectionResult]
readPrec :: ReadPrec FraudDetectionResult
$creadPrec :: ReadPrec FraudDetectionResult
readList :: ReadS [FraudDetectionResult]
$creadList :: ReadS [FraudDetectionResult]
readsPrec :: Int -> ReadS FraudDetectionResult
$creadsPrec :: Int -> ReadS FraudDetectionResult
Prelude.Read, Int -> FraudDetectionResult -> ShowS
[FraudDetectionResult] -> ShowS
FraudDetectionResult -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [FraudDetectionResult] -> ShowS
$cshowList :: [FraudDetectionResult] -> ShowS
show :: FraudDetectionResult -> String
$cshow :: FraudDetectionResult -> String
showsPrec :: Int -> FraudDetectionResult -> ShowS
$cshowsPrec :: Int -> FraudDetectionResult -> ShowS
Prelude.Show, forall x. Rep FraudDetectionResult x -> FraudDetectionResult
forall x. FraudDetectionResult -> Rep FraudDetectionResult x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep FraudDetectionResult x -> FraudDetectionResult
$cfrom :: forall x. FraudDetectionResult -> Rep FraudDetectionResult x
Prelude.Generic)
newFraudDetectionResult ::
FraudDetectionResult
newFraudDetectionResult :: FraudDetectionResult
newFraudDetectionResult =
FraudDetectionResult'
{ $sel:audioAggregationEndedAt:FraudDetectionResult' :: Maybe POSIX
audioAggregationEndedAt =
forall a. Maybe a
Prelude.Nothing,
$sel:audioAggregationStartedAt:FraudDetectionResult' :: Maybe POSIX
audioAggregationStartedAt = forall a. Maybe a
Prelude.Nothing,
$sel:configuration:FraudDetectionResult' :: Maybe FraudDetectionConfiguration
configuration = forall a. Maybe a
Prelude.Nothing,
$sel:decision:FraudDetectionResult' :: Maybe FraudDetectionDecision
decision = forall a. Maybe a
Prelude.Nothing,
$sel:fraudDetectionResultId:FraudDetectionResult' :: Maybe Text
fraudDetectionResultId = forall a. Maybe a
Prelude.Nothing,
$sel:reasons:FraudDetectionResult' :: Maybe [FraudDetectionReason]
reasons = forall a. Maybe a
Prelude.Nothing,
$sel:riskDetails:FraudDetectionResult' :: Maybe FraudRiskDetails
riskDetails = forall a. Maybe a
Prelude.Nothing
}
fraudDetectionResult_audioAggregationEndedAt :: Lens.Lens' FraudDetectionResult (Prelude.Maybe Prelude.UTCTime)
fraudDetectionResult_audioAggregationEndedAt :: Lens' FraudDetectionResult (Maybe UTCTime)
fraudDetectionResult_audioAggregationEndedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe POSIX
audioAggregationEndedAt :: Maybe POSIX
$sel:audioAggregationEndedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
audioAggregationEndedAt} -> Maybe POSIX
audioAggregationEndedAt) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe POSIX
a -> FraudDetectionResult
s {$sel:audioAggregationEndedAt:FraudDetectionResult' :: Maybe POSIX
audioAggregationEndedAt = Maybe POSIX
a} :: FraudDetectionResult) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
fraudDetectionResult_audioAggregationStartedAt :: Lens.Lens' FraudDetectionResult (Prelude.Maybe Prelude.UTCTime)
fraudDetectionResult_audioAggregationStartedAt :: Lens' FraudDetectionResult (Maybe UTCTime)
fraudDetectionResult_audioAggregationStartedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe POSIX
audioAggregationStartedAt :: Maybe POSIX
$sel:audioAggregationStartedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
audioAggregationStartedAt} -> Maybe POSIX
audioAggregationStartedAt) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe POSIX
a -> FraudDetectionResult
s {$sel:audioAggregationStartedAt:FraudDetectionResult' :: Maybe POSIX
audioAggregationStartedAt = Maybe POSIX
a} :: FraudDetectionResult) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time
fraudDetectionResult_configuration :: Lens.Lens' FraudDetectionResult (Prelude.Maybe FraudDetectionConfiguration)
fraudDetectionResult_configuration :: Lens' FraudDetectionResult (Maybe FraudDetectionConfiguration)
fraudDetectionResult_configuration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe FraudDetectionConfiguration
configuration :: Maybe FraudDetectionConfiguration
$sel:configuration:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionConfiguration
configuration} -> Maybe FraudDetectionConfiguration
configuration) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe FraudDetectionConfiguration
a -> FraudDetectionResult
s {$sel:configuration:FraudDetectionResult' :: Maybe FraudDetectionConfiguration
configuration = Maybe FraudDetectionConfiguration
a} :: FraudDetectionResult)
fraudDetectionResult_decision :: Lens.Lens' FraudDetectionResult (Prelude.Maybe FraudDetectionDecision)
fraudDetectionResult_decision :: Lens' FraudDetectionResult (Maybe FraudDetectionDecision)
fraudDetectionResult_decision = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe FraudDetectionDecision
decision :: Maybe FraudDetectionDecision
$sel:decision:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionDecision
decision} -> Maybe FraudDetectionDecision
decision) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe FraudDetectionDecision
a -> FraudDetectionResult
s {$sel:decision:FraudDetectionResult' :: Maybe FraudDetectionDecision
decision = Maybe FraudDetectionDecision
a} :: FraudDetectionResult)
fraudDetectionResult_fraudDetectionResultId :: Lens.Lens' FraudDetectionResult (Prelude.Maybe Prelude.Text)
fraudDetectionResult_fraudDetectionResultId :: Lens' FraudDetectionResult (Maybe Text)
fraudDetectionResult_fraudDetectionResultId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe Text
fraudDetectionResultId :: Maybe Text
$sel:fraudDetectionResultId:FraudDetectionResult' :: FraudDetectionResult -> Maybe Text
fraudDetectionResultId} -> Maybe Text
fraudDetectionResultId) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe Text
a -> FraudDetectionResult
s {$sel:fraudDetectionResultId:FraudDetectionResult' :: Maybe Text
fraudDetectionResultId = Maybe Text
a} :: FraudDetectionResult)
fraudDetectionResult_reasons :: Lens.Lens' FraudDetectionResult (Prelude.Maybe [FraudDetectionReason])
fraudDetectionResult_reasons :: Lens' FraudDetectionResult (Maybe [FraudDetectionReason])
fraudDetectionResult_reasons = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe [FraudDetectionReason]
reasons :: Maybe [FraudDetectionReason]
$sel:reasons:FraudDetectionResult' :: FraudDetectionResult -> Maybe [FraudDetectionReason]
reasons} -> Maybe [FraudDetectionReason]
reasons) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe [FraudDetectionReason]
a -> FraudDetectionResult
s {$sel:reasons:FraudDetectionResult' :: Maybe [FraudDetectionReason]
reasons = Maybe [FraudDetectionReason]
a} :: FraudDetectionResult) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced
fraudDetectionResult_riskDetails :: Lens.Lens' FraudDetectionResult (Prelude.Maybe FraudRiskDetails)
fraudDetectionResult_riskDetails :: Lens' FraudDetectionResult (Maybe FraudRiskDetails)
fraudDetectionResult_riskDetails = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\FraudDetectionResult' {Maybe FraudRiskDetails
riskDetails :: Maybe FraudRiskDetails
$sel:riskDetails:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudRiskDetails
riskDetails} -> Maybe FraudRiskDetails
riskDetails) (\s :: FraudDetectionResult
s@FraudDetectionResult' {} Maybe FraudRiskDetails
a -> FraudDetectionResult
s {$sel:riskDetails:FraudDetectionResult' :: Maybe FraudRiskDetails
riskDetails = Maybe FraudRiskDetails
a} :: FraudDetectionResult)
instance Data.FromJSON FraudDetectionResult where
parseJSON :: Value -> Parser FraudDetectionResult
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
String
"FraudDetectionResult"
( \Object
x ->
Maybe POSIX
-> Maybe POSIX
-> Maybe FraudDetectionConfiguration
-> Maybe FraudDetectionDecision
-> Maybe Text
-> Maybe [FraudDetectionReason]
-> Maybe FraudRiskDetails
-> FraudDetectionResult
FraudDetectionResult'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AudioAggregationEndedAt")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"AudioAggregationStartedAt")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Configuration")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Decision")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FraudDetectionResultId")
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Reasons" forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"RiskDetails")
)
instance Prelude.Hashable FraudDetectionResult where
hashWithSalt :: Int -> FraudDetectionResult -> Int
hashWithSalt Int
_salt FraudDetectionResult' {Maybe [FraudDetectionReason]
Maybe Text
Maybe POSIX
Maybe FraudDetectionConfiguration
Maybe FraudDetectionDecision
Maybe FraudRiskDetails
riskDetails :: Maybe FraudRiskDetails
reasons :: Maybe [FraudDetectionReason]
fraudDetectionResultId :: Maybe Text
decision :: Maybe FraudDetectionDecision
configuration :: Maybe FraudDetectionConfiguration
audioAggregationStartedAt :: Maybe POSIX
audioAggregationEndedAt :: Maybe POSIX
$sel:riskDetails:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudRiskDetails
$sel:reasons:FraudDetectionResult' :: FraudDetectionResult -> Maybe [FraudDetectionReason]
$sel:fraudDetectionResultId:FraudDetectionResult' :: FraudDetectionResult -> Maybe Text
$sel:decision:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionDecision
$sel:configuration:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionConfiguration
$sel:audioAggregationStartedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
$sel:audioAggregationEndedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
audioAggregationEndedAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
audioAggregationStartedAt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FraudDetectionConfiguration
configuration
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FraudDetectionDecision
decision
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
fraudDetectionResultId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [FraudDetectionReason]
reasons
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe FraudRiskDetails
riskDetails
instance Prelude.NFData FraudDetectionResult where
rnf :: FraudDetectionResult -> ()
rnf FraudDetectionResult' {Maybe [FraudDetectionReason]
Maybe Text
Maybe POSIX
Maybe FraudDetectionConfiguration
Maybe FraudDetectionDecision
Maybe FraudRiskDetails
riskDetails :: Maybe FraudRiskDetails
reasons :: Maybe [FraudDetectionReason]
fraudDetectionResultId :: Maybe Text
decision :: Maybe FraudDetectionDecision
configuration :: Maybe FraudDetectionConfiguration
audioAggregationStartedAt :: Maybe POSIX
audioAggregationEndedAt :: Maybe POSIX
$sel:riskDetails:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudRiskDetails
$sel:reasons:FraudDetectionResult' :: FraudDetectionResult -> Maybe [FraudDetectionReason]
$sel:fraudDetectionResultId:FraudDetectionResult' :: FraudDetectionResult -> Maybe Text
$sel:decision:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionDecision
$sel:configuration:FraudDetectionResult' :: FraudDetectionResult -> Maybe FraudDetectionConfiguration
$sel:audioAggregationStartedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
$sel:audioAggregationEndedAt:FraudDetectionResult' :: FraudDetectionResult -> Maybe POSIX
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
audioAggregationEndedAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
audioAggregationStartedAt
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FraudDetectionConfiguration
configuration
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FraudDetectionDecision
decision
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
fraudDetectionResultId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [FraudDetectionReason]
reasons
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe FraudRiskDetails
riskDetails