module Network.AWS.S3.ListBuckets
(
listBuckets
, ListBuckets
, listBucketsResponse
, ListBucketsResponse
, lbrsBuckets
, lbrsOwner
, lbrsStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.S3.Types
import Network.AWS.S3.Types.Product
data ListBuckets =
ListBuckets'
deriving (Eq,Read,Show,Data,Typeable,Generic)
listBuckets
:: ListBuckets
listBuckets = ListBuckets'
instance AWSRequest ListBuckets where
type Sv ListBuckets = S3
type Rs ListBuckets = ListBucketsResponse
request = get
response
= receiveXML
(\ s h x ->
ListBucketsResponse' <$>
(x .@? "Buckets" .!@ mempty >>=
may (parseXMLList "Bucket"))
<*> (x .@? "Owner")
<*> (pure (fromEnum s)))
instance ToHeaders ListBuckets where
toHeaders = const mempty
instance ToPath ListBuckets where
toPath = const "/"
instance ToQuery ListBuckets where
toQuery = const mempty
data ListBucketsResponse = ListBucketsResponse'
{ _lbrsBuckets :: !(Maybe [Bucket])
, _lbrsOwner :: !(Maybe Owner)
, _lbrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listBucketsResponse
:: Int
-> ListBucketsResponse
listBucketsResponse pStatus_ =
ListBucketsResponse'
{ _lbrsBuckets = Nothing
, _lbrsOwner = Nothing
, _lbrsStatus = pStatus_
}
lbrsBuckets :: Lens' ListBucketsResponse [Bucket]
lbrsBuckets = lens _lbrsBuckets (\ s a -> s{_lbrsBuckets = a}) . _Default . _Coerce;
lbrsOwner :: Lens' ListBucketsResponse (Maybe Owner)
lbrsOwner = lens _lbrsOwner (\ s a -> s{_lbrsOwner = a});
lbrsStatus :: Lens' ListBucketsResponse Int
lbrsStatus = lens _lbrsStatus (\ s a -> s{_lbrsStatus = a});