{-# 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.AuditManager.UpdateAssessmentControl
-- 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 control within an assessment in Audit Manager.
module Amazonka.AuditManager.UpdateAssessmentControl
  ( -- * Creating a Request
    UpdateAssessmentControl (..),
    newUpdateAssessmentControl,

    -- * Request Lenses
    updateAssessmentControl_commentBody,
    updateAssessmentControl_controlStatus,
    updateAssessmentControl_assessmentId,
    updateAssessmentControl_controlSetId,
    updateAssessmentControl_controlId,

    -- * Destructuring the Response
    UpdateAssessmentControlResponse (..),
    newUpdateAssessmentControlResponse,

    -- * Response Lenses
    updateAssessmentControlResponse_control,
    updateAssessmentControlResponse_httpStatus,
  )
where

import Amazonka.AuditManager.Types
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 qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | /See:/ 'newUpdateAssessmentControl' smart constructor.
data UpdateAssessmentControl = UpdateAssessmentControl'
  { -- | The comment body text for the control.
    UpdateAssessmentControl -> Maybe Text
commentBody :: Prelude.Maybe Prelude.Text,
    -- | The status of the control.
    UpdateAssessmentControl -> Maybe ControlStatus
controlStatus :: Prelude.Maybe ControlStatus,
    -- | The unique identifier for the assessment.
    UpdateAssessmentControl -> Text
assessmentId :: Prelude.Text,
    -- | The unique identifier for the control set.
    UpdateAssessmentControl -> Text
controlSetId :: Prelude.Text,
    -- | The unique identifier for the control.
    UpdateAssessmentControl -> Text
controlId :: Prelude.Text
  }
  deriving (UpdateAssessmentControl -> UpdateAssessmentControl -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAssessmentControl -> UpdateAssessmentControl -> Bool
$c/= :: UpdateAssessmentControl -> UpdateAssessmentControl -> Bool
== :: UpdateAssessmentControl -> UpdateAssessmentControl -> Bool
$c== :: UpdateAssessmentControl -> UpdateAssessmentControl -> Bool
Prelude.Eq, ReadPrec [UpdateAssessmentControl]
ReadPrec UpdateAssessmentControl
Int -> ReadS UpdateAssessmentControl
ReadS [UpdateAssessmentControl]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAssessmentControl]
$creadListPrec :: ReadPrec [UpdateAssessmentControl]
readPrec :: ReadPrec UpdateAssessmentControl
$creadPrec :: ReadPrec UpdateAssessmentControl
readList :: ReadS [UpdateAssessmentControl]
$creadList :: ReadS [UpdateAssessmentControl]
readsPrec :: Int -> ReadS UpdateAssessmentControl
$creadsPrec :: Int -> ReadS UpdateAssessmentControl
Prelude.Read, Int -> UpdateAssessmentControl -> ShowS
[UpdateAssessmentControl] -> ShowS
UpdateAssessmentControl -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAssessmentControl] -> ShowS
$cshowList :: [UpdateAssessmentControl] -> ShowS
show :: UpdateAssessmentControl -> String
$cshow :: UpdateAssessmentControl -> String
showsPrec :: Int -> UpdateAssessmentControl -> ShowS
$cshowsPrec :: Int -> UpdateAssessmentControl -> ShowS
Prelude.Show, forall x. Rep UpdateAssessmentControl x -> UpdateAssessmentControl
forall x. UpdateAssessmentControl -> Rep UpdateAssessmentControl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateAssessmentControl x -> UpdateAssessmentControl
$cfrom :: forall x. UpdateAssessmentControl -> Rep UpdateAssessmentControl x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAssessmentControl' 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:
--
-- 'commentBody', 'updateAssessmentControl_commentBody' - The comment body text for the control.
--
-- 'controlStatus', 'updateAssessmentControl_controlStatus' - The status of the control.
--
-- 'assessmentId', 'updateAssessmentControl_assessmentId' - The unique identifier for the assessment.
--
-- 'controlSetId', 'updateAssessmentControl_controlSetId' - The unique identifier for the control set.
--
-- 'controlId', 'updateAssessmentControl_controlId' - The unique identifier for the control.
newUpdateAssessmentControl ::
  -- | 'assessmentId'
  Prelude.Text ->
  -- | 'controlSetId'
  Prelude.Text ->
  -- | 'controlId'
  Prelude.Text ->
  UpdateAssessmentControl
