{-# 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.DMS.DescribeEvents
(
describeEvents
, DescribeEvents
, deStartTime
, deSourceType
, deFilters
, deSourceIdentifier
, deEventCategories
, deMarker
, deMaxRecords
, deEndTime
, deDuration
, describeEventsResponse
, DescribeEventsResponse
, deersEvents
, deersMarker
, deersResponseStatus
) where
import Network.AWS.DMS.Types
import Network.AWS.DMS.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 POSIX)
, _deSourceType :: !(Maybe SourceType)
, _deFilters :: !(Maybe [Filter])
, _deSourceIdentifier :: !(Maybe Text)
, _deEventCategories :: !(Maybe [Text])
, _deMarker :: !(Maybe Text)
, _deMaxRecords :: !(Maybe Int)
, _deEndTime :: !(Maybe POSIX)
, _deDuration :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEvents
:: DescribeEvents
describeEvents =
DescribeEvents'
{ _deStartTime = Nothing
, _deSourceType = Nothing
, _deFilters = Nothing
, _deSourceIdentifier = Nothing
, _deEventCategories = 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})
deFilters :: Lens' DescribeEvents [Filter]
deFilters = lens _deFilters (\ s a -> s{_deFilters = a}) . _Default . _Coerce
deSourceIdentifier :: Lens' DescribeEvents (Maybe Text)
deSourceIdentifier = lens _deSourceIdentifier (\ s a -> s{_deSourceIdentifier = a})
deEventCategories :: Lens' DescribeEvents [Text]
deEventCategories = lens _deEventCategories (\ s a -> s{_deEventCategories = a}) . _Default . _Coerce
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 ^. deersMarker) = Nothing
| stop (rs ^. deersEvents) = Nothing
| otherwise =
Just $ rq & deMarker .~ rs ^. deersMarker
instance AWSRequest DescribeEvents where
type Rs DescribeEvents = DescribeEventsResponse
request = postJSON dms
response
= receiveJSON
(\ s h x ->
DescribeEventsResponse' <$>
(x .?> "Events" .!@ mempty) <*> (x .?> "Marker") <*>
(pure (fromEnum s)))
instance Hashable DescribeEvents where
instance NFData DescribeEvents where
instance ToHeaders DescribeEvents where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDMSv20160101.DescribeEvents" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEvents where
toJSON DescribeEvents'{..}
= object
(catMaybes
[("StartTime" .=) <$> _deStartTime,
("SourceType" .=) <$> _deSourceType,
("Filters" .=) <$> _deFilters,
("SourceIdentifier" .=) <$> _deSourceIdentifier,
("EventCategories" .=) <$> _deEventCategories,
("Marker" .=) <$> _deMarker,
("MaxRecords" .=) <$> _deMaxRecords,
("EndTime" .=) <$> _deEndTime,
("Duration" .=) <$> _deDuration])
instance ToPath DescribeEvents where
toPath = const "/"
instance ToQuery DescribeEvents where
toQuery = const mempty
data DescribeEventsResponse = DescribeEventsResponse'
{ _deersEvents :: !(Maybe [Event])
, _deersMarker :: !(Maybe Text)
, _deersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEventsResponse
:: Int
-> DescribeEventsResponse
describeEventsResponse pResponseStatus_ =
DescribeEventsResponse'
{ _deersEvents = Nothing
, _deersMarker = Nothing
, _deersResponseStatus = pResponseStatus_
}
deersEvents :: Lens' DescribeEventsResponse [Event]
deersEvents = lens _deersEvents (\ s a -> s{_deersEvents = a}) . _Default . _Coerce
deersMarker :: Lens' DescribeEventsResponse (Maybe Text)
deersMarker = lens _deersMarker (\ s a -> s{_deersMarker = a})
deersResponseStatus :: Lens' DescribeEventsResponse Int
deersResponseStatus = lens _deersResponseStatus (\ s a -> s{_deersResponseStatus = a})
instance NFData DescribeEventsResponse where