module Aws.ElasticTranscoder.Commands.ListJobsByStatus
( ListJobsByStatus(..)
, ListJobsByStatusResponse(..)
) where
import Aws.Core
import Aws.ElasticTranscoder.Core
import Control.Applicative
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as BC
data ListJobsByStatus
= ListJobsByStatus
{ ljsStatus :: Status
, ljsAscending :: Bool
, ljsPageToken :: TextOrNull
}
deriving (Show,Eq)
data ListJobsByStatusResponse
= ListJobsByStatusResponse
{ ljsrJobs :: [JobSpecId]
, ljsrNextPageToken :: TextOrNull
}
deriving (Show,Eq)
instance SignQuery ListJobsByStatus where
type ServiceConfiguration ListJobsByStatus = EtsConfiguration
signQuery ListJobsByStatus{..} = etsSignQuery EtsQuery
{ etsqMethod = Get
, etsqRequest = "jobsByStatus/" `T.append` status_t ljsStatus
, etsqQuery = [("Ascending",text_q $ bool_t ljsAscending)] ++
[("pageToken",text_q pgtk) |
TNText pgtk<-[ljsPageToken] ]
, etsqBody = Nothing
}
instance ResponseConsumer ListJobsByStatus ListJobsByStatusResponse where
type ResponseMetadata ListJobsByStatusResponse = EtsMetadata
responseConsumer _ mref = etsResponseConsumer mref $ \rsp ->
cnv <$> jsonConsumer rsp
where
cnv (JobList a b) = ListJobsByStatusResponse a b
instance Transaction ListJobsByStatus ListJobsByStatusResponse
instance AsMemoryResponse ListJobsByStatusResponse where
type MemoryResponse ListJobsByStatusResponse = ListJobsByStatusResponse
loadToMemory = return
text_q :: T.Text -> Maybe BC.ByteString
text_q = Just . BC.pack . T.unpack