module AWS.EC2.Parser ( module AWS.EC2.Parser.Internal , resourceTagSink , productCodeSink , stateReasonSink , volumeTypeSink ) where import Control.Applicative import Data.Conduit import Data.XML.Types (Event) import AWS.EC2.Types import AWS.EC2.Parser.Internal import AWS.Util resourceTagSink :: MonadThrow m => GLSink Event m [ResourceTag] resourceTagSink = itemsSet "tagSet" $ resourceTag <$> getT "key" <*> getMT "value" productCodeSink :: MonadThrow m => GLSink Event m [ProductCode] productCodeSink = itemsSet "productCodes" $ productCode <$> getT "productCode" <*> getF "type" productCodeType stateReasonSink :: MonadThrow m => GLSink Event m (Maybe StateReason) stateReasonSink = elementM "stateReason" $ stateReason <$> getT "code" <*> getT "message" volumeTypeSink :: MonadThrow m => GLSink Event m VolumeType volumeTypeSink = volumeType <$> getT "volumeType" <*> getM "iops" (textToInt <$>)