{-# 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.IoTEvents.UpdateDetectorModel
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Updates a detector model. Detectors (instances) spawned by the previous
-- version are deleted and then re-created as new inputs arrive.
module Amazonka.IoTEvents.UpdateDetectorModel
  ( -- * Creating a Request
    UpdateDetectorModel (..),
    newUpdateDetectorModel,

    -- * Request Lenses
    updateDetectorModel_detectorModelDescription,
    updateDetectorModel_evaluationMethod,
    updateDetectorModel_detectorModelName,
    updateDetectorModel_detectorModelDefinition,
    updateDetectorModel_roleArn,

    -- * Destructuring the Response
    UpdateDetectorModelResponse (..),
    newUpdateDetectorModelResponse,

    -- * Response Lenses
    updateDetectorModelResponse_detectorModelConfiguration,
    updateDetectorModelResponse_httpStatus,
  )
where

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

-- | /See:/ 'newUpdateDetectorModel' smart constructor.
data UpdateDetectorModel = UpdateDetectorModel'
  { -- | A brief description of the detector model.
    UpdateDetectorModel -> Maybe Text
detectorModelDescription :: Prelude.Maybe Prelude.Text,
    -- | Information about the order in which events are evaluated and how
    -- actions are executed.
    UpdateDetectorModel -> Maybe EvaluationMethod
evaluationMethod :: Prelude.Maybe EvaluationMethod,
    -- | The name of the detector model that is updated.
    UpdateDetectorModel -> Text
detectorModelName :: Prelude.Text,
    -- | Information that defines how a detector operates.
    UpdateDetectorModel -> DetectorModelDefinition
detectorModelDefinition :: DetectorModelDefinition,
    -- | The ARN of the role that grants permission to AWS IoT Events to perform
    -- its operations.
    UpdateDetectorModel -> Text
roleArn :: Prelude.Text
  }
  deriving (UpdateDetectorModel -> UpdateDetectorModel -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDetectorModel -> UpdateDetectorModel -> Bool
$c/= :: UpdateDetectorModel -> UpdateDetectorModel -> Bool
== :: UpdateDetectorModel -> UpdateDetectorModel -> Bool
$c== :: UpdateDetectorModel -> UpdateDetectorModel -> Bool
Prelude.Eq, ReadPrec [UpdateDetectorModel]
ReadPrec UpdateDetectorModel
Int -> ReadS UpdateDetectorModel
ReadS [UpdateDetectorModel]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDetectorModel]
$creadListPrec :: ReadPrec [UpdateDetectorModel]
readPrec :: ReadPrec UpdateDetectorModel
$creadPrec :: ReadPrec UpdateDetectorModel
readList :: ReadS [UpdateDetectorModel]
$creadList :: ReadS [UpdateDetectorModel]
readsPrec :: Int -> ReadS UpdateDetectorModel
$creadsPrec :: Int -> ReadS UpdateDetectorModel
Prelude.Read, Int -> UpdateDetectorModel -> ShowS
[UpdateDetectorModel] -> ShowS
UpdateDetectorModel -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDetectorModel] -> ShowS
$cshowList :: [UpdateDetectorModel] -> ShowS
show :: UpdateDetectorModel -> String
$cshow :: UpdateDetectorModel -> String
showsPrec :: Int -> UpdateDetectorModel -> ShowS
$cshowsPrec :: Int -> UpdateDetectorModel -> ShowS
Prelude.Show, forall x. Rep UpdateDetectorModel x -> UpdateDetectorModel
forall x. UpdateDetectorModel -> Rep UpdateDetectorModel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDetectorModel x -> UpdateDetectorModel
$cfrom :: forall x. UpdateDetectorModel -> Rep UpdateDetectorModel x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDetectorModel' 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:
--
-- 'detectorModelDescription', 'updateDetectorModel_detectorModelDescription' - A brief description of the detector model.
--
-- 'evaluationMethod', 'updateDetectorModel_evaluationMethod' - Information about the order in which events are evaluated and how
-- actions are executed.
--
-- 'detectorModelName', 'updateDetectorModel_detectorModelName' - The name of the detector model that is updated.
--
-- 'detectorModelDefinition', 'updateDetectorModel_detectorModelDefinition' - Information that defines how a detector operates.
--
-- 'roleArn', 'updateDetectorModel_roleArn' - The ARN of the role that grants permission to AWS IoT Events to perform
-- its operations.
newUpdateDetectorModel ::
  -- | 'detectorModelName'
  Prelude.Text ->
  -- | 'detectorModelDefinition'
  DetectorModelDefinition ->
  -- | 'roleArn'
  Prelude.Text ->
  UpdateDetectorModel
newUpdateDetectorModel :: Text -> DetectorModelDefinition -> Text -> UpdateDetectorModel
newUpdateDetectorModel
  Text
