{-# 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.DAX.DescribeEvents
(
describeEvents
, DescribeEvents
, deSourceName
, deStartTime
, deSourceType
, deNextToken
, deEndTime
, deDuration
, deMaxResults
, describeEventsResponse
, DescribeEventsResponse
, dersNextToken
, dersEvents
, dersResponseStatus
) where
import Network.AWS.DAX.Types
import Network.AWS.DAX.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeEvents = DescribeEvents'
{ _deSourceName :: !(Maybe Text)
, _deStartTime :: !(Maybe POSIX)
, _deSourceType :: !(Maybe SourceType)
, _deNextToken :: !(Maybe Text)
, _deEndTime :: !(Maybe POSIX)
, _deDuration :: !(Maybe Int)
, _deMaxResults :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEvents
:: DescribeEvents
describeEvents =
DescribeEvents'
{ _deSourceName = Nothing
, _deStartTime = Nothing
, _deSourceType = Nothing
, _deNextToken = Nothing
, _deEndTime = Nothing
, _deDuration = Nothing
, _deMaxResults = Nothing
}
deSourceName :: Lens' DescribeEvents (Maybe Text)
deSourceName = lens _deSourceName (\ s a -> s{_deSourceName = a})
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})
deNextToken :: Lens' DescribeEvents (Maybe Text)
deNextToken = lens _deNextToken (\ s a -> s{_deNextToken = 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})
deMaxResults :: Lens' DescribeEvents (Maybe Int)
deMaxResults = lens _deMaxResults (\ s a -> s{_deMaxResults = a})
instance AWSRequest DescribeEvents where
type Rs DescribeEvents = DescribeEventsResponse
request = postJSON dax
response
= receiveJSON
(\ s h x ->
DescribeEventsResponse' <$>
(x .?> "NextToken") <*> (x .?> "Events" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeEvents where
instance NFData DescribeEvents where
instance ToHeaders DescribeEvents where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AmazonDAXV3.DescribeEvents" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEvents where
toJSON DescribeEvents'{..}
= object
(catMaybes
[("SourceName" .=) <$> _deSourceName,
("StartTime" .=) <$> _deStartTime,
("SourceType" .=) <$> _deSourceType,
("NextToken" .=) <$> _deNextToken,
("EndTime" .=) <$> _deEndTime,
("Duration" .=) <$> _deDuration,
("MaxResults" .=) <$> _deMaxResults])
instance ToPath DescribeEvents where
toPath = const "/"
instance ToQuery DescribeEvents where
toQuery = const mempty
data DescribeEventsResponse = DescribeEventsResponse'
{ _dersNextToken :: !(Maybe Text)
, _dersEvents :: !(Maybe [Event])
, _dersResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEventsResponse
:: Int
-> DescribeEventsResponse
describeEventsResponse pResponseStatus_ =
DescribeEventsResponse'
{ _dersNextToken = Nothing
, _dersEvents = Nothing
, _dersResponseStatus = pResponseStatus_
}
dersNextToken :: Lens' DescribeEventsResponse (Maybe Text)
dersNextToken = lens _dersNextToken (\ s a -> s{_dersNextToken = a})
dersEvents :: Lens' DescribeEventsResponse [Event]
dersEvents = lens _dersEvents (\ s a -> s{_dersEvents = a}) . _Default . _Coerce
dersResponseStatus :: Lens' DescribeEventsResponse Int
dersResponseStatus = lens _dersResponseStatus (\ s a -> s{_dersResponseStatus = a})
instance NFData DescribeEventsResponse where