{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.FraudDetector.GetDetectorVersion
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets a particular detector version.
module Amazonka.FraudDetector.GetDetectorVersion
  ( -- * Creating a Request
    GetDetectorVersion (..),
    newGetDetectorVersion,

    -- * Request Lenses
    getDetectorVersion_detectorId,
    getDetectorVersion_detectorVersionId,

    -- * Destructuring the Response
    GetDetectorVersionResponse (..),
    newGetDetectorVersionResponse,

    -- * Response Lenses
    getDetectorVersionResponse_arn,
    getDetectorVersionResponse_createdTime,
    getDetectorVersionResponse_description,
    getDetectorVersionResponse_detectorId,
    getDetectorVersionResponse_detectorVersionId,
    getDetectorVersionResponse_externalModelEndpoints,
    getDetectorVersionResponse_lastUpdatedTime,
    getDetectorVersionResponse_modelVersions,
    getDetectorVersionResponse_ruleExecutionMode,
    getDetectorVersionResponse_rules,
    getDetectorVersionResponse_status,
    getDetectorVersionResponse_httpStatus,
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.FraudDetector.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newGetDetectorVersion' smart constructor.
data GetDetectorVersion = GetDetectorVersion'
  { -- | The detector ID.
    GetDetectorVersion -> Text
detectorId :: Prelude.Text,
    -- | The detector version ID.
    GetDetectorVersion -> Text
detectorVersionId :: Prelude.Text
  }
  deriving (GetDetectorVersion -> GetDetectorVersion -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDetectorVersion -> GetDetectorVersion -> Bool
$c/= :: GetDetectorVersion -> GetDetectorVersion -> Bool
== :: GetDetectorVersion -> GetDetectorVersion -> Bool
$c== :: GetDetectorVersion -> GetDetectorVersion -> Bool
Prelude.Eq, ReadPrec [GetDetectorVersion]
ReadPrec GetDetectorVersion
Int -> ReadS GetDetectorVersion
ReadS [GetDetectorVersion]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDetectorVersion]
$creadListPrec :: ReadPrec [GetDetectorVersion]
readPrec :: ReadPrec GetDetectorVersion
$creadPrec :: ReadPrec GetDetectorVersion
readList :: ReadS [GetDetectorVersion]
$creadList :: ReadS [GetDetectorVersion]
readsPrec :: Int -> ReadS GetDetectorVersion
$creadsPrec :: Int -> ReadS GetDetectorVersion
Prelude.Read, Int -> GetDetectorVersion -> ShowS
[GetDetectorVersion] -> ShowS
GetDetectorVersion -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDetectorVersion] -> ShowS
$cshowList :: [GetDetectorVersion] -> ShowS
show :: GetDetectorVersion -> String
$cshow :: GetDetectorVersion -> String
showsPrec :: Int -> GetDetectorVersion -> ShowS
$cshowsPrec :: Int -> GetDetectorVersion -> ShowS
Prelude.Show, forall x. Rep GetDetectorVersion x -> GetDetectorVersion
forall x. GetDetectorVersion -> Rep GetDetectorVersion x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep GetDetectorVersion x -> GetDetectorVersion
$cfrom :: forall x. GetDetectorVersion -> Rep GetDetectorVersion x
Prelude.Generic)

-- |
-- Create a value of 'GetDetectorVersion' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'detectorId', 'getDetectorVersion_detectorId' - The detector ID.
--
-- 'detectorVersionId', 'getDetectorVersion_detectorVersionId' - The detector version ID.
newGetDetectorVersion ::
  -- | 'detectorId'
  Prelude.Text ->
  -- | 'detectorVersionId'
  Prelude.Text ->
  GetDetectorVersion
newGetDetectorVersion :: Text -> Text -> GetDetectorVersion
newGetDetectorVersion
  Text
pDetectorId_
  Text
pDetectorVersionId_ =
    GetDetectorVersion'
      { $sel:detectorId:GetDetectorVersion' :: Text
detectorId = Text
pDetectorId_,
        $sel:detectorVersionId:GetDetectorVersion' :: Text
detectorVersionId = Text
pDetectorVersionId_
      }

