module Network.AWS.ElasticTranscoder.ListJobsByPipeline
(
ListJobsByPipeline
, listJobsByPipeline
, ljbpAscending
, ljbpPageToken
, ljbpPipelineId
, ListJobsByPipelineResponse
, listJobsByPipelineResponse
, ljbprJobs
, ljbprNextPageToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.RestJSON
import Network.AWS.ElasticTranscoder.Types
import qualified GHC.Exts
data ListJobsByPipeline = ListJobsByPipeline
{ _ljbpAscending :: Maybe Text
, _ljbpPageToken :: Maybe Text
, _ljbpPipelineId :: Text
} deriving (Eq, Ord, Read, Show)
listJobsByPipeline :: Text
-> ListJobsByPipeline
listJobsByPipeline p1 = ListJobsByPipeline
{ _ljbpPipelineId = p1
, _ljbpAscending = Nothing
, _ljbpPageToken = Nothing
}
ljbpAscending :: Lens' ListJobsByPipeline (Maybe Text)
ljbpAscending = lens _ljbpAscending (\s a -> s { _ljbpAscending = a })
ljbpPageToken :: Lens' ListJobsByPipeline (Maybe Text)
ljbpPageToken = lens _ljbpPageToken (\s a -> s { _ljbpPageToken = a })
ljbpPipelineId :: Lens' ListJobsByPipeline Text
ljbpPipelineId = lens _ljbpPipelineId (\s a -> s { _ljbpPipelineId = a })
data ListJobsByPipelineResponse = ListJobsByPipelineResponse
{ _ljbprJobs :: List "Jobs" Job'
, _ljbprNextPageToken :: Maybe Text
} deriving (Eq, Read, Show)
listJobsByPipelineResponse :: ListJobsByPipelineResponse
listJobsByPipelineResponse = ListJobsByPipelineResponse
{ _ljbprJobs = mempty
, _ljbprNextPageToken = Nothing
}
ljbprJobs :: Lens' ListJobsByPipelineResponse [Job']
ljbprJobs = lens _ljbprJobs (\s a -> s { _ljbprJobs = a }) . _List
ljbprNextPageToken :: Lens' ListJobsByPipelineResponse (Maybe Text)
ljbprNextPageToken =
lens _ljbprNextPageToken (\s a -> s { _ljbprNextPageToken = a })
instance ToPath ListJobsByPipeline where
toPath ListJobsByPipeline{..} = mconcat
[ "/2012-09-25/jobsByPipeline/"
, toText _ljbpPipelineId
]
instance ToQuery ListJobsByPipeline where
toQuery ListJobsByPipeline{..} = mconcat
[ "Ascending" =? _ljbpAscending
, "PageToken" =? _ljbpPageToken
]
instance ToHeaders ListJobsByPipeline
instance ToJSON ListJobsByPipeline where
toJSON = const (toJSON Empty)
instance AWSRequest ListJobsByPipeline where
type Sv ListJobsByPipeline = ElasticTranscoder
type Rs ListJobsByPipeline = ListJobsByPipelineResponse
request = get
response = jsonResponse
instance FromJSON ListJobsByPipelineResponse where
parseJSON = withObject "ListJobsByPipelineResponse" $ \o -> ListJobsByPipelineResponse
<$> o .:? "Jobs" .!= mempty
<*> o .:? "NextPageToken"
instance AWSPager ListJobsByPipeline where
page rq rs
| stop (rs ^. ljbprNextPageToken) = Nothing
| otherwise = (\x -> rq & ljbpPageToken ?~ x)
<$> (rs ^. ljbprNextPageToken)