pDetectorModelName_
  DetectorModelDefinition
pDetectorModelDefinition_
  Text
pRoleArn_ =
    UpdateDetectorModel'
      { $sel:detectorModelDescription:UpdateDetectorModel' :: Maybe Text
detectorModelDescription =
          forall a. Maybe a
Prelude.Nothing,
        $sel:evaluationMethod:UpdateDetectorModel' :: Maybe EvaluationMethod
evaluationMethod = forall a. Maybe a
Prelude.Nothing,
        $sel:detectorModelName:UpdateDetectorModel' :: Text
detectorModelName = Text
pDetectorModelName_,
        $sel:detectorModelDefinition:UpdateDetectorModel' :: DetectorModelDefinition
detectorModelDefinition = DetectorModelDefinition
pDetectorModelDefinition_,
        $sel:roleArn:UpdateDetectorModel' :: Text
roleArn = Text
pRoleArn_
      }

-- | A brief description of the detector model.
updateDetectorModel_detectorModelDescription :: Lens.Lens' UpdateDetectorModel (Prelude.Maybe Prelude.Text)
updateDetectorModel_detectorModelDescription :: Lens' UpdateDetectorModel (Maybe Text)
updateDetectorModel_detectorModelDescription = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModel' {Maybe Text
detectorModelDescription :: Maybe Text
$sel:detectorModelDescription:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe Text
detectorModelDescription} -> Maybe Text
detectorModelDescription) (\s :: UpdateDetectorModel
s@UpdateDetectorModel' {} Maybe Text
a -> UpdateDetectorModel
s {$sel:detectorModelDescription:UpdateDetectorModel' :: Maybe Text
detectorModelDescription = Maybe Text
a} :: UpdateDetectorModel)

-- | Information about the order in which events are evaluated and how
-- actions are executed.
updateDetectorModel_evaluationMethod :: Lens.Lens' UpdateDetectorModel (Prelude.Maybe EvaluationMethod)
updateDetectorModel_evaluationMethod :: Lens' UpdateDetectorModel (Maybe EvaluationMethod)
updateDetectorModel_evaluationMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModel' {Maybe EvaluationMethod
evaluationMethod :: Maybe EvaluationMethod
$sel:evaluationMethod:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe EvaluationMethod
evaluationMethod} -> Maybe EvaluationMethod
evaluationMethod) (\s :: UpdateDetectorModel
s@UpdateDetectorModel' {} Maybe EvaluationMethod
a -> UpdateDetectorModel
s {$sel:evaluationMethod:UpdateDetectorModel' :: Maybe EvaluationMethod
evaluationMethod = Maybe EvaluationMethod
a} :: UpdateDetectorModel)

-- | The name of the detector model that is updated.
updateDetectorModel_detectorModelName :: Lens.Lens' UpdateDetectorModel Prelude.Text
updateDetectorModel_detectorModelName :: Lens' UpdateDetectorModel Text
updateDetectorModel_detectorModelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModel' {Text
detectorModelName :: Text
$sel:detectorModelName:UpdateDetectorModel' :: UpdateDetectorModel -> Text
detectorModelName} -> Text
detectorModelName) (\s :: UpdateDetectorModel
s@UpdateDetectorModel' {} Text
a -> UpdateDetectorModel
s {$sel:detectorModelName:UpdateDetectorModel' :: Text
detectorModelName = Text
a} :: UpdateDetectorModel)

-- | Information that defines how a detector operates.
updateDetectorModel_detectorModelDefinition :: Lens.Lens' UpdateDetectorModel DetectorModelDefinition
updateDetectorModel_detectorModelDefinition :: Lens' UpdateDetectorModel DetectorModelDefinition
updateDetectorModel_detectorModelDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModel' {DetectorModelDefinition
detectorModelDefinition :: DetectorModelDefinition
$sel:detectorModelDefinition:UpdateDetectorModel' :: UpdateDetectorModel -> DetectorModelDefinition
detectorModelDefinition} -> DetectorModelDefinition
detectorModelDefinition) (\s :: UpdateDetectorModel
s@UpdateDetectorModel' {} DetectorModelDefinition
a -> UpdateDetectorModel
s {$sel:detectorModelDefinition:UpdateDetectorModel' :: DetectorModelDefinition
detectorModelDefinition = DetectorModelDefinition
a} :: UpdateDetectorModel)

-- | The ARN of the role that grants permission to AWS IoT Events to perform
-- its operations.
updateDetectorModel_roleArn :: Lens.Lens' UpdateDetectorModel Prelude.Text
updateDetectorModel_roleArn :: Lens' UpdateDetectorModel Text
updateDetectorModel_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModel' {Text
roleArn :: Text
$sel:roleArn:UpdateDetectorModel' :: UpdateDetectorModel -> Text
roleArn} -> Text
roleArn) (\s :: UpdateDetectorModel
s@UpdateDetectorModel' {} Text
a -> UpdateDetectorModel
s {$sel:roleArn:UpdateDetectorModel' :: Text
roleArn = Text
a} :: UpdateDetectorModel)