-- | The detector ID.
getDetectorVersion_detectorId :: Lens.Lens' GetDetectorVersion Prelude.Text
getDetectorVersion_detectorId :: Lens' GetDetectorVersion Text
getDetectorVersion_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersion' {Text
detectorId :: Text
$sel:detectorId:GetDetectorVersion' :: GetDetectorVersion -> Text
detectorId} -> Text
detectorId) (\s :: GetDetectorVersion
s@GetDetectorVersion' {} Text
a -> GetDetectorVersion
s {$sel:detectorId:GetDetectorVersion' :: Text
detectorId = Text
a} :: GetDetectorVersion)

-- | The detector version ID.
getDetectorVersion_detectorVersionId :: Lens.Lens' GetDetectorVersion Prelude.Text
getDetectorVersion_detectorVersionId :: Lens' GetDetectorVersion Text
getDetectorVersion_detectorVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersion' {Text
detectorVersionId :: Text
$sel:detectorVersionId:GetDetectorVersion' :: GetDetectorVersion -> Text
detectorVersionId} -> Text
detectorVersionId) (\s :: GetDetectorVersion
s@GetDetectorVersion' {} Text
a -> GetDetectorVersion
s {$sel:detectorVersionId:GetDetectorVersion' :: Text
detectorVersionId = Text
a} :: GetDetectorVersion)

instance Core.AWSRequest GetDetectorVersion where
  type
    AWSResponse GetDetectorVersion =
      GetDetectorVersionResponse
  request :: (Service -> Service)
-> GetDetectorVersion -> Request GetDetectorVersion
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy GetDetectorVersion
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse GetDetectorVersion)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe Text
-> Maybe [Text]
-> Maybe Text
-> Maybe [ModelVersion]
-> Maybe RuleExecutionMode
-> Maybe [Rule]
-> Maybe DetectorVersionStatus
-> Int
-> GetDetectorVersionResponse
GetDetectorVersionResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"arn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"createdTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"description")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"detectorId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"detectorVersionId")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"externalModelEndpoints"
                            forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"lastUpdatedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"modelVersions" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"ruleExecutionMode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"rules" forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ 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 -> Either String (Maybe a)
Data..?> Key
"status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable GetDetectorVersion where
  hashWithSalt :: Int -> GetDetectorVersion -> Int
hashWithSalt Int
_salt GetDetectorVersion' {Text
detectorVersionId :: Text
detectorId :: Text
$sel:detectorVersionId:GetDetectorVersion' :: GetDetectorVersion -> Text
$sel:detectorId:GetDetectorVersion' :: GetDetectorVersion -> Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorVersionId

instance Prelude.NFData GetDetectorVersion where
  rnf :: GetDetectorVersion -> ()
rnf GetDetectorVersion' {Text
detectorVersionId :: Text
detectorId :: Text
$sel:detectorVersionId:GetDetectorVersion' :: GetDetectorVersion -> Text
$sel:detectorId:GetDetectorVersion' :: GetDetectorVersion -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
detectorId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
detectorVersionId

instance Data.ToHeaders GetDetectorVersion where
  toHeaders :: GetDetectorVersion -> ResponseHeaders
toHeaders =
    forall a b. a -> b -> a
Prelude.const
      ( forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"AWSHawksNestServiceFacade.GetDetectorVersion" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Data.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Data.ToJSON GetDetectorVersion where
  toJSON :: GetDetectorVersion -> Value
toJSON GetDetectorVersion' {Text
detectorVersionId :: Text
detectorId :: Text
$sel:detectorVersionId:GetDetectorVersion' :: GetDetectorVersion -> Text
$sel:detectorId:GetDetectorVersion' :: GetDetectorVersion -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just (Key
"detectorId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
detectorId),
            forall a. a -> Maybe a
Prelude.Just
              (Key
"detectorVersionId" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
detectorVersionId)
          ]
      )

instance Data.ToPath GetDetectorVersion where
  toPath :: GetDetectorVersion -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Data.ToQuery GetDetectorVersion where
  toQuery :: GetDetectorVersion -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

