{-# 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.DescribeEgressOnlyInternetGateways
(
describeEgressOnlyInternetGateways
, DescribeEgressOnlyInternetGateways
, deoigEgressOnlyInternetGatewayIds
, deoigNextToken
, deoigDryRun
, deoigMaxResults
, describeEgressOnlyInternetGatewaysResponse
, DescribeEgressOnlyInternetGatewaysResponse
, deoigrsEgressOnlyInternetGateways
, deoigrsNextToken
, deoigrsResponseStatus
) 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 DescribeEgressOnlyInternetGateways = DescribeEgressOnlyInternetGateways'
{ _deoigEgressOnlyInternetGatewayIds :: !(Maybe [Text])
, _deoigNextToken :: !(Maybe Text)
, _deoigDryRun :: !(Maybe Bool)
, _deoigMaxResults :: !(Maybe Int)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEgressOnlyInternetGateways
:: DescribeEgressOnlyInternetGateways
describeEgressOnlyInternetGateways =
DescribeEgressOnlyInternetGateways'
{ _deoigEgressOnlyInternetGatewayIds = Nothing
, _deoigNextToken = Nothing
, _deoigDryRun = Nothing
, _deoigMaxResults = Nothing
}
deoigEgressOnlyInternetGatewayIds :: Lens' DescribeEgressOnlyInternetGateways [Text]
deoigEgressOnlyInternetGatewayIds = lens _deoigEgressOnlyInternetGatewayIds (\ s a -> s{_deoigEgressOnlyInternetGatewayIds = a}) . _Default . _Coerce
deoigNextToken :: Lens' DescribeEgressOnlyInternetGateways (Maybe Text)
deoigNextToken = lens _deoigNextToken (\ s a -> s{_deoigNextToken = a})
deoigDryRun :: Lens' DescribeEgressOnlyInternetGateways (Maybe Bool)
deoigDryRun = lens _deoigDryRun (\ s a -> s{_deoigDryRun = a})
deoigMaxResults :: Lens' DescribeEgressOnlyInternetGateways (Maybe Int)
deoigMaxResults = lens _deoigMaxResults (\ s a -> s{_deoigMaxResults = a})
instance AWSRequest
DescribeEgressOnlyInternetGateways
where
type Rs DescribeEgressOnlyInternetGateways =
DescribeEgressOnlyInternetGatewaysResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeEgressOnlyInternetGatewaysResponse' <$>
(x .@? "egressOnlyInternetGatewaySet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (x .@? "nextToken")
<*> (pure (fromEnum s)))
instance Hashable DescribeEgressOnlyInternetGateways
where
instance NFData DescribeEgressOnlyInternetGateways
where
instance ToHeaders DescribeEgressOnlyInternetGateways
where
toHeaders = const mempty
instance ToPath DescribeEgressOnlyInternetGateways
where
toPath = const "/"
instance ToQuery DescribeEgressOnlyInternetGateways
where
toQuery DescribeEgressOnlyInternetGateways'{..}
= mconcat
["Action" =:
("DescribeEgressOnlyInternetGateways" :: ByteString),
"Version" =: ("2016-11-15" :: ByteString),
toQuery
(toQueryList "EgressOnlyInternetGatewayId" <$>
_deoigEgressOnlyInternetGatewayIds),
"NextToken" =: _deoigNextToken,
"DryRun" =: _deoigDryRun,
"MaxResults" =: _deoigMaxResults]
data DescribeEgressOnlyInternetGatewaysResponse = DescribeEgressOnlyInternetGatewaysResponse'
{ _deoigrsEgressOnlyInternetGateways :: !(Maybe [EgressOnlyInternetGateway])
, _deoigrsNextToken :: !(Maybe Text)
, _deoigrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
describeEgressOnlyInternetGatewaysResponse
:: Int
-> DescribeEgressOnlyInternetGatewaysResponse
describeEgressOnlyInternetGatewaysResponse pResponseStatus_ =
DescribeEgressOnlyInternetGatewaysResponse'
{ _deoigrsEgressOnlyInternetGateways = Nothing
, _deoigrsNextToken = Nothing
, _deoigrsResponseStatus = pResponseStatus_
}
deoigrsEgressOnlyInternetGateways :: Lens' DescribeEgressOnlyInternetGatewaysResponse [EgressOnlyInternetGateway]
deoigrsEgressOnlyInternetGateways = lens _deoigrsEgressOnlyInternetGateways (\ s a -> s{_deoigrsEgressOnlyInternetGateways = a}) . _Default . _Coerce
deoigrsNextToken :: Lens' DescribeEgressOnlyInternetGatewaysResponse (Maybe Text)
deoigrsNextToken = lens _deoigrsNextToken (\ s a -> s{_deoigrsNextToken = a})
deoigrsResponseStatus :: Lens' DescribeEgressOnlyInternetGatewaysResponse Int
deoigrsResponseStatus = lens _deoigrsResponseStatus (\ s a -> s{_deoigrsResponseStatus = a})
instance NFData
DescribeEgressOnlyInternetGatewaysResponse
where