newUpdateAssessmentControl :: Text -> Text -> Text -> UpdateAssessmentControl
newUpdateAssessmentControl
  Text
pAssessmentId_
  Text
pControlSetId_
  Text
pControlId_ =
    UpdateAssessmentControl'
      { $sel:commentBody:UpdateAssessmentControl' :: Maybe Text
commentBody =
          forall a. Maybe a
Prelude.Nothing,
        $sel:controlStatus:UpdateAssessmentControl' :: Maybe ControlStatus
controlStatus = forall a. Maybe a
Prelude.Nothing,
        $sel:assessmentId:UpdateAssessmentControl' :: Text
assessmentId = Text
pAssessmentId_,
        $sel:controlSetId:UpdateAssessmentControl' :: Text
controlSetId = Text
pControlSetId_,
        $sel:controlId:UpdateAssessmentControl' :: Text
controlId = Text
pControlId_
      }

-- | The comment body text for the control.
updateAssessmentControl_commentBody :: Lens.Lens' UpdateAssessmentControl (Prelude.Maybe Prelude.Text)
updateAssessmentControl_commentBody :: Lens' UpdateAssessmentControl (Maybe Text)
updateAssessmentControl_commentBody = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControl' {Maybe Text
commentBody :: Maybe Text
$sel:commentBody:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe Text
commentBody} -> Maybe Text
commentBody) (\s :: UpdateAssessmentControl
s@UpdateAssessmentControl' {} Maybe Text
a -> UpdateAssessmentControl
s {$sel:commentBody:UpdateAssessmentControl' :: Maybe Text
commentBody = Maybe Text
a} :: UpdateAssessmentControl)

-- | The status of the control.
updateAssessmentControl_controlStatus :: Lens.Lens' UpdateAssessmentControl (Prelude.Maybe ControlStatus)
updateAssessmentControl_controlStatus :: Lens' UpdateAssessmentControl (Maybe ControlStatus)
updateAssessmentControl_controlStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControl' {Maybe ControlStatus
controlStatus :: Maybe ControlStatus
$sel:controlStatus:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe ControlStatus
controlStatus} -> Maybe ControlStatus
controlStatus) (\s :: UpdateAssessmentControl
s@UpdateAssessmentControl' {} Maybe ControlStatus
a -> UpdateAssessmentControl
s {$sel:controlStatus:UpdateAssessmentControl' :: Maybe ControlStatus
controlStatus = Maybe ControlStatus
a} :: UpdateAssessmentControl)

-- | The unique identifier for the assessment.
updateAssessmentControl_assessmentId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
updateAssessmentControl_assessmentId :: Lens' UpdateAssessmentControl Text
updateAssessmentControl_assessmentId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControl' {Text
assessmentId :: Text
$sel:assessmentId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
assessmentId} -> Text
assessmentId) (\s :: UpdateAssessmentControl
s@UpdateAssessmentControl' {} Text
a -> UpdateAssessmentControl
s {$sel:assessmentId:UpdateAssessmentControl' :: Text
assessmentId = Text
a} :: UpdateAssessmentControl)

-- | The unique identifier for the control set.
updateAssessmentControl_controlSetId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
updateAssessmentControl_controlSetId :: Lens' UpdateAssessmentControl Text
updateAssessmentControl_controlSetId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControl' {Text
controlSetId :: Text
$sel:controlSetId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
controlSetId} -> Text
controlSetId) (\s :: UpdateAssessmentControl
s@UpdateAssessmentControl' {} Text
a -> UpdateAssessmentControl
s {$sel:controlSetId:UpdateAssessmentControl' :: Text
controlSetId = Text
a} :: UpdateAssessmentControl)

