{-# 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.DescribeAddresses
(
describeAddresses
, DescribeAddresses
, daFilters
, daPublicIPs
, daAllocationIds
, daDryRun
, describeAddressesResponse
, DescribeAddressesResponse
, darsAddresses
, darsResponseStatus
) 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 DescribeAddresses = DescribeAddresses'
{ _daFilters :: !(Maybe [Filter])
, _daPublicIPs :: !(Maybe [Text])
, _daAllocationIds :: !(Maybe [Text])
, _daDryRun :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAddresses
:: DescribeAddresses
describeAddresses =
DescribeAddresses'
{ _daFilters = Nothing
, _daPublicIPs = Nothing
, _daAllocationIds = Nothing
, _daDryRun = Nothing
}
daFilters :: Lens' DescribeAddresses [Filter]
daFilters = lens _daFilters (\ s a -> s{_daFilters = a}) . _Default . _Coerce;
daPublicIPs :: Lens' DescribeAddresses [Text]
daPublicIPs = lens _daPublicIPs (\ s a -> s{_daPublicIPs = a}) . _Default . _Coerce;
daAllocationIds :: Lens' DescribeAddresses [Text]
daAllocationIds = lens _daAllocationIds (\ s a -> s{_daAllocationIds = a}) . _Default . _Coerce;
daDryRun :: Lens' DescribeAddresses (Maybe Bool)
daDryRun = lens _daDryRun (\ s a -> s{_daDryRun = a});
instance AWSRequest DescribeAddresses where
type Rs DescribeAddresses = DescribeAddressesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeAddressesResponse' <$>
(x .@? "addressesSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable DescribeAddresses
instance NFData DescribeAddresses
instance ToHeaders DescribeAddresses where
toHeaders = const mempty
instance ToPath DescribeAddresses where
toPath = const "/"
instance ToQuery DescribeAddresses where
toQuery DescribeAddresses'{..}
= mconcat
["Action" =: ("DescribeAddresses" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
toQuery (toQueryList "Filter" <$> _daFilters),
toQuery (toQueryList "PublicIp" <$> _daPublicIPs),
toQuery
(toQueryList "AllocationId" <$> _daAllocationIds),
"DryRun" =: _daDryRun]
data DescribeAddressesResponse = DescribeAddressesResponse'
{ _darsAddresses :: !(Maybe [Address])
, _darsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAddressesResponse
:: Int
-> DescribeAddressesResponse
describeAddressesResponse pResponseStatus_ =
DescribeAddressesResponse'
{ _darsAddresses = Nothing
, _darsResponseStatus = pResponseStatus_
}
darsAddresses :: Lens' DescribeAddressesResponse [Address]
darsAddresses = lens _darsAddresses (\ s a -> s{_darsAddresses = a}) . _Default . _Coerce;
darsResponseStatus :: Lens' DescribeAddressesResponse Int
darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});
instance NFData DescribeAddressesResponse