module Network.AWS.CodeDeploy.CreateDeployment
(
CreateDeployment
, createDeployment
, cdApplicationName
, cdDeploymentConfigName
, cdDeploymentGroupName
, cdDescription
, cdIgnoreApplicationStopFailures
, cdRevision
, CreateDeploymentResponse
, createDeploymentResponse
, cdrDeploymentId
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CodeDeploy.Types
import qualified GHC.Exts
data CreateDeployment = CreateDeployment
{ _cdApplicationName :: Text
, _cdDeploymentConfigName :: Maybe Text
, _cdDeploymentGroupName :: Maybe Text
, _cdDescription :: Maybe Text
, _cdIgnoreApplicationStopFailures :: Maybe Bool
, _cdRevision :: Maybe RevisionLocation
} deriving (Eq, Read, Show)
createDeployment :: Text
-> CreateDeployment
createDeployment p1 = CreateDeployment
{ _cdApplicationName = p1
, _cdDeploymentGroupName = Nothing
, _cdRevision = Nothing
, _cdDeploymentConfigName = Nothing
, _cdDescription = Nothing
, _cdIgnoreApplicationStopFailures = Nothing
}
cdApplicationName :: Lens' CreateDeployment Text
cdApplicationName =
lens _cdApplicationName (\s a -> s { _cdApplicationName = a })
cdDeploymentConfigName :: Lens' CreateDeployment (Maybe Text)
cdDeploymentConfigName =
lens _cdDeploymentConfigName (\s a -> s { _cdDeploymentConfigName = a })
cdDeploymentGroupName :: Lens' CreateDeployment (Maybe Text)
cdDeploymentGroupName =
lens _cdDeploymentGroupName (\s a -> s { _cdDeploymentGroupName = a })
cdDescription :: Lens' CreateDeployment (Maybe Text)
cdDescription = lens _cdDescription (\s a -> s { _cdDescription = a })
cdIgnoreApplicationStopFailures :: Lens' CreateDeployment (Maybe Bool)
cdIgnoreApplicationStopFailures =
lens _cdIgnoreApplicationStopFailures
(\s a -> s { _cdIgnoreApplicationStopFailures = a })
cdRevision :: Lens' CreateDeployment (Maybe RevisionLocation)
cdRevision = lens _cdRevision (\s a -> s { _cdRevision = a })
newtype CreateDeploymentResponse = CreateDeploymentResponse
{ _cdrDeploymentId :: Maybe Text
} deriving (Eq, Ord, Read, Show, Monoid)
createDeploymentResponse :: CreateDeploymentResponse
createDeploymentResponse = CreateDeploymentResponse
{ _cdrDeploymentId = Nothing
}
cdrDeploymentId :: Lens' CreateDeploymentResponse (Maybe Text)
cdrDeploymentId = lens _cdrDeploymentId (\s a -> s { _cdrDeploymentId = a })
instance ToPath CreateDeployment where
toPath = const "/"
instance ToQuery CreateDeployment where
toQuery = const mempty
instance ToHeaders CreateDeployment
instance ToJSON CreateDeployment where
toJSON CreateDeployment{..} = object
[ "applicationName" .= _cdApplicationName
, "deploymentGroupName" .= _cdDeploymentGroupName
, "revision" .= _cdRevision
, "deploymentConfigName" .= _cdDeploymentConfigName
, "description" .= _cdDescription
, "ignoreApplicationStopFailures" .= _cdIgnoreApplicationStopFailures
]
instance AWSRequest CreateDeployment where
type Sv CreateDeployment = CodeDeploy
type Rs CreateDeployment = CreateDeploymentResponse
request = post "CreateDeployment"
response = jsonResponse
instance FromJSON CreateDeploymentResponse where
parseJSON = withObject "CreateDeploymentResponse" $ \o -> CreateDeploymentResponse
<$> o .:? "deploymentId"