{-# 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.CodeCommit.GetDifferences
(
getDifferences
, GetDifferences
, gdAfterPath
, gdNextToken
, gdBeforeCommitSpecifier
, gdBeforePath
, gdMaxResults
, gdRepositoryName
, gdAfterCommitSpecifier
, getDifferencesResponse
, GetDifferencesResponse
, gdrsNextToken
, gdrsDifferences
, gdrsResponseStatus
) where
import Network.AWS.CodeCommit.Types
import Network.AWS.CodeCommit.Types.Product
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data GetDifferences = GetDifferences'
{ _gdAfterPath :: !(Maybe Text)
, _gdNextToken :: !(Maybe Text)
, _gdBeforeCommitSpecifier :: !(Maybe Text)
, _gdBeforePath :: !(Maybe Text)
, _gdMaxResults :: !(Maybe Int)
, _gdRepositoryName :: !Text
, _gdAfterCommitSpecifier :: !Text
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getDifferences
:: Text
-> Text
-> GetDifferences
getDifferences pRepositoryName_ pAfterCommitSpecifier_ =
GetDifferences'
{ _gdAfterPath = Nothing
, _gdNextToken = Nothing
, _gdBeforeCommitSpecifier = Nothing
, _gdBeforePath = Nothing
, _gdMaxResults = Nothing
, _gdRepositoryName = pRepositoryName_
, _gdAfterCommitSpecifier = pAfterCommitSpecifier_
}
gdAfterPath :: Lens' GetDifferences (Maybe Text)
gdAfterPath = lens _gdAfterPath (\ s a -> s{_gdAfterPath = a})
gdNextToken :: Lens' GetDifferences (Maybe Text)
gdNextToken = lens _gdNextToken (\ s a -> s{_gdNextToken = a})
gdBeforeCommitSpecifier :: Lens' GetDifferences (Maybe Text)
gdBeforeCommitSpecifier = lens _gdBeforeCommitSpecifier (\ s a -> s{_gdBeforeCommitSpecifier = a})
gdBeforePath :: Lens' GetDifferences (Maybe Text)
gdBeforePath = lens _gdBeforePath (\ s a -> s{_gdBeforePath = a})
gdMaxResults :: Lens' GetDifferences (Maybe Int)
gdMaxResults = lens _gdMaxResults (\ s a -> s{_gdMaxResults = a})
gdRepositoryName :: Lens' GetDifferences Text
gdRepositoryName = lens _gdRepositoryName (\ s a -> s{_gdRepositoryName = a})
gdAfterCommitSpecifier :: Lens' GetDifferences Text
gdAfterCommitSpecifier = lens _gdAfterCommitSpecifier (\ s a -> s{_gdAfterCommitSpecifier = a})
instance AWSPager GetDifferences where
page rq rs
| stop (rs ^. gdrsNextToken) = Nothing
| stop (rs ^. gdrsDifferences) = Nothing
| otherwise =
Just $ rq & gdNextToken .~ rs ^. gdrsNextToken
instance AWSRequest GetDifferences where
type Rs GetDifferences = GetDifferencesResponse
request = postJSON codeCommit
response
= receiveJSON
(\ s h x ->
GetDifferencesResponse' <$>
(x .?> "NextToken") <*>
(x .?> "differences" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable GetDifferences where
instance NFData GetDifferences where
instance ToHeaders GetDifferences where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeCommit_20150413.GetDifferences" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON GetDifferences where
toJSON GetDifferences'{..}
= object
(catMaybes
[("afterPath" .=) <$> _gdAfterPath,
("NextToken" .=) <$> _gdNextToken,
("beforeCommitSpecifier" .=) <$>
_gdBeforeCommitSpecifier,
("beforePath" .=) <$> _gdBeforePath,
("MaxResults" .=) <$> _gdMaxResults,
Just ("repositoryName" .= _gdRepositoryName),
Just
("afterCommitSpecifier" .= _gdAfterCommitSpecifier)])
instance ToPath GetDifferences where
toPath = const "/"
instance ToQuery GetDifferences where
toQuery = const mempty
data GetDifferencesResponse = GetDifferencesResponse'
{ _gdrsNextToken :: !(Maybe Text)
, _gdrsDifferences :: !(Maybe [Difference])
, _gdrsResponseStatus :: !Int
} deriving (Eq, Read, Show, Data, Typeable, Generic)
getDifferencesResponse
:: Int
-> GetDifferencesResponse
getDifferencesResponse pResponseStatus_ =
GetDifferencesResponse'
{ _gdrsNextToken = Nothing
, _gdrsDifferences = Nothing
, _gdrsResponseStatus = pResponseStatus_
}
gdrsNextToken :: Lens' GetDifferencesResponse (Maybe Text)
gdrsNextToken = lens _gdrsNextToken (\ s a -> s{_gdrsNextToken = a})
gdrsDifferences :: Lens' GetDifferencesResponse [Difference]
gdrsDifferences = lens _gdrsDifferences (\ s a -> s{_gdrsDifferences = a}) . _Default . _Coerce
gdrsResponseStatus :: Lens' GetDifferencesResponse Int
gdrsResponseStatus = lens _gdrsResponseStatus (\ s a -> s{_gdrsResponseStatus = a})
instance NFData GetDifferencesResponse where