{-# 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.EC2.DescribeCustomerGateways
(
describeCustomerGateways
, DescribeCustomerGateways
, dcgCustomerGatewayIds
, dcgFilters
, dcgDryRun
, describeCustomerGatewaysResponse
, DescribeCustomerGatewaysResponse
, dcgrsCustomerGateways
, dcgrsResponseStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeCustomerGateways = DescribeCustomerGateways'
{ _dcgCustomerGatewayIds :: !(Maybe [Text])
, _dcgFilters :: !(Maybe [Filter])
, _dcgDryRun :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeCustomerGateways
:: DescribeCustomerGateways
describeCustomerGateways =
DescribeCustomerGateways'
{ _dcgCustomerGatewayIds = Nothing
, _dcgFilters = Nothing
, _dcgDryRun = Nothing
}
dcgCustomerGatewayIds :: Lens' DescribeCustomerGateways [Text]
dcgCustomerGatewayIds = lens _dcgCustomerGatewayIds (\ s a -> s{_dcgCustomerGatewayIds = a}) . _Default . _Coerce;
dcgFilters :: Lens' DescribeCustomerGateways [Filter]
dcgFilters = lens _dcgFilters (\ s a -> s{_dcgFilters = a}) . _Default . _Coerce;
dcgDryRun :: Lens' DescribeCustomerGateways (Maybe Bool)
dcgDryRun = lens _dcgDryRun (\ s a -> s{_dcgDryRun = a});
instance AWSRequest DescribeCustomerGateways where
type Rs DescribeCustomerGateways =
DescribeCustomerGatewaysResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeCustomerGatewaysResponse' <$>
(x .@? "customerGatewaySet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable DescribeCustomerGateways
instance NFData DescribeCustomerGateways
instance ToHeaders DescribeCustomerGateways where
toHeaders = const mempty
instance ToPath DescribeCustomerGateways where
toPath = const "/"
instance ToQuery DescribeCustomerGateways where
toQuery DescribeCustomerGateways'{..}
= mconcat
["Action" =:
("DescribeCustomerGateways" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
toQuery
(toQueryList "CustomerGatewayId" <$>
_dcgCustomerGatewayIds),
toQuery (toQueryList "Filter" <$> _dcgFilters),
"DryRun" =: _dcgDryRun]
data DescribeCustomerGatewaysResponse = DescribeCustomerGatewaysResponse'
{ _dcgrsCustomerGateways :: !(Maybe [CustomerGateway])
, _dcgrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeCustomerGatewaysResponse
:: Int
-> DescribeCustomerGatewaysResponse
describeCustomerGatewaysResponse pResponseStatus_ =
DescribeCustomerGatewaysResponse'
{ _dcgrsCustomerGateways = Nothing
, _dcgrsResponseStatus = pResponseStatus_
}
dcgrsCustomerGateways :: Lens' DescribeCustomerGatewaysResponse [CustomerGateway]
dcgrsCustomerGateways = lens _dcgrsCustomerGateways (\ s a -> s{_dcgrsCustomerGateways = a}) . _Default . _Coerce;
dcgrsResponseStatus :: Lens' DescribeCustomerGatewaysResponse Int
dcgrsResponseStatus = lens _dcgrsResponseStatus (\ s a -> s{_dcgrsResponseStatus = a});
instance NFData DescribeCustomerGatewaysResponse