{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE NoImplicitPrelude #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -fno-warn-unused-imports #-} -- Module : Network.AWS.CodeDeploy.UpdateDeploymentGroup -- Copyright : (c) 2013-2014 Brendan Hay -- License : This Source Code Form is subject to the terms of -- the Mozilla Public License, v. 2.0. -- A copy of the MPL can be found in the LICENSE file or -- you can obtain it at http://mozilla.org/MPL/2.0/. -- Maintainer : Brendan Hay -- Stability : experimental -- Portability : non-portable (GHC extensions) -- -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | Changes information about an existing deployment group. -- -- module Network.AWS.CodeDeploy.UpdateDeploymentGroup ( -- * Request UpdateDeploymentGroup -- ** Request constructor , updateDeploymentGroup -- ** Request lenses , udgApplicationName , udgAutoScalingGroups , udgCurrentDeploymentGroupName , udgDeploymentConfigName , udgEc2TagFilters , udgNewDeploymentGroupName , udgServiceRoleArn -- * Response , UpdateDeploymentGroupResponse -- ** Response constructor , updateDeploymentGroupResponse -- ** Response lenses , 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' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'udgApplicationName' @::@ 'Text' -- -- * 'udgAutoScalingGroups' @::@ ['Text'] -- -- * 'udgCurrentDeploymentGroupName' @::@ 'Text' -- -- * 'udgDeploymentConfigName' @::@ 'Maybe' 'Text' -- -- * 'udgEc2TagFilters' @::@ ['EC2TagFilter'] -- -- * 'udgNewDeploymentGroupName' @::@ 'Maybe' 'Text' -- -- * 'udgServiceRoleArn' @::@ 'Maybe' 'Text' -- updateDeploymentGroup :: Text -- ^ 'udgApplicationName' -> Text -- ^ 'udgCurrentDeploymentGroupName' -> UpdateDeploymentGroup updateDeploymentGroup p1 p2 = UpdateDeploymentGroup { _udgApplicationName = p1 , _udgCurrentDeploymentGroupName = p2 , _udgNewDeploymentGroupName = Nothing , _udgDeploymentConfigName = Nothing , _udgEc2TagFilters = mempty , _udgAutoScalingGroups = mempty , _udgServiceRoleArn = Nothing } -- | The application name corresponding to the deployment group to update. udgApplicationName :: Lens' UpdateDeploymentGroup Text udgApplicationName = lens _udgApplicationName (\s a -> s { _udgApplicationName = a }) -- | The replacement list of Auto Scaling groups to be included in the deployment -- group, if you want to change them. udgAutoScalingGroups :: Lens' UpdateDeploymentGroup [Text] udgAutoScalingGroups = lens _udgAutoScalingGroups (\s a -> s { _udgAutoScalingGroups = a }) . _List -- | The current name of the existing deployment group. udgCurrentDeploymentGroupName :: Lens' UpdateDeploymentGroup Text udgCurrentDeploymentGroupName = lens _udgCurrentDeploymentGroupName (\s a -> s { _udgCurrentDeploymentGroupName = a }) -- | The replacement deployment configuration name to use, if you want to change -- it. udgDeploymentConfigName :: Lens' UpdateDeploymentGroup (Maybe Text) udgDeploymentConfigName = lens _udgDeploymentConfigName (\s a -> s { _udgDeploymentConfigName = a }) -- | The replacement set of Amazon EC2 tags to filter on, if you want to change -- them. udgEc2TagFilters :: Lens' UpdateDeploymentGroup [EC2TagFilter] udgEc2TagFilters = lens _udgEc2TagFilters (\s a -> s { _udgEc2TagFilters = a }) . _List -- | The new name of the deployment group, if you want to change it. udgNewDeploymentGroupName :: Lens' UpdateDeploymentGroup (Maybe Text) udgNewDeploymentGroupName = lens _udgNewDeploymentGroupName (\s a -> s { _udgNewDeploymentGroupName = a }) -- | A replacement service role's ARN, if you want to change it. udgServiceRoleArn :: Lens' UpdateDeploymentGroup (Maybe Text) udgServiceRoleArn = lens _udgServiceRoleArn (\s a -> s { _udgServiceRoleArn = a }) newtype UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse { _udgrHooksNotCleanedUp :: List "autoScalingGroups" 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' constructor. -- -- The fields accessible through corresponding lenses are: -- -- * 'udgrHooksNotCleanedUp' @::@ ['AutoScalingGroup'] -- updateDeploymentGroupResponse :: UpdateDeploymentGroupResponse updateDeploymentGroupResponse = UpdateDeploymentGroupResponse { _udgrHooksNotCleanedUp = mempty } -- | If the output contains no data, and the corresponding deployment group -- contained at least one Auto Scaling group, AWS CodeDeploy successfully -- removed all corresponding Auto Scaling lifecycle event hooks from the AWS -- user account. If the output does contain data, AWS CodeDeploy could not -- remove some Auto Scaling lifecycle event hooks from the AWS user account. 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"