module Aws.SimpleDb.Commands.BatchDeleteAttributes
where
import Aws.Signature
import Aws.SimpleDb.Info
import Aws.SimpleDb.Model
import Aws.SimpleDb.Query
import Aws.SimpleDb.Response
import Aws.Transaction
import Aws.Util
import Control.Applicative
import Text.XML.Monad
import qualified Data.ByteString.UTF8 as BU
data BatchDeleteAttributes
= BatchDeleteAttributes {
bdaItems :: [Item [Attribute DeleteAttribute]]
, bdaDomainName :: String
}
deriving (Show)
data BatchDeleteAttributesResponse
= BatchDeleteAttributesResponse
deriving (Show)
batchDeleteAttributes :: [Item [Attribute DeleteAttribute]] -> String -> BatchDeleteAttributes
batchDeleteAttributes items domain = BatchDeleteAttributes { bdaItems = items, bdaDomainName = domain }
instance SignQuery BatchDeleteAttributes where
type Info BatchDeleteAttributes = SdbInfo
signQuery BatchDeleteAttributes{..}
= sdbSignQuery $
[("Action", "BatchDeleteAttributes")
, ("DomainName", BU.fromString bdaDomainName)] ++
queryList (itemQuery $ queryList (attributeQuery deleteAttributeQuery) "Attribute") "Item" bdaItems
instance SdbFromResponse BatchDeleteAttributesResponse where
sdbFromResponse = BatchDeleteAttributesResponse <$ testElementNameUI "BatchDeleteAttributesResponse"
instance Transaction BatchDeleteAttributes (SdbResponse BatchDeleteAttributesResponse)