{-# 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.CodeBuild.ListBuildsForProject
(
listBuildsForProject
, ListBuildsForProject
, lbfpSortOrder
, lbfpNextToken
, lbfpProjectName
, listBuildsForProjectResponse
, ListBuildsForProjectResponse
, lbfprsIds
, lbfprsNextToken
, lbfprsResponseStatus
) where
import Network.AWS.CodeBuild.Types
import Network.AWS.CodeBuild.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data ListBuildsForProject = ListBuildsForProject'
{ _lbfpSortOrder :: !(Maybe SortOrderType)
, _lbfpNextToken :: !(Maybe Text)
, _lbfpProjectName :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listBuildsForProject
:: Text
-> ListBuildsForProject
listBuildsForProject pProjectName_ =
ListBuildsForProject'
{ _lbfpSortOrder = Nothing
, _lbfpNextToken = Nothing
, _lbfpProjectName = pProjectName_
}
lbfpSortOrder :: Lens' ListBuildsForProject (Maybe SortOrderType)
lbfpSortOrder = lens _lbfpSortOrder (\ s a -> s{_lbfpSortOrder = a})
lbfpNextToken :: Lens' ListBuildsForProject (Maybe Text)
lbfpNextToken = lens _lbfpNextToken (\ s a -> s{_lbfpNextToken = a})
lbfpProjectName :: Lens' ListBuildsForProject Text
lbfpProjectName = lens _lbfpProjectName (\ s a -> s{_lbfpProjectName = a})
instance AWSPager ListBuildsForProject where
page rq rs
| stop (rs ^. lbfprsNextToken) = Nothing
| stop (rs ^. lbfprsIds) = Nothing
| otherwise =
Just $ rq & lbfpNextToken .~ rs ^. lbfprsNextToken
instance AWSRequest ListBuildsForProject where
type Rs ListBuildsForProject =
ListBuildsForProjectResponse
request = postJSON codeBuild
response
= receiveJSON
(\ s h x ->
ListBuildsForProjectResponse' <$>
(x .?> "ids") <*> (x .?> "nextToken") <*>
(pure (fromEnum s)))
instance Hashable ListBuildsForProject where
instance NFData ListBuildsForProject where
instance ToHeaders ListBuildsForProject where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeBuild_20161006.ListBuildsForProject" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON ListBuildsForProject where
toJSON ListBuildsForProject'{..}
= object
(catMaybes
[("sortOrder" .=) <$> _lbfpSortOrder,
("nextToken" .=) <$> _lbfpNextToken,
Just ("projectName" .= _lbfpProjectName)])
instance ToPath ListBuildsForProject where
toPath = const "/"
instance ToQuery ListBuildsForProject where
toQuery = const mempty
data ListBuildsForProjectResponse = ListBuildsForProjectResponse'
{ _lbfprsIds :: !(Maybe (List1 Text))
, _lbfprsNextToken :: !(Maybe Text)
, _lbfprsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
listBuildsForProjectResponse
:: Int
-> ListBuildsForProjectResponse
listBuildsForProjectResponse pResponseStatus_ =
ListBuildsForProjectResponse'
{ _lbfprsIds = Nothing
, _lbfprsNextToken = Nothing
, _lbfprsResponseStatus = pResponseStatus_
}
lbfprsIds :: Lens' ListBuildsForProjectResponse (Maybe (NonEmpty Text))
lbfprsIds = lens _lbfprsIds (\ s a -> s{_lbfprsIds = a}) . mapping _List1
lbfprsNextToken :: Lens' ListBuildsForProjectResponse (Maybe Text)
lbfprsNextToken = lens _lbfprsNextToken (\ s a -> s{_lbfprsNextToken = a})
lbfprsResponseStatus :: Lens' ListBuildsForProjectResponse Int
lbfprsResponseStatus = lens _lbfprsResponseStatus (\ s a -> s{_lbfprsResponseStatus = a})
instance NFData ListBuildsForProjectResponse where