amazonka-glue-1.6.0: gen/Network/AWS/Glue/GetJobs.hs
{-# 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 #-}
-- Derived from AWS service descriptions, licensed under Apache 2.0.
-- |
-- Module : Network.AWS.Glue.GetJobs
-- Copyright : (c) 2013-2018 Brendan Hay
-- License : Mozilla Public License, v. 2.0.
-- Maintainer : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Retrieves all current job definitions.
--
--
--
-- This operation returns paginated results.
module Network.AWS.Glue.GetJobs
(
-- * Creating a Request
getJobs
, GetJobs
-- * Request Lenses
, gjNextToken
, gjMaxResults
-- * Destructuring the Response
, getJobsResponse
, GetJobsResponse
-- * Response Lenses
, gjsrsNextToken
, gjsrsJobs
, gjsrsResponseStatus
) where
import Network.AWS.Glue.Types
import Network.AWS.Glue.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | /See:/ 'getJobs' smart constructor.
data GetJobs = GetJobs'
{ _gjNextToken :: !(Maybe Text)
, _gjMaxResults :: !(Maybe Nat)
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetJobs' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gjNextToken' - A continuation token, if this is a continuation call.
--
-- * 'gjMaxResults' - The maximum size of the response.
getJobs
:: GetJobs
getJobs = GetJobs' {_gjNextToken = Nothing, _gjMaxResults = Nothing}
-- | A continuation token, if this is a continuation call.
gjNextToken :: Lens' GetJobs (Maybe Text)
gjNextToken = lens _gjNextToken (\ s a -> s{_gjNextToken = a})
-- | The maximum size of the response.
gjMaxResults :: Lens' GetJobs (Maybe Natural)
gjMaxResults = lens _gjMaxResults (\ s a -> s{_gjMaxResults = a}) . mapping _Nat
instance AWSPager GetJobs where
page rq rs
| stop (rs ^. gjsrsNextToken) = Nothing
| stop (rs ^. gjsrsJobs) = Nothing
| otherwise =
Just $ rq & gjNextToken .~ rs ^. gjsrsNextToken
instance AWSRequest GetJobs where
type Rs GetJobs = GetJobsResponse
request = postJSON glue
response
= receiveJSON
(\ s h x ->
GetJobsResponse' <$>
(x .?> "NextToken") <*> (x .?> "Jobs" .!@ mempty) <*>
(pure (fromEnum s)))
instance Hashable GetJobs where
instance NFData GetJobs where
instance ToHeaders GetJobs where
toHeaders
= const
(mconcat
["X-Amz-Target" =# ("AWSGlue.GetJobs" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetJobs where
toJSON GetJobs'{..}
= object
(catMaybes
[("NextToken" .=) <$> _gjNextToken,
("MaxResults" .=) <$> _gjMaxResults])
instance ToPath GetJobs where
toPath = const "/"
instance ToQuery GetJobs where
toQuery = const mempty
-- | /See:/ 'getJobsResponse' smart constructor.
data GetJobsResponse = GetJobsResponse'
{ _gjsrsNextToken :: !(Maybe Text)
, _gjsrsJobs :: !(Maybe [Job])
, _gjsrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'GetJobsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'gjsrsNextToken' - A continuation token, if not all job definitions have yet been returned.
--
-- * 'gjsrsJobs' - A list of job definitions.
--
-- * 'gjsrsResponseStatus' - -- | The response status code.
getJobsResponse
:: Int -- ^ 'gjsrsResponseStatus'
-> GetJobsResponse
getJobsResponse pResponseStatus_ =
GetJobsResponse'
{ _gjsrsNextToken = Nothing
, _gjsrsJobs = Nothing
, _gjsrsResponseStatus = pResponseStatus_
}
-- | A continuation token, if not all job definitions have yet been returned.
gjsrsNextToken :: Lens' GetJobsResponse (Maybe Text)
gjsrsNextToken = lens _gjsrsNextToken (\ s a -> s{_gjsrsNextToken = a})
-- | A list of job definitions.
gjsrsJobs :: Lens' GetJobsResponse [Job]
gjsrsJobs = lens _gjsrsJobs (\ s a -> s{_gjsrsJobs = a}) . _Default . _Coerce
-- | -- | The response status code.
gjsrsResponseStatus :: Lens' GetJobsResponse Int
gjsrsResponseStatus = lens _gjsrsResponseStatus (\ s a -> s{_gjsrsResponseStatus = a})
instance NFData GetJobsResponse where