-- | The unique identifier for the control.
updateAssessmentControl_controlId :: Lens.Lens' UpdateAssessmentControl Prelude.Text
updateAssessmentControl_controlId :: Lens' UpdateAssessmentControl Text
updateAssessmentControl_controlId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControl' {Text
controlId :: Text
$sel:controlId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
controlId} -> Text
controlId) (\s :: UpdateAssessmentControl
s@UpdateAssessmentControl' {} Text
a -> UpdateAssessmentControl
s {$sel:controlId:UpdateAssessmentControl' :: Text
controlId = Text
a} :: UpdateAssessmentControl)

instance Core.AWSRequest UpdateAssessmentControl where
  type
    AWSResponse UpdateAssessmentControl =
      UpdateAssessmentControlResponse
  request :: (Service -> Service)
-> UpdateAssessmentControl -> Request UpdateAssessmentControl
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.putJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateAssessmentControl
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateAssessmentControl)))
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 AssessmentControl -> Int -> UpdateAssessmentControlResponse
UpdateAssessmentControlResponse'
            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
"control")
            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 UpdateAssessmentControl where
  hashWithSalt :: Int -> UpdateAssessmentControl -> Int
hashWithSalt Int
_salt UpdateAssessmentControl' {Maybe Text
Maybe ControlStatus
Text
controlId :: Text
controlSetId :: Text
assessmentId :: Text
controlStatus :: Maybe ControlStatus
commentBody :: Maybe Text
$sel:controlId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlSetId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:assessmentId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlStatus:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe ControlStatus
$sel:commentBody:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
commentBody
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ControlStatus
controlStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
assessmentId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
controlSetId
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
controlId

instance Prelude.NFData UpdateAssessmentControl where
  rnf :: UpdateAssessmentControl -> ()
rnf UpdateAssessmentControl' {Maybe Text
Maybe ControlStatus
Text
controlId :: Text
controlSetId :: Text
assessmentId :: Text
controlStatus :: Maybe ControlStatus
commentBody :: Maybe Text
$sel:controlId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlSetId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:assessmentId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlStatus:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe ControlStatus
$sel:commentBody:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
commentBody
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ControlStatus
controlStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
assessmentId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
controlSetId
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
controlId

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

instance Data.ToJSON UpdateAssessmentControl where
  toJSON :: UpdateAssessmentControl -> Value
toJSON UpdateAssessmentControl' {Maybe Text
Maybe ControlStatus
Text
controlId :: Text
controlSetId :: Text
assessmentId :: Text
controlStatus :: Maybe ControlStatus
commentBody :: Maybe Text
$sel:controlId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlSetId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:assessmentId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlStatus:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe ControlStatus
$sel:commentBody:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"commentBody" 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
commentBody,
            (Key
"controlStatus" 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 ControlStatus
controlStatus
          ]
      )

instance Data.ToPath UpdateAssessmentControl where
  toPath :: UpdateAssessmentControl -> ByteString
toPath UpdateAssessmentControl' {Maybe Text
Maybe ControlStatus
Text
controlId :: Text
controlSetId :: Text
assessmentId :: Text
controlStatus :: Maybe ControlStatus
commentBody :: Maybe Text
$sel:controlId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlSetId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:assessmentId:UpdateAssessmentControl' :: UpdateAssessmentControl -> Text
$sel:controlStatus:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe ControlStatus
$sel:commentBody:UpdateAssessmentControl' :: UpdateAssessmentControl -> Maybe Text
..} =
    forall a. Monoid a => [a] -> a
Prelude.mconcat
      [ ByteString
"/assessments/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
assessmentId,
        ByteString
"/controlSets/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
controlSetId,
        ByteString
"/controls/",
        forall a. ToByteString a => a -> ByteString
Data.toBS Text
controlId
      ]

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

