module Network.AWS.S3.GetBucketVersioning
(
getBucketVersioning
, GetBucketVersioning
, gbvBucket
, getBucketVersioningResponse
, GetBucketVersioningResponse
, gbvrsMFADelete
, gbvrsStatus
) 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 GetBucketVersioning = GetBucketVersioning'
{ _gbvBucket :: BucketName
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketVersioning
:: BucketName
-> GetBucketVersioning
getBucketVersioning pBucket_ =
GetBucketVersioning'
{ _gbvBucket = pBucket_
}
gbvBucket :: Lens' GetBucketVersioning BucketName
gbvBucket = lens _gbvBucket (\ s a -> s{_gbvBucket = a});
instance AWSRequest GetBucketVersioning where
type Rs GetBucketVersioning =
GetBucketVersioningResponse
request = get s3
response
= receiveXML
(\ s h x ->
GetBucketVersioningResponse' <$>
(x .@? "MfaDelete") <*> (pure (fromEnum s)))
instance ToHeaders GetBucketVersioning where
toHeaders = const mempty
instance ToPath GetBucketVersioning where
toPath GetBucketVersioning'{..}
= mconcat ["/", toBS _gbvBucket]
instance ToQuery GetBucketVersioning where
toQuery = const (mconcat ["versioning"])
data GetBucketVersioningResponse = GetBucketVersioningResponse'
{ _gbvrsMFADelete :: !(Maybe MFADeleteStatus)
, _gbvrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketVersioningResponse
:: Int
-> GetBucketVersioningResponse
getBucketVersioningResponse pStatus_ =
GetBucketVersioningResponse'
{ _gbvrsMFADelete = Nothing
, _gbvrsStatus = pStatus_
}
gbvrsMFADelete :: Lens' GetBucketVersioningResponse (Maybe MFADeleteStatus)
gbvrsMFADelete = lens _gbvrsMFADelete (\ s a -> s{_gbvrsMFADelete = a});
gbvrsStatus :: Lens' GetBucketVersioningResponse Int
gbvrsStatus = lens _gbvrsStatus (\ s a -> s{_gbvrsStatus = a});