{-# 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.DescribeEventTypes
(
describeEventTypes
, DescribeEventTypes
, detLocale
, detNextToken
, detFilter
, detMaxResults
, describeEventTypesResponse
, DescribeEventTypesResponse
, detrsEventTypes
, detrsNextToken
, detrsResponseStatus
) 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 DescribeEventTypes = DescribeEventTypes'
{ _detLocale :: !(Maybe Text)
, _detNextToken :: !(Maybe Text)
, _detFilter :: !(Maybe EventTypeFilter)
, _detMaxResults :: !(Maybe Nat)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEventTypes
:: DescribeEventTypes
describeEventTypes =
DescribeEventTypes'
{ _detLocale = Nothing
, _detNextToken = Nothing
, _detFilter = Nothing
, _detMaxResults = Nothing
}
detLocale :: Lens' DescribeEventTypes (Maybe Text)
detLocale = lens _detLocale (\ s a -> s{_detLocale = a});
detNextToken :: Lens' DescribeEventTypes (Maybe Text)
detNextToken = lens _detNextToken (\ s a -> s{_detNextToken = a});
detFilter :: Lens' DescribeEventTypes (Maybe EventTypeFilter)
detFilter = lens _detFilter (\ s a -> s{_detFilter = a});
detMaxResults :: Lens' DescribeEventTypes (Maybe Natural)
detMaxResults = lens _detMaxResults (\ s a -> s{_detMaxResults = a}) . mapping _Nat;
instance AWSRequest DescribeEventTypes where
type Rs DescribeEventTypes =
DescribeEventTypesResponse
request = postJSON awsHealth
response
= receiveJSON
(\ s h x ->
DescribeEventTypesResponse' <$>
(x .?> "eventTypes" .!@ mempty) <*>
(x .?> "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeEventTypes
instance NFData DescribeEventTypes
instance ToHeaders DescribeEventTypes where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AWSHealth_20160804.DescribeEventTypes" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEventTypes where
toJSON DescribeEventTypes'{..}
= object
(catMaybes
[("locale" .=) <$> _detLocale,
("nextToken" .=) <$> _detNextToken,
("filter" .=) <$> _detFilter,
("maxResults" .=) <$> _detMaxResults])
instance ToPath DescribeEventTypes where
toPath = const "/"
instance ToQuery DescribeEventTypes where
toQuery = const mempty
data DescribeEventTypesResponse = DescribeEventTypesResponse'
{ _detrsEventTypes :: !(Maybe [EventType])
, _detrsNextToken :: !(Maybe Text)
, _detrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEventTypesResponse
:: Int
-> DescribeEventTypesResponse
describeEventTypesResponse pResponseStatus_ =
DescribeEventTypesResponse'
{ _detrsEventTypes = Nothing
, _detrsNextToken = Nothing
, _detrsResponseStatus = pResponseStatus_
}
detrsEventTypes :: Lens' DescribeEventTypesResponse [EventType]
detrsEventTypes = lens _detrsEventTypes (\ s a -> s{_detrsEventTypes = a}) . _Default . _Coerce;
detrsNextToken :: Lens' DescribeEventTypesResponse (Maybe Text)
detrsNextToken = lens _detrsNextToken (\ s a -> s{_detrsNextToken = a});
detrsResponseStatus :: Lens' DescribeEventTypesResponse Int
detrsResponseStatus = lens _detrsResponseStatus (\ s a -> s{_detrsResponseStatus = a});
instance NFData DescribeEventTypesResponse