module Network.AWS.S3.GetBucketLogging
(
getBucketLogging
, GetBucketLogging
, getBucket
, getBucketLoggingResponse
, GetBucketLoggingResponse
, grsLoggingEnabled
, grsResponseStatus
) 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 GetBucketLogging = GetBucketLogging'
{ _getBucket :: BucketName
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketLogging
:: BucketName
-> GetBucketLogging
getBucketLogging pBucket_ =
GetBucketLogging'
{ _getBucket = pBucket_
}
getBucket :: Lens' GetBucketLogging BucketName
getBucket = lens _getBucket (\ s a -> s{_getBucket = a});
instance AWSRequest GetBucketLogging where
type Rs GetBucketLogging = GetBucketLoggingResponse
request = get s3
response
= receiveXML
(\ s h x ->
GetBucketLoggingResponse' <$>
(x .@? "LoggingEnabled") <*> (pure (fromEnum s)))
instance ToHeaders GetBucketLogging where
toHeaders = const mempty
instance ToPath GetBucketLogging where
toPath GetBucketLogging'{..}
= mconcat ["/", toBS _getBucket]
instance ToQuery GetBucketLogging where
toQuery = const (mconcat ["logging"])
data GetBucketLoggingResponse = GetBucketLoggingResponse'
{ _grsLoggingEnabled :: !(Maybe LoggingEnabled)
, _grsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketLoggingResponse
:: Int
-> GetBucketLoggingResponse
getBucketLoggingResponse pResponseStatus_ =
GetBucketLoggingResponse'
{ _grsLoggingEnabled = Nothing
, _grsResponseStatus = pResponseStatus_
}
grsLoggingEnabled :: Lens' GetBucketLoggingResponse (Maybe LoggingEnabled)
grsLoggingEnabled = lens _grsLoggingEnabled (\ s a -> s{_grsLoggingEnabled = a});
grsResponseStatus :: Lens' GetBucketLoggingResponse Int
grsResponseStatus = lens _grsResponseStatus (\ s a -> s{_grsResponseStatus = a});