module Network.AWS.S3.GetBucketVersioning
(
GetBucketVersioning
, getBucketVersioning
, gbvBucket
, GetBucketVersioningResponse
, getBucketVersioningResponse
, gbvrMFADelete
, gbvrStatus
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
newtype GetBucketVersioning = GetBucketVersioning
{ _gbvBucket :: Text
} deriving (Eq, Ord, Show, Monoid, IsString)
getBucketVersioning :: Text
-> GetBucketVersioning
getBucketVersioning p1 = GetBucketVersioning
{ _gbvBucket = p1
}
gbvBucket :: Lens' GetBucketVersioning Text
gbvBucket = lens _gbvBucket (\s a -> s { _gbvBucket = a })
data GetBucketVersioningResponse = GetBucketVersioningResponse
{ _gbvrMFADelete :: Maybe MFADeleteStatus
, _gbvrStatus :: Maybe BucketVersioningStatus
} deriving (Eq, Show)
getBucketVersioningResponse :: GetBucketVersioningResponse
getBucketVersioningResponse = GetBucketVersioningResponse
{ _gbvrStatus = Nothing
, _gbvrMFADelete = Nothing
}
gbvrMFADelete :: Lens' GetBucketVersioningResponse (Maybe MFADeleteStatus)
gbvrMFADelete = lens _gbvrMFADelete (\s a -> s { _gbvrMFADelete = a })
gbvrStatus :: Lens' GetBucketVersioningResponse (Maybe BucketVersioningStatus)
gbvrStatus = lens _gbvrStatus (\s a -> s { _gbvrStatus = a })
instance ToPath GetBucketVersioning where
toPath GetBucketVersioning{..} = mconcat
[ "/"
, toText _gbvBucket
]
instance ToQuery GetBucketVersioning where
toQuery = const "versioning"
instance ToHeaders GetBucketVersioning
instance ToXMLRoot GetBucketVersioning where
toXMLRoot = const (namespaced ns "GetBucketVersioning" [])
instance ToXML GetBucketVersioning
instance AWSRequest GetBucketVersioning where
type Sv GetBucketVersioning = S3
type Rs GetBucketVersioning = GetBucketVersioningResponse
request = get
response = xmlResponse
instance FromXML GetBucketVersioningResponse where
parseXML x = GetBucketVersioningResponse
<$> x .@? "MfaDelete"
<*> x .@? "Status"