{-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} module Aws.ElasticTranscoder.Commands.UpdatePipelineStatus ( UpdatePipelineStatus(..) ) where import Aws.Core import Aws.ElasticTranscoder.Core import Control.Applicative import Data.Aeson import Data.Text as T data UpdatePipelineStatus = UpdatePipelineStatus { upsId :: PipelineId , upsStatus :: PipelineStatus } deriving (Show,Eq) instance SignQuery UpdatePipelineStatus where type ServiceConfiguration UpdatePipelineStatus = EtsConfiguration signQuery UpdatePipelineStatus{..} = etsSignQuery EtsQuery { etsqMethod = Get , etsqRequest = "pipelines/" `T.append` _PipelineId upsId `T.append` "/status" , etsqQuery = [] , etsqBody = Just $ object [ "Status" .= upsStatus ] } instance ResponseConsumer UpdatePipelineStatus UpdatePipelineStatus where type ResponseMetadata UpdatePipelineStatus = EtsMetadata responseConsumer _ mref = etsResponseConsumer mref $ \rsp -> cnv <$> jsonConsumer rsp where cnv (PipelineIdAndStatus a b) = UpdatePipelineStatus a b instance Transaction UpdatePipelineStatus UpdatePipelineStatus instance AsMemoryResponse UpdatePipelineStatus where type MemoryResponse UpdatePipelineStatus = UpdatePipelineStatus loadToMemory = return