{-# 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.IoT.UpdateMitigationAction
(
UpdateMitigationAction (..),
newUpdateMitigationAction,
updateMitigationAction_actionParams,
updateMitigationAction_roleArn,
updateMitigationAction_actionName,
UpdateMitigationActionResponse (..),
newUpdateMitigationActionResponse,
updateMitigationActionResponse_actionArn,
updateMitigationActionResponse_actionId,
updateMitigationActionResponse_httpStatus,
)
where
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.IoT.Types
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response
data UpdateMitigationAction = UpdateMitigationAction'
{
UpdateMitigationAction -> Maybe MitigationActionParams
actionParams :: Prelude.Maybe MitigationActionParams,
UpdateMitigationAction -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
UpdateMitigationAction -> Text
actionName :: Prelude.Text
}
deriving (UpdateMitigationAction -> UpdateMitigationAction -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateMitigationAction -> UpdateMitigationAction -> Bool
$c/= :: UpdateMitigationAction -> UpdateMitigationAction -> Bool
== :: UpdateMitigationAction -> UpdateMitigationAction -> Bool
$c== :: UpdateMitigationAction -> UpdateMitigationAction -> Bool
Prelude.Eq, ReadPrec [UpdateMitigationAction]
ReadPrec UpdateMitigationAction
Int -> ReadS UpdateMitigationAction
ReadS [UpdateMitigationAction]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateMitigationAction]
$creadListPrec :: ReadPrec [UpdateMitigationAction]
readPrec :: ReadPrec UpdateMitigationAction
$creadPrec :: ReadPrec UpdateMitigationAction
readList :: ReadS [UpdateMitigationAction]
$creadList :: ReadS [UpdateMitigationAction]
readsPrec :: Int -> ReadS UpdateMitigationAction
$creadsPrec :: Int -> ReadS UpdateMitigationAction
Prelude.Read, Int -> UpdateMitigationAction -> ShowS
[UpdateMitigationAction] -> ShowS
UpdateMitigationAction -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateMitigationAction] -> ShowS
$cshowList :: [UpdateMitigationAction] -> ShowS
show :: UpdateMitigationAction -> String
$cshow :: UpdateMitigationAction -> String
showsPrec :: Int -> UpdateMitigationAction -> ShowS
$cshowsPrec :: Int -> UpdateMitigationAction -> ShowS
Prelude.Show, forall x. Rep UpdateMitigationAction x -> UpdateMitigationAction
forall x. UpdateMitigationAction -> Rep UpdateMitigationAction x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateMitigationAction x -> UpdateMitigationAction
$cfrom :: forall x. UpdateMitigationAction -> Rep UpdateMitigationAction x
Prelude.Generic)
newUpdateMitigationAction ::
Prelude.Text ->
UpdateMitigationAction
newUpdateMitigationAction :: Text -> UpdateMitigationAction
newUpdateMitigationAction Text
pActionName_ =
UpdateMitigationAction'
{ $sel:actionParams:UpdateMitigationAction' :: Maybe MitigationActionParams
actionParams =
forall a. Maybe a
Prelude.Nothing,
$sel:roleArn:UpdateMitigationAction' :: Maybe Text
roleArn = forall a. Maybe a
Prelude.Nothing,
$sel:actionName:UpdateMitigationAction' :: Text
actionName = Text
pActionName_
}
updateMitigationAction_actionParams :: Lens.Lens' UpdateMitigationAction (Prelude.Maybe MitigationActionParams)
updateMitigationAction_actionParams :: Lens' UpdateMitigationAction (Maybe MitigationActionParams)
updateMitigationAction_actionParams = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationAction' {Maybe MitigationActionParams
actionParams :: Maybe MitigationActionParams
$sel:actionParams:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe MitigationActionParams
actionParams} -> Maybe MitigationActionParams
actionParams) (\s :: UpdateMitigationAction
s@UpdateMitigationAction' {} Maybe MitigationActionParams
a -> UpdateMitigationAction
s {$sel:actionParams:UpdateMitigationAction' :: Maybe MitigationActionParams
actionParams = Maybe MitigationActionParams
a} :: UpdateMitigationAction)
updateMitigationAction_roleArn :: Lens.Lens' UpdateMitigationAction (Prelude.Maybe Prelude.Text)
updateMitigationAction_roleArn :: Lens' UpdateMitigationAction (Maybe Text)
updateMitigationAction_roleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationAction' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: UpdateMitigationAction
s@UpdateMitigationAction' {} Maybe Text
a -> UpdateMitigationAction
s {$sel:roleArn:UpdateMitigationAction' :: Maybe Text
roleArn = Maybe Text
a} :: UpdateMitigationAction)
updateMitigationAction_actionName :: Lens.Lens' UpdateMitigationAction Prelude.Text
updateMitigationAction_actionName :: Lens' UpdateMitigationAction Text
updateMitigationAction_actionName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationAction' {Text
actionName :: Text
$sel:actionName:UpdateMitigationAction' :: UpdateMitigationAction -> Text
actionName} -> Text
actionName) (\s :: UpdateMitigationAction
s@UpdateMitigationAction' {} Text
a -> UpdateMitigationAction
s {$sel:actionName:UpdateMitigationAction' :: Text
actionName = Text
a} :: UpdateMitigationAction)
instance Core.AWSRequest UpdateMitigationAction where
type
AWSResponse UpdateMitigationAction =
UpdateMitigationActionResponse
request :: (Service -> Service)
-> UpdateMitigationAction -> Request UpdateMitigationAction
request Service -> Service
overrides =
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.patchJSON (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy UpdateMitigationAction
-> ClientResponse ClientBody
-> m (Either
Error (ClientResponse (AWSResponse UpdateMitigationAction)))
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 -> Int -> UpdateMitigationActionResponse
UpdateMitigationActionResponse'
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
"actionArn")
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
"actionId")
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 UpdateMitigationAction where
hashWithSalt :: Int -> UpdateMitigationAction -> Int
hashWithSalt Int
_salt UpdateMitigationAction' {Maybe Text
Maybe MitigationActionParams
Text
actionName :: Text
roleArn :: Maybe Text
actionParams :: Maybe MitigationActionParams
$sel:actionName:UpdateMitigationAction' :: UpdateMitigationAction -> Text
$sel:roleArn:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe Text
$sel:actionParams:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe MitigationActionParams
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MitigationActionParams
actionParams
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
roleArn
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
actionName
instance Prelude.NFData UpdateMitigationAction where
rnf :: UpdateMitigationAction -> ()
rnf UpdateMitigationAction' {Maybe Text
Maybe MitigationActionParams
Text
actionName :: Text
roleArn :: Maybe Text
actionParams :: Maybe MitigationActionParams
$sel:actionName:UpdateMitigationAction' :: UpdateMitigationAction -> Text
$sel:roleArn:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe Text
$sel:actionParams:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe MitigationActionParams
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe MitigationActionParams
actionParams
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
roleArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
actionName
instance Data.ToHeaders UpdateMitigationAction where
toHeaders :: UpdateMitigationAction -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance Data.ToJSON UpdateMitigationAction where
toJSON :: UpdateMitigationAction -> Value
toJSON UpdateMitigationAction' {Maybe Text
Maybe MitigationActionParams
Text
actionName :: Text
roleArn :: Maybe Text
actionParams :: Maybe MitigationActionParams
$sel:actionName:UpdateMitigationAction' :: UpdateMitigationAction -> Text
$sel:roleArn:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe Text
$sel:actionParams:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe MitigationActionParams
..} =
[Pair] -> Value
Data.object
( forall a. [Maybe a] -> [a]
Prelude.catMaybes
[ (Key
"actionParams" 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 MitigationActionParams
actionParams,
(Key
"roleArn" 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
roleArn
]
)
instance Data.ToPath UpdateMitigationAction where
toPath :: UpdateMitigationAction -> ByteString
toPath UpdateMitigationAction' {Maybe Text
Maybe MitigationActionParams
Text
actionName :: Text
roleArn :: Maybe Text
actionParams :: Maybe MitigationActionParams
$sel:actionName:UpdateMitigationAction' :: UpdateMitigationAction -> Text
$sel:roleArn:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe Text
$sel:actionParams:UpdateMitigationAction' :: UpdateMitigationAction -> Maybe MitigationActionParams
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ByteString
"/mitigationactions/actions/", forall a. ToByteString a => a -> ByteString
Data.toBS Text
actionName]
instance Data.ToQuery UpdateMitigationAction where
toQuery :: UpdateMitigationAction -> QueryString
toQuery = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
data UpdateMitigationActionResponse = UpdateMitigationActionResponse'
{
UpdateMitigationActionResponse -> Maybe Text
actionArn :: Prelude.Maybe Prelude.Text,
UpdateMitigationActionResponse -> Maybe Text
actionId :: Prelude.Maybe Prelude.Text,
UpdateMitigationActionResponse -> Int
httpStatus :: Prelude.Int
}
deriving (UpdateMitigationActionResponse
-> UpdateMitigationActionResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateMitigationActionResponse
-> UpdateMitigationActionResponse -> Bool
$c/= :: UpdateMitigationActionResponse
-> UpdateMitigationActionResponse -> Bool
== :: UpdateMitigationActionResponse
-> UpdateMitigationActionResponse -> Bool
$c== :: UpdateMitigationActionResponse
-> UpdateMitigationActionResponse -> Bool
Prelude.Eq, ReadPrec [UpdateMitigationActionResponse]
ReadPrec UpdateMitigationActionResponse
Int -> ReadS UpdateMitigationActionResponse
ReadS [UpdateMitigationActionResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateMitigationActionResponse]
$creadListPrec :: ReadPrec [UpdateMitigationActionResponse]
readPrec :: ReadPrec UpdateMitigationActionResponse
$creadPrec :: ReadPrec UpdateMitigationActionResponse
readList :: ReadS [UpdateMitigationActionResponse]
$creadList :: ReadS [UpdateMitigationActionResponse]
readsPrec :: Int -> ReadS UpdateMitigationActionResponse
$creadsPrec :: Int -> ReadS UpdateMitigationActionResponse
Prelude.Read, Int -> UpdateMitigationActionResponse -> ShowS
[UpdateMitigationActionResponse] -> ShowS
UpdateMitigationActionResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateMitigationActionResponse] -> ShowS
$cshowList :: [UpdateMitigationActionResponse] -> ShowS
show :: UpdateMitigationActionResponse -> String
$cshow :: UpdateMitigationActionResponse -> String
showsPrec :: Int -> UpdateMitigationActionResponse -> ShowS
$cshowsPrec :: Int -> UpdateMitigationActionResponse -> ShowS
Prelude.Show, forall x.
Rep UpdateMitigationActionResponse x
-> UpdateMitigationActionResponse
forall x.
UpdateMitigationActionResponse
-> Rep UpdateMitigationActionResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateMitigationActionResponse x
-> UpdateMitigationActionResponse
$cfrom :: forall x.
UpdateMitigationActionResponse
-> Rep UpdateMitigationActionResponse x
Prelude.Generic)
newUpdateMitigationActionResponse ::
Prelude.Int ->
UpdateMitigationActionResponse
newUpdateMitigationActionResponse :: Int -> UpdateMitigationActionResponse
newUpdateMitigationActionResponse Int
pHttpStatus_ =
UpdateMitigationActionResponse'
{ $sel:actionArn:UpdateMitigationActionResponse' :: Maybe Text
actionArn =
forall a. Maybe a
Prelude.Nothing,
$sel:actionId:UpdateMitigationActionResponse' :: Maybe Text
actionId = forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:UpdateMitigationActionResponse' :: Int
httpStatus = Int
pHttpStatus_
}
updateMitigationActionResponse_actionArn :: Lens.Lens' UpdateMitigationActionResponse (Prelude.Maybe Prelude.Text)
updateMitigationActionResponse_actionArn :: Lens' UpdateMitigationActionResponse (Maybe Text)
updateMitigationActionResponse_actionArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationActionResponse' {Maybe Text
actionArn :: Maybe Text
$sel:actionArn:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Maybe Text
actionArn} -> Maybe Text
actionArn) (\s :: UpdateMitigationActionResponse
s@UpdateMitigationActionResponse' {} Maybe Text
a -> UpdateMitigationActionResponse
s {$sel:actionArn:UpdateMitigationActionResponse' :: Maybe Text
actionArn = Maybe Text
a} :: UpdateMitigationActionResponse)
updateMitigationActionResponse_actionId :: Lens.Lens' UpdateMitigationActionResponse (Prelude.Maybe Prelude.Text)
updateMitigationActionResponse_actionId :: Lens' UpdateMitigationActionResponse (Maybe Text)
updateMitigationActionResponse_actionId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationActionResponse' {Maybe Text
actionId :: Maybe Text
$sel:actionId:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Maybe Text
actionId} -> Maybe Text
actionId) (\s :: UpdateMitigationActionResponse
s@UpdateMitigationActionResponse' {} Maybe Text
a -> UpdateMitigationActionResponse
s {$sel:actionId:UpdateMitigationActionResponse' :: Maybe Text
actionId = Maybe Text
a} :: UpdateMitigationActionResponse)
updateMitigationActionResponse_httpStatus :: Lens.Lens' UpdateMitigationActionResponse Prelude.Int
updateMitigationActionResponse_httpStatus :: Lens' UpdateMitigationActionResponse Int
updateMitigationActionResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateMitigationActionResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateMitigationActionResponse
s@UpdateMitigationActionResponse' {} Int
a -> UpdateMitigationActionResponse
s {$sel:httpStatus:UpdateMitigationActionResponse' :: Int
httpStatus = Int
a} :: UpdateMitigationActionResponse)
instance
Prelude.NFData
UpdateMitigationActionResponse
where
rnf :: UpdateMitigationActionResponse -> ()
rnf UpdateMitigationActionResponse' {Int
Maybe Text
httpStatus :: Int
actionId :: Maybe Text
actionArn :: Maybe Text
$sel:httpStatus:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Int
$sel:actionId:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Maybe Text
$sel:actionArn:UpdateMitigationActionResponse' :: UpdateMitigationActionResponse -> Maybe Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
actionArn
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
actionId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus