module Network.AWS.S3.DeleteObjects
(
DeleteObjects
, deleteObjects
, do1Bucket
, do1Delete
, do1MFA
, DeleteObjectsResponse
, deleteObjectsResponse
, dorDeleted
, dorErrors
) 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
} deriving (Eq, Read, Show)
deleteObjects :: Text
-> Delete
-> DeleteObjects
deleteObjects p1 p2 = DeleteObjects
{ _do1Bucket = p1
, _do1Delete = p2
, _do1MFA = 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 })
data DeleteObjectsResponse = DeleteObjectsResponse
{ _dorDeleted :: List "Deleted" DeletedObject
, _dorErrors :: List "Error" S3ServiceError
} deriving (Eq, Read, Show)
deleteObjectsResponse :: DeleteObjectsResponse
deleteObjectsResponse = DeleteObjectsResponse
{ _dorDeleted = mempty
, _dorErrors = mempty
}
dorDeleted :: Lens' DeleteObjectsResponse [DeletedObject]
dorDeleted = lens _dorDeleted (\s a -> s { _dorDeleted = a }) . _List
dorErrors :: Lens' DeleteObjectsResponse [S3ServiceError]
dorErrors = lens _dorErrors (\s a -> s { _dorErrors = a }) . _List
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
]
instance ToXMLRoot DeleteObjects where
toXMLRoot DeleteObjects{..} = namespaced ns "DeleteObjects"
[ "Delete" =@ _do1Delete
]
instance ToXML DeleteObjects
instance AWSRequest DeleteObjects where
type Sv DeleteObjects = S3
type Rs DeleteObjects = DeleteObjectsResponse
request = post
response = xmlResponse
instance FromXML DeleteObjectsResponse where
parseXML x = DeleteObjectsResponse
<$> parseXML x
<*> parseXML x