amazonka-codepipeline-1.6.0: gen/Network/AWS/CodePipeline/PollForThirdPartyJobs.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.CodePipeline.PollForThirdPartyJobs
-- 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)
--
-- Determines whether there are any third party jobs for a job worker to act on. Only used for partner actions.
--
--
-- /Important:/ When this API is called, AWS CodePipeline returns temporary credentials for the Amazon S3 bucket used to store artifacts for the pipeline, if the action requires access to that Amazon S3 bucket for input or output artifacts.
--
module Network.AWS.CodePipeline.PollForThirdPartyJobs
(
-- * Creating a Request
pollForThirdPartyJobs
, PollForThirdPartyJobs
-- * Request Lenses
, pftpjMaxBatchSize
, pftpjActionTypeId
-- * Destructuring the Response
, pollForThirdPartyJobsResponse
, PollForThirdPartyJobsResponse
-- * Response Lenses
, pftpjrsJobs
, pftpjrsResponseStatus
) where
import Network.AWS.CodePipeline.Types
import Network.AWS.CodePipeline.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
-- | Represents the input of a PollForThirdPartyJobs action.
--
--
--
-- /See:/ 'pollForThirdPartyJobs' smart constructor.
data PollForThirdPartyJobs = PollForThirdPartyJobs'
{ _pftpjMaxBatchSize :: !(Maybe Nat)
, _pftpjActionTypeId :: !ActionTypeId
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'PollForThirdPartyJobs' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'pftpjMaxBatchSize' - The maximum number of jobs to return in a poll for jobs call.
--
-- * 'pftpjActionTypeId' - Represents information about an action type.
pollForThirdPartyJobs
:: ActionTypeId -- ^ 'pftpjActionTypeId'
-> PollForThirdPartyJobs
pollForThirdPartyJobs pActionTypeId_ =
PollForThirdPartyJobs'
{_pftpjMaxBatchSize = Nothing, _pftpjActionTypeId = pActionTypeId_}
-- | The maximum number of jobs to return in a poll for jobs call.
pftpjMaxBatchSize :: Lens' PollForThirdPartyJobs (Maybe Natural)
pftpjMaxBatchSize = lens _pftpjMaxBatchSize (\ s a -> s{_pftpjMaxBatchSize = a}) . mapping _Nat
-- | Represents information about an action type.
pftpjActionTypeId :: Lens' PollForThirdPartyJobs ActionTypeId
pftpjActionTypeId = lens _pftpjActionTypeId (\ s a -> s{_pftpjActionTypeId = a})
instance AWSRequest PollForThirdPartyJobs where
type Rs PollForThirdPartyJobs =
PollForThirdPartyJobsResponse
request = postJSON codePipeline
response
= receiveJSON
(\ s h x ->
PollForThirdPartyJobsResponse' <$>
(x .?> "jobs" .!@ mempty) <*> (pure (fromEnum s)))
instance Hashable PollForThirdPartyJobs where
instance NFData PollForThirdPartyJobs where
instance ToHeaders PollForThirdPartyJobs where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodePipeline_20150709.PollForThirdPartyJobs" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON PollForThirdPartyJobs where
toJSON PollForThirdPartyJobs'{..}
= object
(catMaybes
[("maxBatchSize" .=) <$> _pftpjMaxBatchSize,
Just ("actionTypeId" .= _pftpjActionTypeId)])
instance ToPath PollForThirdPartyJobs where
toPath = const "/"
instance ToQuery PollForThirdPartyJobs where
toQuery = const mempty
-- | Represents the output of a PollForThirdPartyJobs action.
--
--
--
-- /See:/ 'pollForThirdPartyJobsResponse' smart constructor.
data PollForThirdPartyJobsResponse = PollForThirdPartyJobsResponse'
{ _pftpjrsJobs :: !(Maybe [ThirdPartyJob])
, _pftpjrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
-- | Creates a value of 'PollForThirdPartyJobsResponse' with the minimum fields required to make a request.
--
-- Use one of the following lenses to modify other fields as desired:
--
-- * 'pftpjrsJobs' - Information about the jobs to take action on.
--
-- * 'pftpjrsResponseStatus' - -- | The response status code.
pollForThirdPartyJobsResponse
:: Int -- ^ 'pftpjrsResponseStatus'
-> PollForThirdPartyJobsResponse
pollForThirdPartyJobsResponse pResponseStatus_ =
PollForThirdPartyJobsResponse'
{_pftpjrsJobs = Nothing, _pftpjrsResponseStatus = pResponseStatus_}
-- | Information about the jobs to take action on.
pftpjrsJobs :: Lens' PollForThirdPartyJobsResponse [ThirdPartyJob]
pftpjrsJobs = lens _pftpjrsJobs (\ s a -> s{_pftpjrsJobs = a}) . _Default . _Coerce
-- | -- | The response status code.
pftpjrsResponseStatus :: Lens' PollForThirdPartyJobsResponse Int
pftpjrsResponseStatus = lens _pftpjrsResponseStatus (\ s a -> s{_pftpjrsResponseStatus = a})
instance NFData PollForThirdPartyJobsResponse where