-- | /See:/ 'newGetDetectorVersionResponse' smart constructor.
data GetDetectorVersionResponse = GetDetectorVersionResponse'
  { -- | The detector version ARN.
    GetDetectorVersionResponse -> Maybe Text
arn :: Prelude.Maybe Prelude.Text,
    -- | The timestamp when the detector version was created.
    GetDetectorVersionResponse -> Maybe Text
createdTime :: Prelude.Maybe Prelude.Text,
    -- | The detector version description.
    GetDetectorVersionResponse -> Maybe Text
description :: Prelude.Maybe Prelude.Text,
    -- | The detector ID.
    GetDetectorVersionResponse -> Maybe Text
detectorId :: Prelude.Maybe Prelude.Text,
    -- | The detector version ID.
    GetDetectorVersionResponse -> Maybe Text
detectorVersionId :: Prelude.Maybe Prelude.Text,
    -- | The Amazon SageMaker model endpoints included in the detector version.
    GetDetectorVersionResponse -> Maybe [Text]
externalModelEndpoints :: Prelude.Maybe [Prelude.Text],
    -- | The timestamp when the detector version was last updated.
    GetDetectorVersionResponse -> Maybe Text
lastUpdatedTime :: Prelude.Maybe Prelude.Text,
    -- | The model versions included in the detector version.
    GetDetectorVersionResponse -> Maybe [ModelVersion]
modelVersions :: Prelude.Maybe [ModelVersion],
    -- | The execution mode of the rule in the dectector
    --
    -- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules
    -- sequentially, first to last, stopping at the first matched rule. Amazon
    -- Fraud dectector then provides the outcomes for that single rule.
    --
    -- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules
    -- and returns the outcomes for all matched rules. You can define and edit
    -- the rule mode at the detector version level, when it is in draft status.
    GetDetectorVersionResponse -> Maybe RuleExecutionMode
ruleExecutionMode :: Prelude.Maybe RuleExecutionMode,
    -- | The rules included in the detector version.
    GetDetectorVersionResponse -> Maybe [Rule]
rules :: Prelude.Maybe [Rule],
    -- | The status of the detector version.
    GetDetectorVersionResponse -> Maybe DetectorVersionStatus
status :: Prelude.Maybe DetectorVersionStatus,
    -- | The response's http status code.
    GetDetectorVersionResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (GetDetectorVersionResponse -> GetDetectorVersionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: GetDetectorVersionResponse -> GetDetectorVersionResponse -> Bool
$c/= :: GetDetectorVersionResponse -> GetDetectorVersionResponse -> Bool
== :: GetDetectorVersionResponse -> GetDetectorVersionResponse -> Bool
$c== :: GetDetectorVersionResponse -> GetDetectorVersionResponse -> Bool
Prelude.Eq, ReadPrec [GetDetectorVersionResponse]
ReadPrec GetDetectorVersionResponse
Int -> ReadS GetDetectorVersionResponse
ReadS [GetDetectorVersionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [GetDetectorVersionResponse]
$creadListPrec :: ReadPrec [GetDetectorVersionResponse]
readPrec :: ReadPrec GetDetectorVersionResponse
$creadPrec :: ReadPrec GetDetectorVersionResponse
readList :: ReadS [GetDetectorVersionResponse]
$creadList :: ReadS [GetDetectorVersionResponse]
readsPrec :: Int -> ReadS GetDetectorVersionResponse
$creadsPrec :: Int -> ReadS GetDetectorVersionResponse
Prelude.Read, Int -> GetDetectorVersionResponse -> ShowS
[GetDetectorVersionResponse] -> ShowS
GetDetectorVersionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [GetDetectorVersionResponse] -> ShowS
$cshowList :: [GetDetectorVersionResponse] -> ShowS
show :: GetDetectorVersionResponse -> String
$cshow :: GetDetectorVersionResponse -> String
showsPrec :: Int -> GetDetectorVersionResponse -> ShowS
$cshowsPrec :: Int -> GetDetectorVersionResponse -> ShowS
Prelude.Show, forall x.
Rep GetDetectorVersionResponse x -> GetDetectorVersionResponse
forall x.
GetDetectorVersionResponse -> Rep GetDetectorVersionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep GetDetectorVersionResponse x -> GetDetectorVersionResponse
$cfrom :: forall x.
GetDetectorVersionResponse -> Rep GetDetectorVersionResponse x
Prelude.Generic)

-- |
-- Create a value of 'GetDetectorVersionResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'arn', 'getDetectorVersionResponse_arn' - The detector version ARN.
--
-- 'createdTime', 'getDetectorVersionResponse_createdTime' - The timestamp when the detector version was created.
--
-- 'description', 'getDetectorVersionResponse_description' - The detector version description.
--
-- 'detectorId', 'getDetectorVersionResponse_detectorId' - The detector ID.
--
-- 'detectorVersionId', 'getDetectorVersionResponse_detectorVersionId' - The detector version ID.
--
-- 'externalModelEndpoints', 'getDetectorVersionResponse_externalModelEndpoints' - The Amazon SageMaker model endpoints included in the detector version.
--
-- 'lastUpdatedTime', 'getDetectorVersionResponse_lastUpdatedTime' - The timestamp when the detector version was last updated.
--
-- 'modelVersions', 'getDetectorVersionResponse_modelVersions' - The model versions included in the detector version.
--
-- 'ruleExecutionMode', 'getDetectorVersionResponse_ruleExecutionMode' - The execution mode of the rule in the dectector
--
-- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules
-- sequentially, first to last, stopping at the first matched rule. Amazon
-- Fraud dectector then provides the outcomes for that single rule.
--
-- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules
-- and returns the outcomes for all matched rules. You can define and edit
-- the rule mode at the detector version level, when it is in draft status.
--
-- 'rules', 'getDetectorVersionResponse_rules' - The rules included in the detector version.
--
-- 'status', 'getDetectorVersionResponse_status' - The status of the detector version.
--
-- 'httpStatus', 'getDetectorVersionResponse_httpStatus' - The response's http status code.
newGetDetectorVersionResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  GetDetectorVersionResponse
newGetDetectorVersionResponse :: Int -> GetDetectorVersionResponse
newGetDetectorVersionResponse Int
pHttpStatus_ =
  GetDetectorVersionResponse'
    { $sel:arn:GetDetectorVersionResponse' :: Maybe Text
arn = forall a. Maybe a
Prelude.Nothing,
      $sel:createdTime:GetDetectorVersionResponse' :: Maybe Text
createdTime = forall a. Maybe a
Prelude.Nothing,
      $sel:description:GetDetectorVersionResponse' :: Maybe Text
description = forall a. Maybe a
Prelude.Nothing,
      $sel:detectorId:GetDetectorVersionResponse' :: Maybe Text
detectorId = forall a. Maybe a
Prelude.Nothing,
      $sel:detectorVersionId:GetDetectorVersionResponse' :: Maybe Text
detectorVersionId = forall a. Maybe a
Prelude.Nothing,
      $sel:externalModelEndpoints:GetDetectorVersionResponse' :: Maybe [Text]
externalModelEndpoints = forall a. Maybe a
Prelude.Nothing,
      $sel:lastUpdatedTime:GetDetectorVersionResponse' :: Maybe Text
lastUpdatedTime = forall a. Maybe a
Prelude.Nothing,
      $sel:modelVersions:GetDetectorVersionResponse' :: Maybe [ModelVersion]
modelVersions = forall a. Maybe a
Prelude.Nothing,
      $sel:ruleExecutionMode:GetDetectorVersionResponse' :: Maybe RuleExecutionMode
ruleExecutionMode = forall a. Maybe a
Prelude.Nothing,
      $sel:rules:GetDetectorVersionResponse' :: Maybe [Rule]
rules = forall a. Maybe a
Prelude.Nothing,
      $sel:status:GetDetectorVersionResponse' :: Maybe DetectorVersionStatus
status = forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:GetDetectorVersionResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The detector version ARN.
getDetectorVersionResponse_arn :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_arn :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_arn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
arn :: Maybe Text
$sel:arn:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
arn} -> Maybe Text
arn) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:arn:GetDetectorVersionResponse' :: Maybe Text
arn = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The timestamp when the detector version was created.
getDetectorVersionResponse_createdTime :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_createdTime :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_createdTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
createdTime :: Maybe Text
$sel:createdTime:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
createdTime} -> Maybe Text
createdTime) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:createdTime:GetDetectorVersionResponse' :: Maybe Text
createdTime = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The detector version description.
getDetectorVersionResponse_description :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_description :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_description = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
description :: Maybe Text
$sel:description:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
description} -> Maybe Text
description) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:description:GetDetectorVersionResponse' :: Maybe Text
description = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The detector ID.
getDetectorVersionResponse_detectorId :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_detectorId :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_detectorId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
detectorId :: Maybe Text
$sel:detectorId:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
detectorId} -> Maybe Text
detectorId) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:detectorId:GetDetectorVersionResponse' :: Maybe Text
detectorId = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The detector version ID.
getDetectorVersionResponse_detectorVersionId :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_detectorVersionId :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_detectorVersionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
detectorVersionId :: Maybe Text
$sel:detectorVersionId:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
detectorVersionId} -> Maybe Text
detectorVersionId) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:detectorVersionId:GetDetectorVersionResponse' :: Maybe Text
detectorVersionId = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The Amazon SageMaker model endpoints included in the detector version.
getDetectorVersionResponse_externalModelEndpoints :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [Prelude.Text])
getDetectorVersionResponse_externalModelEndpoints :: Lens' GetDetectorVersionResponse (Maybe [Text])
getDetectorVersionResponse_externalModelEndpoints = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe [Text]
externalModelEndpoints :: Maybe [Text]
$sel:externalModelEndpoints:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [Text]
externalModelEndpoints} -> Maybe [Text]
externalModelEndpoints) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe [Text]
a -> GetDetectorVersionResponse
s {$sel:externalModelEndpoints:GetDetectorVersionResponse' :: Maybe [Text]
externalModelEndpoints = Maybe [Text]
a} :: GetDetectorVersionResponse) 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

