module Network.AWS.CodeDeploy.UpdateDeploymentGroup
(
UpdateDeploymentGroup
, updateDeploymentGroup
, udgApplicationName
, udgAutoScalingGroups
, udgCurrentDeploymentGroupName
, udgDeploymentConfigName
, udgEc2TagFilters
, udgNewDeploymentGroupName
, udgServiceRoleArn
, UpdateDeploymentGroupResponse
, updateDeploymentGroupResponse
, udgrHooksNotCleanedUp
) where
import Network.AWS.Prelude
import Network.AWS.Request.JSON
import Network.AWS.CodeDeploy.Types
import qualified GHC.Exts
data UpdateDeploymentGroup = UpdateDeploymentGroup
{ _udgApplicationName :: Text
, _udgAutoScalingGroups :: List "autoScalingGroups" Text
, _udgCurrentDeploymentGroupName :: Text
, _udgDeploymentConfigName :: Maybe Text
, _udgEc2TagFilters :: List "ec2TagFilters" EC2TagFilter
, _udgNewDeploymentGroupName :: Maybe Text
, _udgServiceRoleArn :: Maybe Text
} deriving (Eq, Show)
updateDeploymentGroup :: Text
-> Text
-> UpdateDeploymentGroup
updateDeploymentGroup p1 p2 = UpdateDeploymentGroup
{ _udgApplicationName = p1
, _udgCurrentDeploymentGroupName = p2
, _udgNewDeploymentGroupName = Nothing
, _udgDeploymentConfigName = Nothing
, _udgEc2TagFilters = mempty
, _udgAutoScalingGroups = mempty
, _udgServiceRoleArn = Nothing
}
udgApplicationName :: Lens' UpdateDeploymentGroup Text
udgApplicationName =
lens _udgApplicationName (\s a -> s { _udgApplicationName = a })
udgAutoScalingGroups :: Lens' UpdateDeploymentGroup [Text]
udgAutoScalingGroups =
lens _udgAutoScalingGroups (\s a -> s { _udgAutoScalingGroups = a })
. _List
udgCurrentDeploymentGroupName :: Lens' UpdateDeploymentGroup Text
udgCurrentDeploymentGroupName =
lens _udgCurrentDeploymentGroupName
(\s a -> s { _udgCurrentDeploymentGroupName = a })
udgDeploymentConfigName :: Lens' UpdateDeploymentGroup (Maybe Text)
udgDeploymentConfigName =
lens _udgDeploymentConfigName (\s a -> s { _udgDeploymentConfigName = a })
udgEc2TagFilters :: Lens' UpdateDeploymentGroup [EC2TagFilter]
udgEc2TagFilters = lens _udgEc2TagFilters (\s a -> s { _udgEc2TagFilters = a }) . _List
udgNewDeploymentGroupName :: Lens' UpdateDeploymentGroup (Maybe Text)
udgNewDeploymentGroupName =
lens _udgNewDeploymentGroupName
(\s a -> s { _udgNewDeploymentGroupName = a })
udgServiceRoleArn :: Lens' UpdateDeploymentGroup (Maybe Text)
udgServiceRoleArn =
lens _udgServiceRoleArn (\s a -> s { _udgServiceRoleArn = a })
newtype UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse
{ _udgrHooksNotCleanedUp :: List "hooksNotCleanedUp" AutoScalingGroup
} deriving (Eq, Show, Monoid, Semigroup)
instance GHC.Exts.IsList UpdateDeploymentGroupResponse where
type Item UpdateDeploymentGroupResponse = AutoScalingGroup
fromList = UpdateDeploymentGroupResponse . GHC.Exts.fromList
toList = GHC.Exts.toList . _udgrHooksNotCleanedUp
updateDeploymentGroupResponse :: UpdateDeploymentGroupResponse
updateDeploymentGroupResponse = UpdateDeploymentGroupResponse
{ _udgrHooksNotCleanedUp = mempty
}
udgrHooksNotCleanedUp :: Lens' UpdateDeploymentGroupResponse [AutoScalingGroup]
udgrHooksNotCleanedUp =
lens _udgrHooksNotCleanedUp (\s a -> s { _udgrHooksNotCleanedUp = a })
. _List
instance ToPath UpdateDeploymentGroup where
toPath = const "/"
instance ToQuery UpdateDeploymentGroup where
toQuery = const mempty
instance ToHeaders UpdateDeploymentGroup
instance ToJSON UpdateDeploymentGroup where
toJSON UpdateDeploymentGroup{..} = object
[ "applicationName" .= _udgApplicationName
, "currentDeploymentGroupName" .= _udgCurrentDeploymentGroupName
, "newDeploymentGroupName" .= _udgNewDeploymentGroupName
, "deploymentConfigName" .= _udgDeploymentConfigName
, "ec2TagFilters" .= _udgEc2TagFilters
, "autoScalingGroups" .= _udgAutoScalingGroups
, "serviceRoleArn" .= _udgServiceRoleArn
]
instance AWSRequest UpdateDeploymentGroup where
type Sv UpdateDeploymentGroup = CodeDeploy
type Rs UpdateDeploymentGroup = UpdateDeploymentGroupResponse
request = post "UpdateDeploymentGroup"
response = jsonResponse
instance FromJSON UpdateDeploymentGroupResponse where
parseJSON = withObject "UpdateDeploymentGroupResponse" $ \o -> UpdateDeploymentGroupResponse
<$> o .:? "hooksNotCleanedUp" .!= mempty