-- | /See:/ 'newUpdateAssessmentControlResponse' smart constructor.
data UpdateAssessmentControlResponse = UpdateAssessmentControlResponse'
  { -- | The name of the updated control set that the @UpdateAssessmentControl@
    -- API returned.
    UpdateAssessmentControlResponse -> Maybe AssessmentControl
control :: Prelude.Maybe AssessmentControl,
    -- | The response's http status code.
    UpdateAssessmentControlResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateAssessmentControlResponse
-> UpdateAssessmentControlResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateAssessmentControlResponse
-> UpdateAssessmentControlResponse -> Bool
$c/= :: UpdateAssessmentControlResponse
-> UpdateAssessmentControlResponse -> Bool
== :: UpdateAssessmentControlResponse
-> UpdateAssessmentControlResponse -> Bool
$c== :: UpdateAssessmentControlResponse
-> UpdateAssessmentControlResponse -> Bool
Prelude.Eq, ReadPrec [UpdateAssessmentControlResponse]
ReadPrec UpdateAssessmentControlResponse
Int -> ReadS UpdateAssessmentControlResponse
ReadS [UpdateAssessmentControlResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateAssessmentControlResponse]
$creadListPrec :: ReadPrec [UpdateAssessmentControlResponse]
readPrec :: ReadPrec UpdateAssessmentControlResponse
$creadPrec :: ReadPrec UpdateAssessmentControlResponse
readList :: ReadS [UpdateAssessmentControlResponse]
$creadList :: ReadS [UpdateAssessmentControlResponse]
readsPrec :: Int -> ReadS UpdateAssessmentControlResponse
$creadsPrec :: Int -> ReadS UpdateAssessmentControlResponse
Prelude.Read, Int -> UpdateAssessmentControlResponse -> ShowS
[UpdateAssessmentControlResponse] -> ShowS
UpdateAssessmentControlResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateAssessmentControlResponse] -> ShowS
$cshowList :: [UpdateAssessmentControlResponse] -> ShowS
show :: UpdateAssessmentControlResponse -> String
$cshow :: UpdateAssessmentControlResponse -> String
showsPrec :: Int -> UpdateAssessmentControlResponse -> ShowS
$cshowsPrec :: Int -> UpdateAssessmentControlResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateAssessmentControlResponse x
-> UpdateAssessmentControlResponse
forall x.
UpdateAssessmentControlResponse
-> Rep UpdateAssessmentControlResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateAssessmentControlResponse x
-> UpdateAssessmentControlResponse
$cfrom :: forall x.
UpdateAssessmentControlResponse
-> Rep UpdateAssessmentControlResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateAssessmentControlResponse' 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:
--
-- 'control', 'updateAssessmentControlResponse_control' - The name of the updated control set that the @UpdateAssessmentControl@
-- API returned.
--
-- 'httpStatus', 'updateAssessmentControlResponse_httpStatus' - The response's http status code.
newUpdateAssessmentControlResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateAssessmentControlResponse
newUpdateAssessmentControlResponse :: Int -> UpdateAssessmentControlResponse
newUpdateAssessmentControlResponse Int
pHttpStatus_ =
  UpdateAssessmentControlResponse'
    { $sel:control:UpdateAssessmentControlResponse' :: Maybe AssessmentControl
control =
        forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateAssessmentControlResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | The name of the updated control set that the @UpdateAssessmentControl@
-- API returned.
updateAssessmentControlResponse_control :: Lens.Lens' UpdateAssessmentControlResponse (Prelude.Maybe AssessmentControl)
updateAssessmentControlResponse_control :: Lens' UpdateAssessmentControlResponse (Maybe AssessmentControl)
updateAssessmentControlResponse_control = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateAssessmentControlResponse' {Maybe AssessmentControl
control :: Maybe AssessmentControl
$sel:control:UpdateAssessmentControlResponse' :: UpdateAssessmentControlResponse -> Maybe AssessmentControl
control} -> Maybe AssessmentControl
control) (\s :: UpdateAssessmentControlResponse
s@UpdateAssessmentControlResponse' {} Maybe AssessmentControl
a -> UpdateAssessmentControlResponse
s {$sel:control:UpdateAssessmentControlResponse' :: Maybe AssessmentControl
control = Maybe AssessmentControl
a} :: UpdateAssessmentControlResponse)

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

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