-- | The timestamp when the detector version was last updated.
getDetectorVersionResponse_lastUpdatedTime :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe Prelude.Text)
getDetectorVersionResponse_lastUpdatedTime :: Lens' GetDetectorVersionResponse (Maybe Text)
getDetectorVersionResponse_lastUpdatedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe Text
lastUpdatedTime :: Maybe Text
$sel:lastUpdatedTime:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
lastUpdatedTime} -> Maybe Text
lastUpdatedTime) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe Text
a -> GetDetectorVersionResponse
s {$sel:lastUpdatedTime:GetDetectorVersionResponse' :: Maybe Text
lastUpdatedTime = Maybe Text
a} :: GetDetectorVersionResponse)

-- | The model versions included in the detector version.
getDetectorVersionResponse_modelVersions :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [ModelVersion])
getDetectorVersionResponse_modelVersions :: Lens' GetDetectorVersionResponse (Maybe [ModelVersion])
getDetectorVersionResponse_modelVersions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe [ModelVersion]
modelVersions :: Maybe [ModelVersion]
$sel:modelVersions:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [ModelVersion]
modelVersions} -> Maybe [ModelVersion]
modelVersions) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe [ModelVersion]
a -> GetDetectorVersionResponse
s {$sel:modelVersions:GetDetectorVersionResponse' :: Maybe [ModelVersion]
modelVersions = Maybe [ModelVersion]
a} :: GetDetectorVersionResponse) 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