instance Core.AWSRequest UpdateDetectorModel where
  type
    AWSResponse UpdateDetectorModel =
      UpdateDetectorModelResponse
  request :: (Service -> Service)
-> UpdateDetectorModel -> Request UpdateDetectorModel
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 UpdateDetectorModel
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateDetectorModel)))
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 DetectorModelConfiguration
-> Int -> UpdateDetectorModelResponse
UpdateDetectorModelResponse'
            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
"detectorModelConfiguration")
            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 UpdateDetectorModel where
  hashWithSalt :: Int -> UpdateDetectorModel -> Int
hashWithSalt Int
_salt UpdateDetectorModel' {Maybe Text
Maybe EvaluationMethod
Text
DetectorModelDefinition
roleArn :: Text
detectorModelDefinition :: DetectorModelDefinition
detectorModelName :: Text
evaluationMethod :: Maybe EvaluationMethod
detectorModelDescription :: Maybe Text
$sel:roleArn:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:detectorModelDefinition:UpdateDetectorModel' :: UpdateDetectorModel -> DetectorModelDefinition
$sel:detectorModelName:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:evaluationMethod:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe EvaluationMethod
$sel:detectorModelDescription:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
detectorModelDescription
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe EvaluationMethod
evaluationMethod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
detectorModelName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` DetectorModelDefinition
detectorModelDefinition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
roleArn

instance Prelude.NFData UpdateDetectorModel where
  rnf :: UpdateDetectorModel -> ()
rnf UpdateDetectorModel' {Maybe Text
Maybe EvaluationMethod
Text
DetectorModelDefinition
roleArn :: Text
detectorModelDefinition :: DetectorModelDefinition
detectorModelName :: Text
evaluationMethod :: Maybe EvaluationMethod
detectorModelDescription :: Maybe Text
$sel:roleArn:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:detectorModelDefinition:UpdateDetectorModel' :: UpdateDetectorModel -> DetectorModelDefinition
$sel:detectorModelName:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:evaluationMethod:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe EvaluationMethod
$sel:detectorModelDescription:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
detectorModelDescription
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe EvaluationMethod
evaluationMethod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
detectorModelName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf DetectorModelDefinition
detectorModelDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
roleArn

instance Data.ToHeaders UpdateDetectorModel where
  toHeaders :: UpdateDetectorModel -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty

instance Data.ToJSON UpdateDetectorModel where
  toJSON :: UpdateDetectorModel -> Value
toJSON UpdateDetectorModel' {Maybe Text
Maybe EvaluationMethod
Text
DetectorModelDefinition
roleArn :: Text
detectorModelDefinition :: DetectorModelDefinition
detectorModelName :: Text
evaluationMethod :: Maybe EvaluationMethod
detectorModelDescription :: Maybe Text
$sel:roleArn:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:detectorModelDefinition:UpdateDetectorModel' :: UpdateDetectorModel -> DetectorModelDefinition
$sel:detectorModelName:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:evaluationMethod:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe EvaluationMethod
$sel:detectorModelDescription:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"detectorModelDescription" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
detectorModelDescription,
            (Key
"evaluationMethod" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EvaluationMethod
evaluationMethod,
            forall a. a -> Maybe a
Prelude.Just
              ( Key
"detectorModelDefinition"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= DetectorModelDefinition
detectorModelDefinition
              ),
            forall a. a -> Maybe a
Prelude.Just (Key
"roleArn" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
roleArn)
          ]
      )

instance Data.ToPath UpdateDetectorModel where
  toPath :: UpdateDetectorModel -> ByteString
toPath UpdateDetectorModel' {Maybe Text
Maybe EvaluationMethod
Text
DetectorModelDefinition
roleArn :: Text
detectorModelDefinition :: DetectorModelDefinition
detectorModelName :: Text
evaluationMethod :: Maybe EvaluationMethod
detectorModelDescription :: Maybe Text
$sel:roleArn:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:detectorModelDefinition:UpdateDetectorModel' :: UpdateDetectorModel -> DetectorModelDefinition
$sel:detectorModelName:UpdateDetectorModel' :: UpdateDetectorModel -> Text
$sel:evaluationMethod:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe EvaluationMethod
$sel:detectorModelDescription:UpdateDetectorModel' :: UpdateDetectorModel -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ByteString
"/detector-models/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
detectorModelName]

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

-- | /See:/ 'newUpdateDetectorModelResponse' smart constructor.
data UpdateDetectorModelResponse = UpdateDetectorModelResponse'
  { -- | Information about how the detector model is configured.
    UpdateDetectorModelResponse -> Maybe DetectorModelConfiguration
detectorModelConfiguration :: Prelude.Maybe DetectorModelConfiguration,
    -- | The response's http status code.
    UpdateDetectorModelResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateDetectorModelResponse -> UpdateDetectorModelResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDetectorModelResponse -> UpdateDetectorModelResponse -> Bool
$c/= :: UpdateDetectorModelResponse -> UpdateDetectorModelResponse -> Bool
== :: UpdateDetectorModelResponse -> UpdateDetectorModelResponse -> Bool
$c== :: UpdateDetectorModelResponse -> UpdateDetectorModelResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDetectorModelResponse]
ReadPrec UpdateDetectorModelResponse
Int -> ReadS UpdateDetectorModelResponse
ReadS [UpdateDetectorModelResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDetectorModelResponse]
$creadListPrec :: ReadPrec [UpdateDetectorModelResponse]
readPrec :: ReadPrec UpdateDetectorModelResponse
$creadPrec :: ReadPrec UpdateDetectorModelResponse
readList :: ReadS [UpdateDetectorModelResponse]
$creadList :: ReadS [UpdateDetectorModelResponse]
readsPrec :: Int -> ReadS UpdateDetectorModelResponse
$creadsPrec :: Int -> ReadS UpdateDetectorModelResponse
Prelude.Read, Int -> UpdateDetectorModelResponse -> ShowS
[UpdateDetectorModelResponse] -> ShowS
UpdateDetectorModelResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDetectorModelResponse] -> ShowS
$cshowList :: [UpdateDetectorModelResponse] -> ShowS
show :: UpdateDetectorModelResponse -> String
$cshow :: UpdateDetectorModelResponse -> String
showsPrec :: Int -> UpdateDetectorModelResponse -> ShowS
$cshowsPrec :: Int -> UpdateDetectorModelResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateDetectorModelResponse x -> UpdateDetectorModelResponse
forall x.
UpdateDetectorModelResponse -> Rep UpdateDetectorModelResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDetectorModelResponse x -> UpdateDetectorModelResponse
$cfrom :: forall x.
UpdateDetectorModelResponse -> Rep UpdateDetectorModelResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDetectorModelResponse' 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:
--
-- 'detectorModelConfiguration', 'updateDetectorModelResponse_detectorModelConfiguration' - Information about how the detector model is configured.
--
-- 'httpStatus', 'updateDetectorModelResponse_httpStatus' - The response's http status code.
newUpdateDetectorModelResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDetectorModelResponse
newUpdateDetectorModelResponse :: Int -> UpdateDetectorModelResponse
newUpdateDetectorModelResponse Int
pHttpStatus_ =
  UpdateDetectorModelResponse'
    { $sel:detectorModelConfiguration:UpdateDetectorModelResponse' :: Maybe DetectorModelConfiguration
detectorModelConfiguration =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateDetectorModelResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | Information about how the detector model is configured.
updateDetectorModelResponse_detectorModelConfiguration :: Lens.Lens' UpdateDetectorModelResponse (Prelude.Maybe DetectorModelConfiguration)
updateDetectorModelResponse_detectorModelConfiguration :: Lens'
  UpdateDetectorModelResponse (Maybe DetectorModelConfiguration)
updateDetectorModelResponse_detectorModelConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDetectorModelResponse' {Maybe DetectorModelConfiguration
detectorModelConfiguration :: Maybe DetectorModelConfiguration
$sel:detectorModelConfiguration:UpdateDetectorModelResponse' :: UpdateDetectorModelResponse -> Maybe DetectorModelConfiguration
detectorModelConfiguration} -> Maybe DetectorModelConfiguration
detectorModelConfiguration) (\s :: UpdateDetectorModelResponse
s@UpdateDetectorModelResponse' {} Maybe DetectorModelConfiguration
a -> UpdateDetectorModelResponse
s {$sel:detectorModelConfiguration:UpdateDetectorModelResponse' :: Maybe DetectorModelConfiguration
detectorModelConfiguration = Maybe DetectorModelConfiguration
a} :: UpdateDetectorModelResponse)

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

instance Prelude.NFData UpdateDetectorModelResponse where
  rnf :: UpdateDetectorModelResponse -> ()
rnf UpdateDetectorModelResponse' {Int
Maybe DetectorModelConfiguration
httpStatus :: Int
detectorModelConfiguration :: Maybe DetectorModelConfiguration
$sel:httpStatus:UpdateDetectorModelResponse' :: UpdateDetectorModelResponse -> Int
$sel:detectorModelConfiguration:UpdateDetectorModelResponse' :: UpdateDetectorModelResponse -> Maybe DetectorModelConfiguration
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe DetectorModelConfiguration
detectorModelConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus