{-# 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.DescribeAccountAttributes
(
describeAccountAttributes
, DescribeAccountAttributes
, daaAttributeNames
, daaDryRun
, describeAccountAttributesResponse
, DescribeAccountAttributesResponse
, daarsAccountAttributes
, daarsResponseStatus
) 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 DescribeAccountAttributes = DescribeAccountAttributes'
{ _daaAttributeNames :: !(Maybe [AccountAttributeName])
, _daaDryRun :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAccountAttributes
:: DescribeAccountAttributes
describeAccountAttributes =
DescribeAccountAttributes'
{ _daaAttributeNames = Nothing
, _daaDryRun = Nothing
}
daaAttributeNames :: Lens' DescribeAccountAttributes [AccountAttributeName]
daaAttributeNames = lens _daaAttributeNames (\ s a -> s{_daaAttributeNames = a}) . _Default . _Coerce;
daaDryRun :: Lens' DescribeAccountAttributes (Maybe Bool)
daaDryRun = lens _daaDryRun (\ s a -> s{_daaDryRun = a});
instance AWSRequest DescribeAccountAttributes where
type Rs DescribeAccountAttributes =
DescribeAccountAttributesResponse
request = postQuery ec2
response
= receiveXML
(\ s h x ->
DescribeAccountAttributesResponse' <$>
(x .@? "accountAttributeSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance Hashable DescribeAccountAttributes
instance NFData DescribeAccountAttributes
instance ToHeaders DescribeAccountAttributes where
toHeaders = const mempty
instance ToPath DescribeAccountAttributes where
toPath = const "/"
instance ToQuery DescribeAccountAttributes where
toQuery DescribeAccountAttributes'{..}
= mconcat
["Action" =:
("DescribeAccountAttributes" :: ByteString),
"Version" =: ("2016-04-01" :: ByteString),
toQuery
(toQueryList "AttributeName" <$> _daaAttributeNames),
"DryRun" =: _daaDryRun]
data DescribeAccountAttributesResponse = DescribeAccountAttributesResponse'
{ _daarsAccountAttributes :: !(Maybe [AccountAttribute])
, _daarsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeAccountAttributesResponse
:: Int
-> DescribeAccountAttributesResponse
describeAccountAttributesResponse pResponseStatus_ =
DescribeAccountAttributesResponse'
{ _daarsAccountAttributes = Nothing
, _daarsResponseStatus = pResponseStatus_
}
daarsAccountAttributes :: Lens' DescribeAccountAttributesResponse [AccountAttribute]
daarsAccountAttributes = lens _daarsAccountAttributes (\ s a -> s{_daarsAccountAttributes = a}) . _Default . _Coerce;
daarsResponseStatus :: Lens' DescribeAccountAttributesResponse Int
daarsResponseStatus = lens _daarsResponseStatus (\ s a -> s{_daarsResponseStatus = a});
instance NFData DescribeAccountAttributesResponse