-- | The execution mode of the rule in the dectector
--
-- @FIRST_MATCHED@ indicates that Amazon Fraud Detector evaluates rules
-- sequentially, first to last, stopping at the first matched rule. Amazon
-- Fraud dectector then provides the outcomes for that single rule.
--
-- @ALL_MATCHED@ indicates that Amazon Fraud Detector evaluates all rules
-- and returns the outcomes for all matched rules. You can define and edit
-- the rule mode at the detector version level, when it is in draft status.
getDetectorVersionResponse_ruleExecutionMode :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe RuleExecutionMode)
getDetectorVersionResponse_ruleExecutionMode :: Lens' GetDetectorVersionResponse (Maybe RuleExecutionMode)
getDetectorVersionResponse_ruleExecutionMode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe RuleExecutionMode
ruleExecutionMode :: Maybe RuleExecutionMode
$sel:ruleExecutionMode:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe RuleExecutionMode
ruleExecutionMode} -> Maybe RuleExecutionMode
ruleExecutionMode) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe RuleExecutionMode
a -> GetDetectorVersionResponse
s {$sel:ruleExecutionMode:GetDetectorVersionResponse' :: Maybe RuleExecutionMode
ruleExecutionMode = Maybe RuleExecutionMode
a} :: GetDetectorVersionResponse)

