{-# 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.AWSHealth.DescribeEventAggregates
(
describeEventAggregates
, DescribeEventAggregates
, deaNextToken
, deaFilter
, deaMaxResults
, deaAggregateField
, describeEventAggregatesResponse
, DescribeEventAggregatesResponse
, drsNextToken
, drsEventAggregates
, drsResponseStatus
) where
import Network.AWS.AWSHealth.Types
import Network.AWS.AWSHealth.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeEventAggregates = DescribeEventAggregates'
{ _deaNextToken :: !(Maybe Text)
, _deaFilter :: !(Maybe EventFilter)
, _deaMaxResults :: !(Maybe Nat)
, _deaAggregateField :: !EventAggregateField
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEventAggregates
:: EventAggregateField
-> DescribeEventAggregates
describeEventAggregates pAggregateField_ =
DescribeEventAggregates'
{ _deaNextToken = Nothing
, _deaFilter = Nothing
, _deaMaxResults = Nothing
, _deaAggregateField = pAggregateField_
}
deaNextToken :: Lens' DescribeEventAggregates (Maybe Text)
deaNextToken = lens _deaNextToken (\ s a -> s{_deaNextToken = a});
deaFilter :: Lens' DescribeEventAggregates (Maybe EventFilter)
deaFilter = lens _deaFilter (\ s a -> s{_deaFilter = a});
deaMaxResults :: Lens' DescribeEventAggregates (Maybe Natural)
deaMaxResults = lens _deaMaxResults (\ s a -> s{_deaMaxResults = a}) . mapping _Nat;
deaAggregateField :: Lens' DescribeEventAggregates EventAggregateField
deaAggregateField = lens _deaAggregateField (\ s a -> s{_deaAggregateField = a});
instance AWSRequest DescribeEventAggregates where
type Rs DescribeEventAggregates =
DescribeEventAggregatesResponse
request = postJSON awsHealth
response
= receiveJSON
(\ s h x ->
DescribeEventAggregatesResponse' <$>
(x .?> "nextToken") <*>
(x .?> "eventAggregates" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeEventAggregates
instance NFData DescribeEventAggregates
instance ToHeaders DescribeEventAggregates where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSHealth_20160804.DescribeEventAggregates" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEventAggregates where
toJSON DescribeEventAggregates'{..}
= object
(catMaybes
[("nextToken" .=) <$> _deaNextToken,
("filter" .=) <$> _deaFilter,
("maxResults" .=) <$> _deaMaxResults,
Just ("aggregateField" .= _deaAggregateField)])
instance ToPath DescribeEventAggregates where
toPath = const "/"
instance ToQuery DescribeEventAggregates where
toQuery = const mempty
data DescribeEventAggregatesResponse = DescribeEventAggregatesResponse'
{ _drsNextToken :: !(Maybe Text)
, _drsEventAggregates :: !(Maybe [EventAggregate])
, _drsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEventAggregatesResponse
:: Int
-> DescribeEventAggregatesResponse
describeEventAggregatesResponse pResponseStatus_ =
DescribeEventAggregatesResponse'
{ _drsNextToken = Nothing
, _drsEventAggregates = Nothing
, _drsResponseStatus = pResponseStatus_
}
drsNextToken :: Lens' DescribeEventAggregatesResponse (Maybe Text)
drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a});
drsEventAggregates :: Lens' DescribeEventAggregatesResponse [EventAggregate]
drsEventAggregates = lens _drsEventAggregates (\ s a -> s{_drsEventAggregates = a}) . _Default . _Coerce;
drsResponseStatus :: Lens' DescribeEventAggregatesResponse Int
drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
instance NFData DescribeEventAggregatesResponse