{-# 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.StartBuild
(
startBuild
, StartBuild
, sbEnvironmentVariablesOverride
, sbTimeoutInMinutesOverride
, sbSourceVersion
, sbBuildspecOverride
, sbArtifactsOverride
, sbProjectName
, startBuildResponse
, StartBuildResponse
, srsBuild
, srsResponseStatus
) where
import Network.AWS.CodeBuild.Types
import Network.AWS.CodeBuild.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data StartBuild = StartBuild'
{ _sbEnvironmentVariablesOverride :: !(Maybe [EnvironmentVariable])
, _sbTimeoutInMinutesOverride :: !(Maybe Nat)
, _sbSourceVersion :: !(Maybe Text)
, _sbBuildspecOverride :: !(Maybe Text)
, _sbArtifactsOverride :: !(Maybe ProjectArtifacts)
, _sbProjectName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
startBuild
:: Text
-> StartBuild
startBuild pProjectName_ =
StartBuild'
{ _sbEnvironmentVariablesOverride = Nothing
, _sbTimeoutInMinutesOverride = Nothing
, _sbSourceVersion = Nothing
, _sbBuildspecOverride = Nothing
, _sbArtifactsOverride = Nothing
, _sbProjectName = pProjectName_
}
sbEnvironmentVariablesOverride :: Lens' StartBuild [EnvironmentVariable]
sbEnvironmentVariablesOverride = lens _sbEnvironmentVariablesOverride (\ s a -> s{_sbEnvironmentVariablesOverride = a}) . _Default . _Coerce;
sbTimeoutInMinutesOverride :: Lens' StartBuild (Maybe Natural)
sbTimeoutInMinutesOverride = lens _sbTimeoutInMinutesOverride (\ s a -> s{_sbTimeoutInMinutesOverride = a}) . mapping _Nat;
sbSourceVersion :: Lens' StartBuild (Maybe Text)
sbSourceVersion = lens _sbSourceVersion (\ s a -> s{_sbSourceVersion = a});
sbBuildspecOverride :: Lens' StartBuild (Maybe Text)
sbBuildspecOverride = lens _sbBuildspecOverride (\ s a -> s{_sbBuildspecOverride = a});
sbArtifactsOverride :: Lens' StartBuild (Maybe ProjectArtifacts)
sbArtifactsOverride = lens _sbArtifactsOverride (\ s a -> s{_sbArtifactsOverride = a});
sbProjectName :: Lens' StartBuild Text
sbProjectName = lens _sbProjectName (\ s a -> s{_sbProjectName = a});
instance AWSRequest StartBuild where
type Rs StartBuild = StartBuildResponse
request = postJSON codeBuild
response
= receiveJSON
(\ s h x ->
StartBuildResponse' <$>
(x .?> "build") <*> (pure (fromEnum s)))
instance Hashable StartBuild
instance NFData StartBuild
instance ToHeaders StartBuild where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeBuild_20161006.StartBuild" :: ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON StartBuild where
toJSON StartBuild'{..}
= object
(catMaybes
[("environmentVariablesOverride" .=) <$>
_sbEnvironmentVariablesOverride,
("timeoutInMinutesOverride" .=) <$>
_sbTimeoutInMinutesOverride,
("sourceVersion" .=) <$> _sbSourceVersion,
("buildspecOverride" .=) <$> _sbBuildspecOverride,
("artifactsOverride" .=) <$> _sbArtifactsOverride,
Just ("projectName" .= _sbProjectName)])
instance ToPath StartBuild where
toPath = const "/"
instance ToQuery StartBuild where
toQuery = const mempty
data StartBuildResponse = StartBuildResponse'
{ _srsBuild :: !(Maybe Build)
, _srsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
startBuildResponse
:: Int
-> StartBuildResponse
startBuildResponse pResponseStatus_ =
StartBuildResponse'
{ _srsBuild = Nothing
, _srsResponseStatus = pResponseStatus_
}
srsBuild :: Lens' StartBuildResponse (Maybe Build)
srsBuild = lens _srsBuild (\ s a -> s{_srsBuild = a});
srsResponseStatus :: Lens' StartBuildResponse Int
srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a});
instance NFData StartBuildResponse