{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.ElastiCache.DescribeEvents
(
describeEvents
, DescribeEvents
, deStartTime
, deSourceType
, deSourceIdentifier
, deMarker
, deMaxRecords
, deEndTime
, deDuration
, describeEventsResponse
, DescribeEventsResponse
, dersEvents
, dersMarker
, dersResponseStatus
) where
import Network.AWS.ElastiCache.Types
import Network.AWS.ElastiCache.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeEvents = DescribeEvents'
{ _deStartTime :: !(Maybe ISO8601)
, _deSourceType :: !(Maybe SourceType)
, _deSourceIdentifier :: !(Maybe Text)
, _deMarker :: !(Maybe Text)
, _deMaxRecords :: !(Maybe Int)
, _deEndTime :: !(Maybe ISO8601)
, _deDuration :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEvents
:: DescribeEvents
describeEvents =
DescribeEvents'
{ _deStartTime = Nothing
, _deSourceType = Nothing
, _deSourceIdentifier = Nothing
, _deMarker = Nothing
, _deMaxRecords = Nothing
, _deEndTime = Nothing
, _deDuration = Nothing
}
deStartTime :: Lens' DescribeEvents (Maybe UTCTime)
deStartTime = lens _deStartTime (\ s a -> s{_deStartTime = a}) . mapping _Time;
deSourceType :: Lens' DescribeEvents (Maybe SourceType)
deSourceType = lens _deSourceType (\ s a -> s{_deSourceType = a});
deSourceIdentifier :: Lens' DescribeEvents (Maybe Text)
deSourceIdentifier = lens _deSourceIdentifier (\ s a -> s{_deSourceIdentifier = a});
deMarker :: Lens' DescribeEvents (Maybe Text)
deMarker = lens _deMarker (\ s a -> s{_deMarker = a});
deMaxRecords :: Lens' DescribeEvents (Maybe Int)
deMaxRecords = lens _deMaxRecords (\ s a -> s{_deMaxRecords = a});
deEndTime :: Lens' DescribeEvents (Maybe UTCTime)
deEndTime = lens _deEndTime (\ s a -> s{_deEndTime = a}) . mapping _Time;
deDuration :: Lens' DescribeEvents (Maybe Int)
deDuration = lens _deDuration (\ s a -> s{_deDuration = a});
instance AWSPager DescribeEvents where
page rq rs
| stop (rs ^. dersMarker) = Nothing
| stop (rs ^. dersEvents) = Nothing
| otherwise =
Just $ rq & deMarker .~ rs ^. dersMarker
instance AWSRequest DescribeEvents where
type Rs DescribeEvents = DescribeEventsResponse
request = postQuery elastiCache
response
= receiveXMLWrapper "DescribeEventsResult"
(\ s h x ->
DescribeEventsResponse' <$>
(x .@? "Events" .!@ mempty >>=
may (parseXMLList "Event"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeEvents
instance NFData DescribeEvents
instance ToHeaders DescribeEvents where
toHeaders = const mempty
instance ToPath DescribeEvents where
toPath = const "/"
instance ToQuery DescribeEvents where
toQuery DescribeEvents'{..}
= mconcat
["Action" =: ("DescribeEvents" :: ByteString),
"Version" =: ("2015-02-02" :: ByteString),
"StartTime" =: _deStartTime,
"SourceType" =: _deSourceType,
"SourceIdentifier" =: _deSourceIdentifier,
"Marker" =: _deMarker, "MaxRecords" =: _deMaxRecords,
"EndTime" =: _deEndTime, "Duration" =: _deDuration]
data DescribeEventsResponse = DescribeEventsResponse'
{ _dersEvents :: !(Maybe [Event])
, _dersMarker :: !(Maybe Text)
, _dersResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEventsResponse
:: Int
-> DescribeEventsResponse
describeEventsResponse pResponseStatus_ =
DescribeEventsResponse'
{ _dersEvents = Nothing
, _dersMarker = Nothing
, _dersResponseStatus = pResponseStatus_
}
dersEvents :: Lens' DescribeEventsResponse [Event]
dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce;
dersMarker :: Lens' DescribeEventsResponse (Maybe Text)
dersMarker = lens _dersMarker (\ s a -> s{_dersMarker = a});
dersResponseStatus :: Lens' DescribeEventsResponse Int
dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a});
instance NFData DescribeEventsResponse