module Network.AWS.CodeDeploy.ListDeployments
(
ListDeployments
, listDeployments
, ldApplicationName
, ldCreateTimeRange
, ldDeploymentGroupName
, ldIncludeOnlyStatuses
, ldNextToken
, ListDeploymentsResponse
, listDeploymentsResponse
, ldrDeployments
, ldrNextToken
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CodeDeploy.Types
import qualified GHC.Exts
data ListDeployments = ListDeployments
{ _ldApplicationName :: Maybe Text
, _ldCreateTimeRange :: Maybe TimeRange
, _ldDeploymentGroupName :: Maybe Text
, _ldIncludeOnlyStatuses :: List "includeOnlyStatuses" DeploymentStatus
, _ldNextToken :: Maybe Text
} deriving (Eq, Show)
listDeployments :: ListDeployments
listDeployments = ListDeployments
{ _ldApplicationName = Nothing
, _ldDeploymentGroupName = Nothing
, _ldIncludeOnlyStatuses = mempty
, _ldCreateTimeRange = Nothing
, _ldNextToken = Nothing
}
ldApplicationName :: Lens' ListDeployments (Maybe Text)
ldApplicationName =
lens _ldApplicationName (\s a -> s { _ldApplicationName = a })
ldCreateTimeRange :: Lens' ListDeployments (Maybe TimeRange)
ldCreateTimeRange =
lens _ldCreateTimeRange (\s a -> s { _ldCreateTimeRange = a })
ldDeploymentGroupName :: Lens' ListDeployments (Maybe Text)
ldDeploymentGroupName =
lens _ldDeploymentGroupName (\s a -> s { _ldDeploymentGroupName = a })
ldIncludeOnlyStatuses :: Lens' ListDeployments [DeploymentStatus]
ldIncludeOnlyStatuses =
lens _ldIncludeOnlyStatuses (\s a -> s { _ldIncludeOnlyStatuses = a })
. _List
ldNextToken :: Lens' ListDeployments (Maybe Text)
ldNextToken = lens _ldNextToken (\s a -> s { _ldNextToken = a })
data ListDeploymentsResponse = ListDeploymentsResponse
{ _ldrDeployments :: List "deployments" Text
, _ldrNextToken :: Maybe Text
} deriving (Eq, Ord, Show)
listDeploymentsResponse :: ListDeploymentsResponse
listDeploymentsResponse = ListDeploymentsResponse
{ _ldrDeployments = mempty
, _ldrNextToken = Nothing
}
ldrDeployments :: Lens' ListDeploymentsResponse [Text]
ldrDeployments = lens _ldrDeployments (\s a -> s { _ldrDeployments = a }) . _List
ldrNextToken :: Lens' ListDeploymentsResponse (Maybe Text)
ldrNextToken = lens _ldrNextToken (\s a -> s { _ldrNextToken = a })
instance ToPath ListDeployments where
toPath = const "/"
instance ToQuery ListDeployments where
toQuery = const mempty
instance ToHeaders ListDeployments
instance ToJSON ListDeployments where
toJSON ListDeployments{..} = object
[ "applicationName" .= _ldApplicationName
, "deploymentGroupName" .= _ldDeploymentGroupName
, "includeOnlyStatuses" .= _ldIncludeOnlyStatuses
, "createTimeRange" .= _ldCreateTimeRange
, "nextToken" .= _ldNextToken
]
instance AWSRequest ListDeployments where
type Sv ListDeployments = CodeDeploy
type Rs ListDeployments = ListDeploymentsResponse
request = post "ListDeployments"
response = jsonResponse
instance FromJSON ListDeploymentsResponse where
parseJSON = withObject "ListDeploymentsResponse" $ \o -> ListDeploymentsResponse
<$> o .:? "deployments" .!= mempty
<*> o .:? "nextToken"