{-# 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.CodeDeploy.CreateDeploymentGroup
(
createDeploymentGroup
, CreateDeploymentGroup
, cdgDeploymentConfigName
, cdgEc2TagFilters
, cdgOnPremisesInstanceTagFilters
, cdgTriggerConfigurations
, cdgAutoScalingGroups
, cdgApplicationName
, cdgDeploymentGroupName
, cdgServiceRoleARN
, createDeploymentGroupResponse
, CreateDeploymentGroupResponse
, cdgrsDeploymentGroupId
, cdgrsResponseStatus
) where
import Network.AWS.CodeDeploy.Types
import Network.AWS.CodeDeploy.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data CreateDeploymentGroup = CreateDeploymentGroup'
{ _cdgDeploymentConfigName :: !(Maybe Text)
, _cdgEc2TagFilters :: !(Maybe [EC2TagFilter])
, _cdgOnPremisesInstanceTagFilters :: !(Maybe [TagFilter])
, _cdgTriggerConfigurations :: !(Maybe [TriggerConfig])
, _cdgAutoScalingGroups :: !(Maybe [Text])
, _cdgApplicationName :: !Text
, _cdgDeploymentGroupName :: !Text
, _cdgServiceRoleARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDeploymentGroup
:: Text
-> Text
-> Text
-> CreateDeploymentGroup
createDeploymentGroup pApplicationName_ pDeploymentGroupName_ pServiceRoleARN_ =
CreateDeploymentGroup'
{ _cdgDeploymentConfigName = Nothing
, _cdgEc2TagFilters = Nothing
, _cdgOnPremisesInstanceTagFilters = Nothing
, _cdgTriggerConfigurations = Nothing
, _cdgAutoScalingGroups = Nothing
, _cdgApplicationName = pApplicationName_
, _cdgDeploymentGroupName = pDeploymentGroupName_
, _cdgServiceRoleARN = pServiceRoleARN_
}
cdgDeploymentConfigName :: Lens' CreateDeploymentGroup (Maybe Text)
cdgDeploymentConfigName = lens _cdgDeploymentConfigName (\ s a -> s{_cdgDeploymentConfigName = a});
cdgEc2TagFilters :: Lens' CreateDeploymentGroup [EC2TagFilter]
cdgEc2TagFilters = lens _cdgEc2TagFilters (\ s a -> s{_cdgEc2TagFilters = a}) . _Default . _Coerce;
cdgOnPremisesInstanceTagFilters :: Lens' CreateDeploymentGroup [TagFilter]
cdgOnPremisesInstanceTagFilters = lens _cdgOnPremisesInstanceTagFilters (\ s a -> s{_cdgOnPremisesInstanceTagFilters = a}) . _Default . _Coerce;
cdgTriggerConfigurations :: Lens' CreateDeploymentGroup [TriggerConfig]
cdgTriggerConfigurations = lens _cdgTriggerConfigurations (\ s a -> s{_cdgTriggerConfigurations = a}) . _Default . _Coerce;
cdgAutoScalingGroups :: Lens' CreateDeploymentGroup [Text]
cdgAutoScalingGroups = lens _cdgAutoScalingGroups (\ s a -> s{_cdgAutoScalingGroups = a}) . _Default . _Coerce;
cdgApplicationName :: Lens' CreateDeploymentGroup Text
cdgApplicationName = lens _cdgApplicationName (\ s a -> s{_cdgApplicationName = a});
cdgDeploymentGroupName :: Lens' CreateDeploymentGroup Text
cdgDeploymentGroupName = lens _cdgDeploymentGroupName (\ s a -> s{_cdgDeploymentGroupName = a});
cdgServiceRoleARN :: Lens' CreateDeploymentGroup Text
cdgServiceRoleARN = lens _cdgServiceRoleARN (\ s a -> s{_cdgServiceRoleARN = a});
instance AWSRequest CreateDeploymentGroup where
type Rs CreateDeploymentGroup =
CreateDeploymentGroupResponse
request = postJSON codeDeploy
response
= receiveJSON
(\ s h x ->
CreateDeploymentGroupResponse' <$>
(x .?> "deploymentGroupId") <*> (pure (fromEnum s)))
instance Hashable CreateDeploymentGroup
instance NFData CreateDeploymentGroup
instance ToHeaders CreateDeploymentGroup where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("CodeDeploy_20141006.CreateDeploymentGroup" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON CreateDeploymentGroup where
toJSON CreateDeploymentGroup'{..}
= object
(catMaybes
[("deploymentConfigName" .=) <$>
_cdgDeploymentConfigName,
("ec2TagFilters" .=) <$> _cdgEc2TagFilters,
("onPremisesInstanceTagFilters" .=) <$>
_cdgOnPremisesInstanceTagFilters,
("triggerConfigurations" .=) <$>
_cdgTriggerConfigurations,
("autoScalingGroups" .=) <$> _cdgAutoScalingGroups,
Just ("applicationName" .= _cdgApplicationName),
Just
("deploymentGroupName" .= _cdgDeploymentGroupName),
Just ("serviceRoleArn" .= _cdgServiceRoleARN)])
instance ToPath CreateDeploymentGroup where
toPath = const "/"
instance ToQuery CreateDeploymentGroup where
toQuery = const mempty
data CreateDeploymentGroupResponse = CreateDeploymentGroupResponse'
{ _cdgrsDeploymentGroupId :: !(Maybe Text)
, _cdgrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
createDeploymentGroupResponse
:: Int
-> CreateDeploymentGroupResponse
createDeploymentGroupResponse pResponseStatus_ =
CreateDeploymentGroupResponse'
{ _cdgrsDeploymentGroupId = Nothing
, _cdgrsResponseStatus = pResponseStatus_
}
cdgrsDeploymentGroupId :: Lens' CreateDeploymentGroupResponse (Maybe Text)
cdgrsDeploymentGroupId = lens _cdgrsDeploymentGroupId (\ s a -> s{_cdgrsDeploymentGroupId = a});
cdgrsResponseStatus :: Lens' CreateDeploymentGroupResponse Int
cdgrsResponseStatus = lens _cdgrsResponseStatus (\ s a -> s{_cdgrsResponseStatus = a});
instance NFData CreateDeploymentGroupResponse