{-# LANGUAGE RecordWildCards, TypeFamilies, FlexibleInstances, MultiParamTypeClasses, OverloadedStrings #-} module Aws.SimpleDb.Commands.DeleteAttributes where import Aws.Response import Aws.Signature import Aws.SimpleDb.Info import Aws.SimpleDb.Metadata import Aws.SimpleDb.Model import Aws.SimpleDb.Query import Aws.SimpleDb.Response import Aws.Transaction import Aws.Util import qualified Data.Text as T import qualified Data.Text.Encoding as T data DeleteAttributes = DeleteAttributes { daItemName :: T.Text , daAttributes :: [Attribute DeleteAttribute] , daExpected :: [Attribute ExpectedAttribute] , daDomainName :: T.Text } deriving (Show) data DeleteAttributesResponse = DeleteAttributesResponse deriving (Show) deleteAttributes :: T.Text -> [Attribute DeleteAttribute] -> T.Text -> DeleteAttributes deleteAttributes item attributes domain = DeleteAttributes { daItemName = item , daAttributes = attributes , daExpected = [] , daDomainName = domain } instance SignQuery DeleteAttributes where type Info DeleteAttributes = SdbInfo signQuery DeleteAttributes{..} = sdbSignQuery $ [("Action", "DeleteAttributes"), ("ItemName", T.encodeUtf8 daItemName), ("DomainName", T.encodeUtf8 daDomainName)] ++ queryList (attributeQuery deleteAttributeQuery) "Attribute" daAttributes ++ queryList (attributeQuery expectedAttributeQuery) "Expected" daExpected instance ResponseConsumer r DeleteAttributesResponse where type ResponseMetadata DeleteAttributesResponse = SdbMetadata responseConsumer _ = sdbResponseConsumer $ sdbCheckResponseType DeleteAttributesResponse "DeleteAttributesResponse" instance Transaction DeleteAttributes DeleteAttributesResponse