-- | The rules included in the detector version.
getDetectorVersionResponse_rules :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe [Rule])
getDetectorVersionResponse_rules :: Lens' GetDetectorVersionResponse (Maybe [Rule])
getDetectorVersionResponse_rules = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe [Rule]
rules :: Maybe [Rule]
$sel:rules:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [Rule]
rules} -> Maybe [Rule]
rules) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe [Rule]
a -> GetDetectorVersionResponse
s {$sel:rules:GetDetectorVersionResponse' :: Maybe [Rule]
rules = Maybe [Rule]
a} :: GetDetectorVersionResponse) 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

-- | The status of the detector version.
getDetectorVersionResponse_status :: Lens.Lens' GetDetectorVersionResponse (Prelude.Maybe DetectorVersionStatus)
getDetectorVersionResponse_status :: Lens' GetDetectorVersionResponse (Maybe DetectorVersionStatus)
getDetectorVersionResponse_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Maybe DetectorVersionStatus
status :: Maybe DetectorVersionStatus
$sel:status:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe DetectorVersionStatus
status} -> Maybe DetectorVersionStatus
status) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Maybe DetectorVersionStatus
a -> GetDetectorVersionResponse
s {$sel:status:GetDetectorVersionResponse' :: Maybe DetectorVersionStatus
status = Maybe DetectorVersionStatus
a} :: GetDetectorVersionResponse)

-- | The response's http status code.
getDetectorVersionResponse_httpStatus :: Lens.Lens' GetDetectorVersionResponse Prelude.Int
getDetectorVersionResponse_httpStatus :: Lens' GetDetectorVersionResponse Int
getDetectorVersionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\GetDetectorVersionResponse' {Int
httpStatus :: Int
$sel:httpStatus:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: GetDetectorVersionResponse
s@GetDetectorVersionResponse' {} Int
a -> GetDetectorVersionResponse
s {$sel:httpStatus:GetDetectorVersionResponse' :: Int
httpStatus = Int
a} :: GetDetectorVersionResponse)

instance Prelude.NFData GetDetectorVersionResponse where
  rnf :: GetDetectorVersionResponse -> ()
rnf GetDetectorVersionResponse' {Int
Maybe [Text]
Maybe [ModelVersion]
Maybe [Rule]
Maybe Text
Maybe DetectorVersionStatus
Maybe RuleExecutionMode
httpStatus :: Int
status :: Maybe DetectorVersionStatus
rules :: Maybe [Rule]
ruleExecutionMode :: Maybe RuleExecutionMode
modelVersions :: Maybe [ModelVersion]
lastUpdatedTime :: Maybe Text
externalModelEndpoints :: Maybe [Text]
detectorVersionId :: Maybe Text
detectorId :: Maybe Text
description :: Maybe Text
createdTime :: Maybe Text
arn :: Maybe Text
$sel:httpStatus:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Int
$sel:status:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe DetectorVersionStatus
$sel:rules:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [Rule]
$sel:ruleExecutionMode:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe RuleExecutionMode
$sel:modelVersions:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [ModelVersion]
$sel:lastUpdatedTime:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
$sel:externalModelEndpoints:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe [Text]
$sel:detectorVersionId:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
$sel:detectorId:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
$sel:description:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
$sel:createdTime:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
$sel:arn:GetDetectorVersionResponse' :: GetDetectorVersionResponse -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
arn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
createdTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
description
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
detectorId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
detectorVersionId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Text]
externalModelEndpoints
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
lastUpdatedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ModelVersion]
modelVersions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe RuleExecutionMode
ruleExecutionMode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [Rule]
rules
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DetectorVersionStatus
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus