{-# 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 #-}
module Amazonka.AuditManager.UpdateAssessmentControl
(
UpdateAssessmentControl (..),
newUpdateAssessmentControl,
updateAssessmentControl_commentBody,
updateAssessmentControl_controlStatus,
updateAssessmentControl_assessmentId,
updateAssessmentControl_controlSetId,
updateAssessmentControl_controlId,
UpdateAssessmentControlResponse (..),
newUpdateAssessmentControlResponse,
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
data UpdateAssessmentControl = UpdateAssessmentControl'
{
UpdateAssessmentControl -> Maybe Text
commentBody :: Prelude.Maybe Prelude.Text,
UpdateAssessmentControl -> Maybe ControlStatus
controlStatus :: Prelude.Maybe ControlStatus,
UpdateAssessmentControl -> Text
assessmentId :: Prelude.Text,
UpdateAssessmentControl -> Text
controlSetId :: Prelude.Text,
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)
newUpdateAssessmentControl ::
Prelude.Text ->
Prelude.Text ->
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_
}
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)
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)
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)
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)
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
data UpdateAssessmentControlResponse = UpdateAssessmentControlResponse'
{
UpdateAssessmentControlResponse -> Maybe AssessmentControl
control :: Prelude.Maybe AssessmentControl,
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)
newUpdateAssessmentControlResponse ::
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_
}
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)
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