module Network.AWS.AutoScaling.TerminateInstanceInAutoScalingGroup
(
TerminateInstanceInAutoScalingGroup
, terminateInstanceInAutoScalingGroup
, tiiasgInstanceId
, tiiasgShouldDecrementDesiredCapacity
, TerminateInstanceInAutoScalingGroupResponse
, terminateInstanceInAutoScalingGroupResponse
, tiiasgrActivity
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.AutoScaling.Types
import qualified GHC.Exts
data TerminateInstanceInAutoScalingGroup = TerminateInstanceInAutoScalingGroup
{ _tiiasgInstanceId :: Text
, _tiiasgShouldDecrementDesiredCapacity :: Bool
} deriving (Eq, Ord, Read, Show)
terminateInstanceInAutoScalingGroup :: Text
-> Bool
-> TerminateInstanceInAutoScalingGroup
terminateInstanceInAutoScalingGroup p1 p2 = TerminateInstanceInAutoScalingGroup
{ _tiiasgInstanceId = p1
, _tiiasgShouldDecrementDesiredCapacity = p2
}
tiiasgInstanceId :: Lens' TerminateInstanceInAutoScalingGroup Text
tiiasgInstanceId = lens _tiiasgInstanceId (\s a -> s { _tiiasgInstanceId = a })
tiiasgShouldDecrementDesiredCapacity :: Lens' TerminateInstanceInAutoScalingGroup Bool
tiiasgShouldDecrementDesiredCapacity =
lens _tiiasgShouldDecrementDesiredCapacity
(\s a -> s { _tiiasgShouldDecrementDesiredCapacity = a })
newtype TerminateInstanceInAutoScalingGroupResponse = TerminateInstanceInAutoScalingGroupResponse
{ _tiiasgrActivity :: Maybe Activity
} deriving (Eq, Read, Show)
terminateInstanceInAutoScalingGroupResponse :: TerminateInstanceInAutoScalingGroupResponse
terminateInstanceInAutoScalingGroupResponse = TerminateInstanceInAutoScalingGroupResponse
{ _tiiasgrActivity = Nothing
}
tiiasgrActivity :: Lens' TerminateInstanceInAutoScalingGroupResponse (Maybe Activity)
tiiasgrActivity = lens _tiiasgrActivity (\s a -> s { _tiiasgrActivity = a })
instance ToPath TerminateInstanceInAutoScalingGroup where
toPath = const "/"
instance ToQuery TerminateInstanceInAutoScalingGroup where
toQuery TerminateInstanceInAutoScalingGroup{..} = mconcat
[ "InstanceId" =? _tiiasgInstanceId
, "ShouldDecrementDesiredCapacity" =? _tiiasgShouldDecrementDesiredCapacity
]
instance ToHeaders TerminateInstanceInAutoScalingGroup
instance AWSRequest TerminateInstanceInAutoScalingGroup where
type Sv TerminateInstanceInAutoScalingGroup = AutoScaling
type Rs TerminateInstanceInAutoScalingGroup = TerminateInstanceInAutoScalingGroupResponse
request = post "TerminateInstanceInAutoScalingGroup"
response = xmlResponse
instance FromXML TerminateInstanceInAutoScalingGroupResponse where
parseXML = withElement "TerminateInstanceInAutoScalingGroupResult" $ \x -> TerminateInstanceInAutoScalingGroupResponse
<$> x .@? "Activity"