module Network.AWS.S3.DeleteObjects
(
DeleteObjects
, deleteObjects
, do1Bucket
, do1Delete
, do1MFA
, do1RequestPayer
, DeleteObjectsResponse
, deleteObjectsResponse
, dor1Deleted
, dor1Errors
, dor1RequestCharged
) where
import Network.AWS.Prelude
import Network.AWS.Request.S3
import Network.AWS.S3.Types
import qualified GHC.Exts
data DeleteObjects = DeleteObjects
{ _do1Bucket :: Text
, _do1Delete :: Delete
, _do1MFA :: Maybe Text
, _do1RequestPayer :: Maybe RequestPayer
} deriving (Eq, Read, Show)
deleteObjects :: Text
-> Delete
-> DeleteObjects
deleteObjects p1 p2 = DeleteObjects
{ _do1Bucket = p1
, _do1Delete = p2
, _do1MFA = Nothing
, _do1RequestPayer = Nothing
}
do1Bucket :: Lens' DeleteObjects Text
do1Bucket = lens _do1Bucket (\s a -> s { _do1Bucket = a })
do1Delete :: Lens' DeleteObjects Delete
do1Delete = lens _do1Delete (\s a -> s { _do1Delete = a })
do1MFA :: Lens' DeleteObjects (Maybe Text)
do1MFA = lens _do1MFA (\s a -> s { _do1MFA = a })
do1RequestPayer :: Lens' DeleteObjects (Maybe RequestPayer)
do1RequestPayer = lens _do1RequestPayer (\s a -> s { _do1RequestPayer = a })
data DeleteObjectsResponse = DeleteObjectsResponse
{ _dor1Deleted :: List "Deleted" DeletedObject
, _dor1Errors :: List "Error" S3ServiceError
, _dor1RequestCharged :: Maybe RequestCharged
} deriving (Eq, Read, Show)
deleteObjectsResponse :: DeleteObjectsResponse
deleteObjectsResponse = DeleteObjectsResponse
{ _dor1Deleted = mempty
, _dor1RequestCharged = Nothing
, _dor1Errors = mempty
}
dor1Deleted :: Lens' DeleteObjectsResponse [DeletedObject]
dor1Deleted = lens _dor1Deleted (\s a -> s { _dor1Deleted = a }) . _List
dor1Errors :: Lens' DeleteObjectsResponse [S3ServiceError]
dor1Errors = lens _dor1Errors (\s a -> s { _dor1Errors = a }) . _List
dor1RequestCharged :: Lens' DeleteObjectsResponse (Maybe RequestCharged)
dor1RequestCharged =
lens _dor1RequestCharged (\s a -> s { _dor1RequestCharged = a })
instance ToPath DeleteObjects where
toPath DeleteObjects{..} = mconcat
[ "/"
, toText _do1Bucket
]
instance ToQuery DeleteObjects where
toQuery = const "delete"
instance ToHeaders DeleteObjects where
toHeaders DeleteObjects{..} = mconcat
[ "x-amz-mfa" =: _do1MFA
, "x-amz-request-payer" =: _do1RequestPayer
]
instance ToXMLRoot DeleteObjects where
toXMLRoot = extractRoot ns . toXML . _do1Delete
instance ToXML DeleteObjects
instance AWSRequest DeleteObjects where
type Sv DeleteObjects = S3
type Rs DeleteObjects = DeleteObjectsResponse
request = post
response = xmlHeaderResponse $ \h x -> DeleteObjectsResponse
<$> x .@? "Deleted" .!@ mempty
<*> x .@? "Error" .!@ mempty
<*> h ~:? "x-amz-request-charged"