module Network.AWS.S3.GetBucketTagging
(
getBucketTagging
, GetBucketTagging
, gbtBucket
, getBucketTaggingResponse
, GetBucketTaggingResponse
, gbtrsStatus
, gbtrsTagSet
) where
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
import Network.AWS.S3.Types
import Network.AWS.S3.Types.Product
newtype GetBucketTagging = GetBucketTagging'
{ _gbtBucket :: BucketName
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketTagging
:: BucketName
-> GetBucketTagging
getBucketTagging pBucket_ =
GetBucketTagging'
{ _gbtBucket = pBucket_
}
gbtBucket :: Lens' GetBucketTagging BucketName
gbtBucket = lens _gbtBucket (\ s a -> s{_gbtBucket = a});
instance AWSRequest GetBucketTagging where
type Sv GetBucketTagging = S3
type Rs GetBucketTagging = GetBucketTaggingResponse
request = get
response
= receiveXML
(\ s h x ->
GetBucketTaggingResponse' <$>
(pure (fromEnum s)) <*>
(x .@? "TagSet" .!@ mempty >>= parseXMLList "Tag"))
instance ToHeaders GetBucketTagging where
toHeaders = const mempty
instance ToPath GetBucketTagging where
toPath GetBucketTagging'{..}
= mconcat ["/", toBS _gbtBucket]
instance ToQuery GetBucketTagging where
toQuery = const (mconcat ["tagging"])
data GetBucketTaggingResponse = GetBucketTaggingResponse'
{ _gbtrsStatus :: !Int
, _gbtrsTagSet :: ![Tag]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketTaggingResponse
:: Int
-> GetBucketTaggingResponse
getBucketTaggingResponse pStatus_ =
GetBucketTaggingResponse'
{ _gbtrsStatus = pStatus_
, _gbtrsTagSet = mempty
}
gbtrsStatus :: Lens' GetBucketTaggingResponse Int
gbtrsStatus = lens _gbtrsStatus (\ s a -> s{_gbtrsStatus = a});
gbtrsTagSet :: Lens' GetBucketTaggingResponse [Tag]
gbtrsTagSet = lens _gbtrsTagSet (\ s a -> s{_gbtrsTagSet = a}) . _Coerce;