module Network.AWS.S3.GetBucketLifecycle
(
getBucketLifecycle
, GetBucketLifecycle
, gBucket
, getBucketLifecycleResponse
, GetBucketLifecycleResponse
, gblrsRules
, gblrsStatus
) 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 GetBucketLifecycle = GetBucketLifecycle'
{ _gBucket :: BucketName
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketLifecycle
:: BucketName
-> GetBucketLifecycle
getBucketLifecycle pBucket_ =
GetBucketLifecycle'
{ _gBucket = pBucket_
}
gBucket :: Lens' GetBucketLifecycle BucketName
gBucket = lens _gBucket (\ s a -> s{_gBucket = a});
instance AWSRequest GetBucketLifecycle where
type Rs GetBucketLifecycle =
GetBucketLifecycleResponse
request = get s3
response
= receiveXML
(\ s h x ->
GetBucketLifecycleResponse' <$>
(may (parseXMLList "Rule") x) <*>
(pure (fromEnum s)))
instance ToHeaders GetBucketLifecycle where
toHeaders = const mempty
instance ToPath GetBucketLifecycle where
toPath GetBucketLifecycle'{..}
= mconcat ["/", toBS _gBucket]
instance ToQuery GetBucketLifecycle where
toQuery = const (mconcat ["lifecycle"])
data GetBucketLifecycleResponse = GetBucketLifecycleResponse'
{ _gblrsRules :: !(Maybe [Rule])
, _gblrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
getBucketLifecycleResponse
:: Int
-> GetBucketLifecycleResponse
getBucketLifecycleResponse pStatus_ =
GetBucketLifecycleResponse'
{ _gblrsRules = Nothing
, _gblrsStatus = pStatus_
}
gblrsRules :: Lens' GetBucketLifecycleResponse [Rule]
gblrsRules = lens _gblrsRules (\ s a -> s{_gblrsRules = a}) . _Default . _Coerce;
gblrsStatus :: Lens' GetBucketLifecycleResponse Int
gblrsStatus = lens _gblrsStatus (\ s a -> s{_gblrsStatus = a});