module Network.AWS.ElasticTranscoder.ListJobsByStatus
(
ListJobsByStatus
, listJobsByStatus
, ljbsAscending
, ljbsPageToken
, ljbsStatus
, ListJobsByStatusResponse
, listJobsByStatusResponse
, ljbsrJobs
, ljbsrNextPageToken
) where
import Network.AWS.Data (Object)
import Network.AWS.Prelude
import Network.AWS.Request.RestJSON
import Network.AWS.ElasticTranscoder.Types
import qualified GHC.Exts
data ListJobsByStatus = ListJobsByStatus
{ _ljbsAscending :: Maybe Text
, _ljbsPageToken :: Maybe Text
, _ljbsStatus :: Text
} deriving (Eq, Ord, Read, Show)
listJobsByStatus :: Text
-> ListJobsByStatus
listJobsByStatus p1 = ListJobsByStatus
{ _ljbsStatus = p1
, _ljbsAscending = Nothing
, _ljbsPageToken = Nothing
}
ljbsAscending :: Lens' ListJobsByStatus (Maybe Text)
ljbsAscending = lens _ljbsAscending (\s a -> s { _ljbsAscending = a })
ljbsPageToken :: Lens' ListJobsByStatus (Maybe Text)
ljbsPageToken = lens _ljbsPageToken (\s a -> s { _ljbsPageToken = a })
ljbsStatus :: Lens' ListJobsByStatus Text
ljbsStatus = lens _ljbsStatus (\s a -> s { _ljbsStatus = a })
data ListJobsByStatusResponse = ListJobsByStatusResponse
{ _ljbsrJobs :: List "Jobs" Job'
, _ljbsrNextPageToken :: Maybe Text
} deriving (Eq, Read, Show)
listJobsByStatusResponse :: ListJobsByStatusResponse
listJobsByStatusResponse = ListJobsByStatusResponse
{ _ljbsrJobs = mempty
, _ljbsrNextPageToken = Nothing
}
ljbsrJobs :: Lens' ListJobsByStatusResponse [Job']
ljbsrJobs = lens _ljbsrJobs (\s a -> s { _ljbsrJobs = a }) . _List
ljbsrNextPageToken :: Lens' ListJobsByStatusResponse (Maybe Text)
ljbsrNextPageToken =
lens _ljbsrNextPageToken (\s a -> s { _ljbsrNextPageToken = a })
instance ToPath ListJobsByStatus where
toPath ListJobsByStatus{..} = mconcat
[ "/2012-09-25/jobsByStatus/"
, toText _ljbsStatus
]
instance ToQuery ListJobsByStatus where
toQuery ListJobsByStatus{..} = mconcat
[ "Ascending" =? _ljbsAscending
, "PageToken" =? _ljbsPageToken
]
instance ToHeaders ListJobsByStatus
instance ToJSON ListJobsByStatus where
toJSON = const (toJSON Empty)
instance AWSRequest ListJobsByStatus where
type Sv ListJobsByStatus = ElasticTranscoder
type Rs ListJobsByStatus = ListJobsByStatusResponse
request = get
response = jsonResponse
instance FromJSON ListJobsByStatusResponse where
parseJSON = withObject "ListJobsByStatusResponse" $ \o -> ListJobsByStatusResponse
<$> o .:? "Jobs" .!= mempty
<*> o .:? "NextPageToken"
instance AWSPager ListJobsByStatus where
page rq rs
| stop (rs ^. ljbsrNextPageToken) = Nothing
| otherwise = (\x -> rq & ljbsPageToken ?~ x)
<$> (rs ^. ljbsrNextPageToken)