{-# 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.AutoScaling.TerminateInstanceInAutoScalingGroup
(
TerminateInstanceInAutoScalingGroup (..),
newTerminateInstanceInAutoScalingGroup,
terminateInstanceInAutoScalingGroup_instanceId,
terminateInstanceInAutoScalingGroup_shouldDecrementDesiredCapacity,
TerminateInstanceInAutoScalingGroupResponse (..),
newTerminateInstanceInAutoScalingGroupResponse,
terminateInstanceInAutoScalingGroupResponse_activity,
terminateInstanceInAutoScalingGroupResponse_httpStatus,
)
where
import Amazonka.AutoScaling.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 TerminateInstanceInAutoScalingGroup = TerminateInstanceInAutoScalingGroup'
{
TerminateInstanceInAutoScalingGroup -> Text
instanceId :: Prelude.Text,
TerminateInstanceInAutoScalingGroup -> Bool
shouldDecrementDesiredCapacity :: Prelude.Bool
}
deriving (TerminateInstanceInAutoScalingGroup
-> TerminateInstanceInAutoScalingGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TerminateInstanceInAutoScalingGroup
-> TerminateInstanceInAutoScalingGroup -> Bool
$c/= :: TerminateInstanceInAutoScalingGroup
-> TerminateInstanceInAutoScalingGroup -> Bool
== :: TerminateInstanceInAutoScalingGroup
-> TerminateInstanceInAutoScalingGroup -> Bool
$c== :: TerminateInstanceInAutoScalingGroup
-> TerminateInstanceInAutoScalingGroup -> Bool
Prelude.Eq, ReadPrec [TerminateInstanceInAutoScalingGroup]
ReadPrec TerminateInstanceInAutoScalingGroup
Int -> ReadS TerminateInstanceInAutoScalingGroup
ReadS [TerminateInstanceInAutoScalingGroup]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TerminateInstanceInAutoScalingGroup]
$creadListPrec :: ReadPrec [TerminateInstanceInAutoScalingGroup]
readPrec :: ReadPrec TerminateInstanceInAutoScalingGroup
$creadPrec :: ReadPrec TerminateInstanceInAutoScalingGroup
readList :: ReadS [TerminateInstanceInAutoScalingGroup]
$creadList :: ReadS [TerminateInstanceInAutoScalingGroup]
readsPrec :: Int -> ReadS TerminateInstanceInAutoScalingGroup
$creadsPrec :: Int -> ReadS TerminateInstanceInAutoScalingGroup
Prelude.Read, Int -> TerminateInstanceInAutoScalingGroup -> ShowS
[TerminateInstanceInAutoScalingGroup] -> ShowS
TerminateInstanceInAutoScalingGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TerminateInstanceInAutoScalingGroup] -> ShowS
$cshowList :: [TerminateInstanceInAutoScalingGroup] -> ShowS
show :: TerminateInstanceInAutoScalingGroup -> String
$cshow :: TerminateInstanceInAutoScalingGroup -> String
showsPrec :: Int -> TerminateInstanceInAutoScalingGroup -> ShowS
$cshowsPrec :: Int -> TerminateInstanceInAutoScalingGroup -> ShowS
Prelude.Show, forall x.
Rep TerminateInstanceInAutoScalingGroup x
-> TerminateInstanceInAutoScalingGroup
forall x.
TerminateInstanceInAutoScalingGroup
-> Rep TerminateInstanceInAutoScalingGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep TerminateInstanceInAutoScalingGroup x
-> TerminateInstanceInAutoScalingGroup
$cfrom :: forall x.
TerminateInstanceInAutoScalingGroup
-> Rep TerminateInstanceInAutoScalingGroup x
Prelude.Generic)
newTerminateInstanceInAutoScalingGroup ::
Prelude.Text ->
Prelude.Bool ->
TerminateInstanceInAutoScalingGroup
newTerminateInstanceInAutoScalingGroup :: Text -> Bool -> TerminateInstanceInAutoScalingGroup
newTerminateInstanceInAutoScalingGroup
Text
pInstanceId_
Bool
pShouldDecrementDesiredCapacity_ =
TerminateInstanceInAutoScalingGroup'
{ $sel:instanceId:TerminateInstanceInAutoScalingGroup' :: Text
instanceId =
Text
pInstanceId_,
$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: Bool
shouldDecrementDesiredCapacity =
Bool
pShouldDecrementDesiredCapacity_
}
terminateInstanceInAutoScalingGroup_instanceId :: Lens.Lens' TerminateInstanceInAutoScalingGroup Prelude.Text
terminateInstanceInAutoScalingGroup_instanceId :: Lens' TerminateInstanceInAutoScalingGroup Text
terminateInstanceInAutoScalingGroup_instanceId = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TerminateInstanceInAutoScalingGroup' {Text
instanceId :: Text
$sel:instanceId:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Text
instanceId} -> Text
instanceId) (\s :: TerminateInstanceInAutoScalingGroup
s@TerminateInstanceInAutoScalingGroup' {} Text
a -> TerminateInstanceInAutoScalingGroup
s {$sel:instanceId:TerminateInstanceInAutoScalingGroup' :: Text
instanceId = Text
a} :: TerminateInstanceInAutoScalingGroup)
terminateInstanceInAutoScalingGroup_shouldDecrementDesiredCapacity :: Lens.Lens' TerminateInstanceInAutoScalingGroup Prelude.Bool
terminateInstanceInAutoScalingGroup_shouldDecrementDesiredCapacity :: Lens' TerminateInstanceInAutoScalingGroup Bool
terminateInstanceInAutoScalingGroup_shouldDecrementDesiredCapacity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TerminateInstanceInAutoScalingGroup' {Bool
shouldDecrementDesiredCapacity :: Bool
$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Bool
shouldDecrementDesiredCapacity} -> Bool
shouldDecrementDesiredCapacity) (\s :: TerminateInstanceInAutoScalingGroup
s@TerminateInstanceInAutoScalingGroup' {} Bool
a -> TerminateInstanceInAutoScalingGroup
s {$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: Bool
shouldDecrementDesiredCapacity = Bool
a} :: TerminateInstanceInAutoScalingGroup)
instance
Core.AWSRequest
TerminateInstanceInAutoScalingGroup
where
type
AWSResponse TerminateInstanceInAutoScalingGroup =
TerminateInstanceInAutoScalingGroupResponse
request :: (Service -> Service)
-> TerminateInstanceInAutoScalingGroup
-> Request TerminateInstanceInAutoScalingGroup
request Service -> Service
overrides =
forall a. ToRequest a => Service -> a -> Request a
Request.postQuery (Service -> Service
overrides Service
defaultService)
response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy TerminateInstanceInAutoScalingGroup
-> ClientResponse ClientBody
-> m (Either
Error
(ClientResponse (AWSResponse TerminateInstanceInAutoScalingGroup)))
response =
forall (m :: * -> *) a.
MonadResource m =>
Text
-> (Int
-> ResponseHeaders -> [Node] -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveXMLWrapper
Text
"TerminateInstanceInAutoScalingGroupResult"
( \Int
s ResponseHeaders
h [Node]
x ->
Maybe Activity
-> Int -> TerminateInstanceInAutoScalingGroupResponse
TerminateInstanceInAutoScalingGroupResponse'
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ([Node]
x forall a. FromXML a => [Node] -> Text -> Either String (Maybe a)
Data..@? Text
"Activity")
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
TerminateInstanceInAutoScalingGroup
where
hashWithSalt :: Int -> TerminateInstanceInAutoScalingGroup -> Int
hashWithSalt
Int
_salt
TerminateInstanceInAutoScalingGroup' {Bool
Text
shouldDecrementDesiredCapacity :: Bool
instanceId :: Text
$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Bool
$sel:instanceId:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Text
..} =
Int
_salt
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
instanceId
forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Bool
shouldDecrementDesiredCapacity
instance
Prelude.NFData
TerminateInstanceInAutoScalingGroup
where
rnf :: TerminateInstanceInAutoScalingGroup -> ()
rnf TerminateInstanceInAutoScalingGroup' {Bool
Text
shouldDecrementDesiredCapacity :: Bool
instanceId :: Text
$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Bool
$sel:instanceId:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Text
..} =
forall a. NFData a => a -> ()
Prelude.rnf Text
instanceId
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Bool
shouldDecrementDesiredCapacity
instance
Data.ToHeaders
TerminateInstanceInAutoScalingGroup
where
toHeaders :: TerminateInstanceInAutoScalingGroup -> ResponseHeaders
toHeaders = forall a b. a -> b -> a
Prelude.const forall a. Monoid a => a
Prelude.mempty
instance
Data.ToPath
TerminateInstanceInAutoScalingGroup
where
toPath :: TerminateInstanceInAutoScalingGroup -> ByteString
toPath = forall a b. a -> b -> a
Prelude.const ByteString
"/"
instance
Data.ToQuery
TerminateInstanceInAutoScalingGroup
where
toQuery :: TerminateInstanceInAutoScalingGroup -> QueryString
toQuery TerminateInstanceInAutoScalingGroup' {Bool
Text
shouldDecrementDesiredCapacity :: Bool
instanceId :: Text
$sel:shouldDecrementDesiredCapacity:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Bool
$sel:instanceId:TerminateInstanceInAutoScalingGroup' :: TerminateInstanceInAutoScalingGroup -> Text
..} =
forall a. Monoid a => [a] -> a
Prelude.mconcat
[ ByteString
"Action"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: ( ByteString
"TerminateInstanceInAutoScalingGroup" ::
Prelude.ByteString
),
ByteString
"Version"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: (ByteString
"2011-01-01" :: Prelude.ByteString),
ByteString
"InstanceId" forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Text
instanceId,
ByteString
"ShouldDecrementDesiredCapacity"
forall a. ToQuery a => ByteString -> a -> QueryString
Data.=: Bool
shouldDecrementDesiredCapacity
]
data TerminateInstanceInAutoScalingGroupResponse = TerminateInstanceInAutoScalingGroupResponse'
{
TerminateInstanceInAutoScalingGroupResponse -> Maybe Activity
activity :: Prelude.Maybe Activity,
TerminateInstanceInAutoScalingGroupResponse -> Int
httpStatus :: Prelude.Int
}
deriving (TerminateInstanceInAutoScalingGroupResponse
-> TerminateInstanceInAutoScalingGroupResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TerminateInstanceInAutoScalingGroupResponse
-> TerminateInstanceInAutoScalingGroupResponse -> Bool
$c/= :: TerminateInstanceInAutoScalingGroupResponse
-> TerminateInstanceInAutoScalingGroupResponse -> Bool
== :: TerminateInstanceInAutoScalingGroupResponse
-> TerminateInstanceInAutoScalingGroupResponse -> Bool
$c== :: TerminateInstanceInAutoScalingGroupResponse
-> TerminateInstanceInAutoScalingGroupResponse -> Bool
Prelude.Eq, ReadPrec [TerminateInstanceInAutoScalingGroupResponse]
ReadPrec TerminateInstanceInAutoScalingGroupResponse
Int -> ReadS TerminateInstanceInAutoScalingGroupResponse
ReadS [TerminateInstanceInAutoScalingGroupResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [TerminateInstanceInAutoScalingGroupResponse]
$creadListPrec :: ReadPrec [TerminateInstanceInAutoScalingGroupResponse]
readPrec :: ReadPrec TerminateInstanceInAutoScalingGroupResponse
$creadPrec :: ReadPrec TerminateInstanceInAutoScalingGroupResponse
readList :: ReadS [TerminateInstanceInAutoScalingGroupResponse]
$creadList :: ReadS [TerminateInstanceInAutoScalingGroupResponse]
readsPrec :: Int -> ReadS TerminateInstanceInAutoScalingGroupResponse
$creadsPrec :: Int -> ReadS TerminateInstanceInAutoScalingGroupResponse
Prelude.Read, Int -> TerminateInstanceInAutoScalingGroupResponse -> ShowS
[TerminateInstanceInAutoScalingGroupResponse] -> ShowS
TerminateInstanceInAutoScalingGroupResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TerminateInstanceInAutoScalingGroupResponse] -> ShowS
$cshowList :: [TerminateInstanceInAutoScalingGroupResponse] -> ShowS
show :: TerminateInstanceInAutoScalingGroupResponse -> String
$cshow :: TerminateInstanceInAutoScalingGroupResponse -> String
showsPrec :: Int -> TerminateInstanceInAutoScalingGroupResponse -> ShowS
$cshowsPrec :: Int -> TerminateInstanceInAutoScalingGroupResponse -> ShowS
Prelude.Show, forall x.
Rep TerminateInstanceInAutoScalingGroupResponse x
-> TerminateInstanceInAutoScalingGroupResponse
forall x.
TerminateInstanceInAutoScalingGroupResponse
-> Rep TerminateInstanceInAutoScalingGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep TerminateInstanceInAutoScalingGroupResponse x
-> TerminateInstanceInAutoScalingGroupResponse
$cfrom :: forall x.
TerminateInstanceInAutoScalingGroupResponse
-> Rep TerminateInstanceInAutoScalingGroupResponse x
Prelude.Generic)
newTerminateInstanceInAutoScalingGroupResponse ::
Prelude.Int ->
TerminateInstanceInAutoScalingGroupResponse
newTerminateInstanceInAutoScalingGroupResponse :: Int -> TerminateInstanceInAutoScalingGroupResponse
newTerminateInstanceInAutoScalingGroupResponse
Int
pHttpStatus_ =
TerminateInstanceInAutoScalingGroupResponse'
{ $sel:activity:TerminateInstanceInAutoScalingGroupResponse' :: Maybe Activity
activity =
forall a. Maybe a
Prelude.Nothing,
$sel:httpStatus:TerminateInstanceInAutoScalingGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
}
terminateInstanceInAutoScalingGroupResponse_activity :: Lens.Lens' TerminateInstanceInAutoScalingGroupResponse (Prelude.Maybe Activity)
terminateInstanceInAutoScalingGroupResponse_activity :: Lens' TerminateInstanceInAutoScalingGroupResponse (Maybe Activity)
terminateInstanceInAutoScalingGroupResponse_activity = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TerminateInstanceInAutoScalingGroupResponse' {Maybe Activity
activity :: Maybe Activity
$sel:activity:TerminateInstanceInAutoScalingGroupResponse' :: TerminateInstanceInAutoScalingGroupResponse -> Maybe Activity
activity} -> Maybe Activity
activity) (\s :: TerminateInstanceInAutoScalingGroupResponse
s@TerminateInstanceInAutoScalingGroupResponse' {} Maybe Activity
a -> TerminateInstanceInAutoScalingGroupResponse
s {$sel:activity:TerminateInstanceInAutoScalingGroupResponse' :: Maybe Activity
activity = Maybe Activity
a} :: TerminateInstanceInAutoScalingGroupResponse)
terminateInstanceInAutoScalingGroupResponse_httpStatus :: Lens.Lens' TerminateInstanceInAutoScalingGroupResponse Prelude.Int
terminateInstanceInAutoScalingGroupResponse_httpStatus :: Lens' TerminateInstanceInAutoScalingGroupResponse Int
terminateInstanceInAutoScalingGroupResponse_httpStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\TerminateInstanceInAutoScalingGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:TerminateInstanceInAutoScalingGroupResponse' :: TerminateInstanceInAutoScalingGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: TerminateInstanceInAutoScalingGroupResponse
s@TerminateInstanceInAutoScalingGroupResponse' {} Int
a -> TerminateInstanceInAutoScalingGroupResponse
s {$sel:httpStatus:TerminateInstanceInAutoScalingGroupResponse' :: Int
httpStatus = Int
a} :: TerminateInstanceInAutoScalingGroupResponse)
instance
Prelude.NFData
TerminateInstanceInAutoScalingGroupResponse
where
rnf :: TerminateInstanceInAutoScalingGroupResponse -> ()
rnf TerminateInstanceInAutoScalingGroupResponse' {Int
Maybe Activity
httpStatus :: Int
activity :: Maybe Activity
$sel:httpStatus:TerminateInstanceInAutoScalingGroupResponse' :: TerminateInstanceInAutoScalingGroupResponse -> Int
$sel:activity:TerminateInstanceInAutoScalingGroupResponse' :: TerminateInstanceInAutoScalingGroupResponse -> Maybe Activity
..} =
forall a. NFData a => a -> ()
Prelude.rnf Maybe Activity
activity
seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus