module Network.AWS.CloudWatch.DescribeAlarmHistory
(
DescribeAlarmHistory
, describeAlarmHistory
, dahAlarmName
, dahEndDate
, dahHistoryItemType
, dahMaxRecords
, dahNextToken
, dahStartDate
, DescribeAlarmHistoryResponse
, describeAlarmHistoryResponse
, dahrAlarmHistoryItems
, dahrNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.CloudWatch.Types
import qualified GHC.Exts
data DescribeAlarmHistory = DescribeAlarmHistory
{ _dahAlarmName :: Maybe Text
, _dahEndDate :: Maybe ISO8601
, _dahHistoryItemType :: Maybe HistoryItemType
, _dahMaxRecords :: Maybe Nat
, _dahNextToken :: Maybe Text
, _dahStartDate :: Maybe ISO8601
} deriving (Eq, Show)
describeAlarmHistory :: DescribeAlarmHistory
describeAlarmHistory = DescribeAlarmHistory
{ _dahAlarmName = Nothing
, _dahHistoryItemType = Nothing
, _dahStartDate = Nothing
, _dahEndDate = Nothing
, _dahMaxRecords = Nothing
, _dahNextToken = Nothing
}
dahAlarmName :: Lens' DescribeAlarmHistory (Maybe Text)
dahAlarmName = lens _dahAlarmName (\s a -> s { _dahAlarmName = a })
dahEndDate :: Lens' DescribeAlarmHistory (Maybe UTCTime)
dahEndDate = lens _dahEndDate (\s a -> s { _dahEndDate = a }) . mapping _Time
dahHistoryItemType :: Lens' DescribeAlarmHistory (Maybe HistoryItemType)
dahHistoryItemType =
lens _dahHistoryItemType (\s a -> s { _dahHistoryItemType = a })
dahMaxRecords :: Lens' DescribeAlarmHistory (Maybe Natural)
dahMaxRecords = lens _dahMaxRecords (\s a -> s { _dahMaxRecords = a }) . mapping _Nat
dahNextToken :: Lens' DescribeAlarmHistory (Maybe Text)
dahNextToken = lens _dahNextToken (\s a -> s { _dahNextToken = a })
dahStartDate :: Lens' DescribeAlarmHistory (Maybe UTCTime)
dahStartDate = lens _dahStartDate (\s a -> s { _dahStartDate = a }) . mapping _Time
data DescribeAlarmHistoryResponse = DescribeAlarmHistoryResponse
{ _dahrAlarmHistoryItems :: List "AlarmHistoryItems" AlarmHistoryItem
, _dahrNextToken :: Maybe Text
} deriving (Eq, Show)
describeAlarmHistoryResponse :: DescribeAlarmHistoryResponse
describeAlarmHistoryResponse = DescribeAlarmHistoryResponse
{ _dahrAlarmHistoryItems = mempty
, _dahrNextToken = Nothing
}
dahrAlarmHistoryItems :: Lens' DescribeAlarmHistoryResponse [AlarmHistoryItem]
dahrAlarmHistoryItems =
lens _dahrAlarmHistoryItems (\s a -> s { _dahrAlarmHistoryItems = a })
. _List
dahrNextToken :: Lens' DescribeAlarmHistoryResponse (Maybe Text)
dahrNextToken = lens _dahrNextToken (\s a -> s { _dahrNextToken = a })
instance ToPath DescribeAlarmHistory where
toPath = const "/"
instance ToQuery DescribeAlarmHistory where
toQuery DescribeAlarmHistory{..} = mconcat
[ "AlarmName" =? _dahAlarmName
, "EndDate" =? _dahEndDate
, "HistoryItemType" =? _dahHistoryItemType
, "MaxRecords" =? _dahMaxRecords
, "NextToken" =? _dahNextToken
, "StartDate" =? _dahStartDate
]
instance ToHeaders DescribeAlarmHistory
instance AWSRequest DescribeAlarmHistory where
type Sv DescribeAlarmHistory = CloudWatch
type Rs DescribeAlarmHistory = DescribeAlarmHistoryResponse
request = post "DescribeAlarmHistory"
response = xmlResponse
instance FromXML DescribeAlarmHistoryResponse where
parseXML = withElement "DescribeAlarmHistoryResult" $ \x -> DescribeAlarmHistoryResponse
<$> x .@ "AlarmHistoryItems"
<*> x .@? "NextToken"
instance AWSPager DescribeAlarmHistory where
page rq rs
| stop (rq ^. dahNextToken) = Nothing
| otherwise = (\x -> rq & dahNextToken ?~ x)
<$> (rs ^. dahrNextToken)