module Network.AWS.EC2.MonitorInstances
(
MonitorInstances
, monitorInstances
, miDryRun
, miInstanceIds
, MonitorInstancesResponse
, monitorInstancesResponse
, mirInstanceMonitorings
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.EC2.Types
import qualified GHC.Exts
data MonitorInstances = MonitorInstances
{ _miDryRun :: Maybe Bool
, _miInstanceIds :: List "InstanceId" Text
} deriving (Eq, Ord, Show)
monitorInstances :: MonitorInstances
monitorInstances = MonitorInstances
{ _miDryRun = Nothing
, _miInstanceIds = mempty
}
miDryRun :: Lens' MonitorInstances (Maybe Bool)
miDryRun = lens _miDryRun (\s a -> s { _miDryRun = a })
miInstanceIds :: Lens' MonitorInstances [Text]
miInstanceIds = lens _miInstanceIds (\s a -> s { _miInstanceIds = a }) . _List
newtype MonitorInstancesResponse = MonitorInstancesResponse
{ _mirInstanceMonitorings :: List "item" InstanceMonitoring
} deriving (Eq, Show, Monoid, Semigroup)
monitorInstancesResponse :: MonitorInstancesResponse
monitorInstancesResponse = MonitorInstancesResponse
{ _mirInstanceMonitorings = mempty
}
mirInstanceMonitorings :: Lens' MonitorInstancesResponse [InstanceMonitoring]
mirInstanceMonitorings =
lens _mirInstanceMonitorings (\s a -> s { _mirInstanceMonitorings = a })
. _List
instance ToPath MonitorInstances where
toPath = const "/"
instance ToQuery MonitorInstances where
toQuery MonitorInstances{..} = mconcat
[ "dryRun" =? _miDryRun
, "InstanceId" `toQueryList` _miInstanceIds
]
instance ToHeaders MonitorInstances
instance AWSRequest MonitorInstances where
type Sv MonitorInstances = EC2
type Rs MonitorInstances = MonitorInstancesResponse
request = post "MonitorInstances"
response = xmlResponse
instance FromXML MonitorInstancesResponse where
parseXML x = MonitorInstancesResponse
<$> x .@? "instancesSet" .!@ mempty