module Network.AWS.S3.GetBucketLogging
(
getBucketLogging
, GetBucketLogging
, getBucket
, getBucketLoggingResponse
, GetBucketLoggingResponse
, grsLoggingEnabled
, grsStatus
) 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 Sv GetBucketLogging = S3
type Rs GetBucketLogging = GetBucketLoggingResponse
request = get
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)
, _grsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketLoggingResponse
:: Int
-> GetBucketLoggingResponse
getBucketLoggingResponse pStatus_ =
GetBucketLoggingResponse'
{ _grsLoggingEnabled = Nothing
, _grsStatus = pStatus_
}
grsLoggingEnabled :: Lens' GetBucketLoggingResponse (Maybe LoggingEnabled)
grsLoggingEnabled = lens _grsLoggingEnabled (\ s a -> s{_grsLoggingEnabled = a});
grsStatus :: Lens' GetBucketLoggingResponse Int
grsStatus = lens _grsStatus (\ s a -> s{_grsStatus = a});