module Network.AWS.CloudWatch.DescribeAlarms
(
DescribeAlarms
, describeAlarms
, daActionPrefix
, daAlarmNamePrefix
, daAlarmNames
, daMaxRecords
, daNextToken
, daStateValue
, DescribeAlarmsResponse
, describeAlarmsResponse
, darMetricAlarms
, darNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudWatch.Types
import qualified GHC.Exts
data DescribeAlarms = DescribeAlarms
{ _daActionPrefix :: Maybe Text
, _daAlarmNamePrefix :: Maybe Text
, _daAlarmNames :: List "member" Text
, _daMaxRecords :: Maybe Nat
, _daNextToken :: Maybe Text
, _daStateValue :: Maybe StateValue
} deriving (Eq, Read, Show)
describeAlarms :: DescribeAlarms
describeAlarms = DescribeAlarms
{ _daAlarmNames = mempty
, _daAlarmNamePrefix = Nothing
, _daStateValue = Nothing
, _daActionPrefix = Nothing
, _daMaxRecords = Nothing
, _daNextToken = Nothing
}
daActionPrefix :: Lens' DescribeAlarms (Maybe Text)
daActionPrefix = lens _daActionPrefix (\s a -> s { _daActionPrefix = a })
daAlarmNamePrefix :: Lens' DescribeAlarms (Maybe Text)
daAlarmNamePrefix =
lens _daAlarmNamePrefix (\s a -> s { _daAlarmNamePrefix = a })
daAlarmNames :: Lens' DescribeAlarms [Text]
daAlarmNames = lens _daAlarmNames (\s a -> s { _daAlarmNames = a }) . _List
daMaxRecords :: Lens' DescribeAlarms (Maybe Natural)
daMaxRecords = lens _daMaxRecords (\s a -> s { _daMaxRecords = a }) . mapping _Nat
daNextToken :: Lens' DescribeAlarms (Maybe Text)
daNextToken = lens _daNextToken (\s a -> s { _daNextToken = a })
daStateValue :: Lens' DescribeAlarms (Maybe StateValue)
daStateValue = lens _daStateValue (\s a -> s { _daStateValue = a })
data DescribeAlarmsResponse = DescribeAlarmsResponse
{ _darMetricAlarms :: List "member" MetricAlarm
, _darNextToken :: Maybe Text
} deriving (Eq, Read, Show)
describeAlarmsResponse :: DescribeAlarmsResponse
describeAlarmsResponse = DescribeAlarmsResponse
{ _darMetricAlarms = mempty
, _darNextToken = Nothing
}
darMetricAlarms :: Lens' DescribeAlarmsResponse [MetricAlarm]
darMetricAlarms = lens _darMetricAlarms (\s a -> s { _darMetricAlarms = a }) . _List
darNextToken :: Lens' DescribeAlarmsResponse (Maybe Text)
darNextToken = lens _darNextToken (\s a -> s { _darNextToken = a })
instance ToPath DescribeAlarms where
toPath = const "/"
instance ToQuery DescribeAlarms where
toQuery DescribeAlarms{..} = mconcat
[ "ActionPrefix" =? _daActionPrefix
, "AlarmNamePrefix" =? _daAlarmNamePrefix
, "AlarmNames" =? _daAlarmNames
, "MaxRecords" =? _daMaxRecords
, "NextToken" =? _daNextToken
, "StateValue" =? _daStateValue
]
instance ToHeaders DescribeAlarms
instance AWSRequest DescribeAlarms where
type Sv DescribeAlarms = CloudWatch
type Rs DescribeAlarms = DescribeAlarmsResponse
request = post "DescribeAlarms"
response = xmlResponse
instance FromXML DescribeAlarmsResponse where
parseXML = withElement "DescribeAlarmsResult" $ \x -> DescribeAlarmsResponse
<$> x .@? "MetricAlarms" .!@ mempty
<*> x .@? "NextToken"
instance AWSPager DescribeAlarms where
page rq rs
| stop (rs ^. darNextToken) = Nothing
| otherwise = (\x -> rq & daNextToken ?~ x)
<$> (rs ^. darNextToken)