{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
module Network.AWS.DeviceFarm.ListJobs
(
listJobs
, ListJobs
, ljNextToken
, ljArn
, listJobsResponse
, ListJobsResponse
, ljrsJobs
, ljrsNextToken
, ljrsResponseStatus
) where
import Network.AWS.DeviceFarm.Types
import Network.AWS.DeviceFarm.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListJobs = ListJobs'
{ _ljNextToken :: !(Maybe Text)
, _ljArn :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listJobs
:: Text
-> ListJobs
listJobs pArn_ =
ListJobs'
{ _ljNextToken = Nothing
, _ljArn = pArn_
}
ljNextToken :: Lens' ListJobs (Maybe Text)
ljNextToken = lens _ljNextToken (\ s a -> s{_ljNextToken = a});
ljArn :: Lens' ListJobs Text
ljArn = lens _ljArn (\ s a -> s{_ljArn = a});
instance AWSPager ListJobs where
page rq rs
| stop (rs ^. ljrsNextToken) = Nothing
| stop (rs ^. ljrsJobs) = Nothing
| otherwise =
Just $ rq & ljNextToken .~ rs ^. ljrsNextToken
instance AWSRequest ListJobs where
type Rs ListJobs = ListJobsResponse
request = postJSON deviceFarm
response
= receiveJSON
(\ s h x ->
ListJobsResponse' <$>
(x .?> "jobs" .!@ mempty) <*> (x .?> "nextToken") <*>
(pure (fromEnum s)))
instance Hashable ListJobs
instance NFData ListJobs
instance ToHeaders ListJobs where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("DeviceFarm_20150623.ListJobs" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListJobs where
toJSON ListJobs'{..}
= object
(catMaybes
[("nextToken" .=) <$> _ljNextToken,
Just ("arn" .= _ljArn)])
instance ToPath ListJobs where
toPath = const "/"
instance ToQuery ListJobs where
toQuery = const mempty
data ListJobsResponse = ListJobsResponse'
{ _ljrsJobs :: !(Maybe [Job])
, _ljrsNextToken :: !(Maybe Text)
, _ljrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
listJobsResponse
:: Int
-> ListJobsResponse
listJobsResponse pResponseStatus_ =
ListJobsResponse'
{ _ljrsJobs = Nothing
, _ljrsNextToken = Nothing
, _ljrsResponseStatus = pResponseStatus_
}
ljrsJobs :: Lens' ListJobsResponse [Job]
ljrsJobs = lens _ljrsJobs (\ s a -> s{_ljrsJobs = a}) . _Default . _Coerce;
ljrsNextToken :: Lens' ListJobsResponse (Maybe Text)
ljrsNextToken = lens _ljrsNextToken (\ s a -> s{_ljrsNextToken = a});
ljrsResponseStatus :: Lens' ListJobsResponse Int
ljrsResponseStatus = lens _ljrsResponseStatus (\ s a -> s{_ljrsResponseStatus = a});
instance NFData ListJobsResponse