{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.CodeDeploy.UpdateDeploymentGroup
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Changes information about a deployment group.
module Amazonka.CodeDeploy.UpdateDeploymentGroup
  ( -- * Creating a Request
    UpdateDeploymentGroup (..),
    newUpdateDeploymentGroup,

    -- * Request Lenses
    updateDeploymentGroup_serviceRoleArn,
    updateDeploymentGroup_ec2TagSet,
    updateDeploymentGroup_deploymentConfigName,
    updateDeploymentGroup_onPremisesTagSet,
    updateDeploymentGroup_newDeploymentGroupName,
    updateDeploymentGroup_ec2TagFilters,
    updateDeploymentGroup_ecsServices,
    updateDeploymentGroup_blueGreenDeploymentConfiguration,
    updateDeploymentGroup_loadBalancerInfo,
    updateDeploymentGroup_outdatedInstancesStrategy,
    updateDeploymentGroup_onPremisesInstanceTagFilters,
    updateDeploymentGroup_alarmConfiguration,
    updateDeploymentGroup_triggerConfigurations,
    updateDeploymentGroup_autoScalingGroups,
    updateDeploymentGroup_deploymentStyle,
    updateDeploymentGroup_autoRollbackConfiguration,
    updateDeploymentGroup_applicationName,
    updateDeploymentGroup_currentDeploymentGroupName,

    -- * Destructuring the Response
    UpdateDeploymentGroupResponse (..),
    newUpdateDeploymentGroupResponse,

    -- * Response Lenses
    updateDeploymentGroupResponse_hooksNotCleanedUp,
    updateDeploymentGroupResponse_httpStatus,
  )
where

import Amazonka.CodeDeploy.Types
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude
import qualified Amazonka.Request as Request
import qualified Amazonka.Response as Response

-- | Represents the input of an @UpdateDeploymentGroup@ operation.
--
-- /See:/ 'newUpdateDeploymentGroup' smart constructor.
data UpdateDeploymentGroup = UpdateDeploymentGroup'
  { -- | A replacement ARN for the service role, if you want to change it.
    UpdateDeploymentGroup -> Maybe Text
serviceRoleArn :: Prelude.Maybe Prelude.Text,
    -- | Information about groups of tags applied to on-premises instances. The
    -- deployment group includes only EC2 instances identified by all the tag
    -- groups.
    UpdateDeploymentGroup -> Maybe EC2TagSet
ec2TagSet :: Prelude.Maybe EC2TagSet,
    -- | The replacement deployment configuration name to use, if you want to
    -- change it.
    UpdateDeploymentGroup -> Maybe Text
deploymentConfigName :: Prelude.Maybe Prelude.Text,
    -- | Information about an on-premises instance tag set. The deployment group
    -- includes only on-premises instances identified by all the tag groups.
    UpdateDeploymentGroup -> Maybe OnPremisesTagSet
onPremisesTagSet :: Prelude.Maybe OnPremisesTagSet,
    -- | The new name of the deployment group, if you want to change it.
    UpdateDeploymentGroup -> Maybe Text
newDeploymentGroupName' :: Prelude.Maybe Prelude.Text,
    -- | The replacement set of Amazon EC2 tags on which to filter, if you want
    -- to change them. To keep the existing tags, enter their names. To remove
    -- tags, do not enter any tag names.
    UpdateDeploymentGroup -> Maybe [EC2TagFilter]
ec2TagFilters :: Prelude.Maybe [EC2TagFilter],
    -- | The target Amazon ECS services in the deployment group. This applies
    -- only to deployment groups that use the Amazon ECS compute platform. A
    -- target Amazon ECS service is specified as an Amazon ECS cluster and
    -- service name pair using the format @\<clustername>:\<servicename>@.
    UpdateDeploymentGroup -> Maybe [ECSService]
ecsServices :: Prelude.Maybe [ECSService],
    -- | Information about blue\/green deployment options for a deployment group.
    UpdateDeploymentGroup -> Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration :: Prelude.Maybe BlueGreenDeploymentConfiguration,
    -- | Information about the load balancer used in a deployment.
    UpdateDeploymentGroup -> Maybe LoadBalancerInfo
loadBalancerInfo :: Prelude.Maybe LoadBalancerInfo,
    -- | Indicates what happens when new EC2 instances are launched
    -- mid-deployment and do not receive the deployed application revision.
    --
    -- If this option is set to @UPDATE@ or is unspecified, CodeDeploy
    -- initiates one or more \'auto-update outdated instances\' deployments to
    -- apply the deployed application revision to the new EC2 instances.
    --
    -- If this option is set to @IGNORE@, CodeDeploy does not initiate a
    -- deployment to update the new EC2 instances. This may result in instances
    -- having different revisions.
    UpdateDeploymentGroup -> Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy :: Prelude.Maybe OutdatedInstancesStrategy,
    -- | The replacement set of on-premises instance tags on which to filter, if
    -- you want to change them. To keep the existing tags, enter their names.
    -- To remove tags, do not enter any tag names.
    UpdateDeploymentGroup -> Maybe [TagFilter]
onPremisesInstanceTagFilters :: Prelude.Maybe [TagFilter],
    -- | Information to add or change about Amazon CloudWatch alarms when the
    -- deployment group is updated.
    UpdateDeploymentGroup -> Maybe AlarmConfiguration
alarmConfiguration :: Prelude.Maybe AlarmConfiguration,
    -- | Information about triggers to change when the deployment group is
    -- updated. For examples, see
    -- <https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html Edit a Trigger in a CodeDeploy Deployment Group>
    -- in the /AWS CodeDeploy User Guide/.
    UpdateDeploymentGroup -> Maybe [TriggerConfig]
triggerConfigurations :: Prelude.Maybe [TriggerConfig],
    -- | The replacement list of Auto Scaling groups to be included in the
    -- deployment group, if you want to change them. To keep the Auto Scaling
    -- groups, enter their names. To remove Auto Scaling groups, do not enter
    -- any Auto Scaling group names.
    UpdateDeploymentGroup -> Maybe [Text]
autoScalingGroups :: Prelude.Maybe [Prelude.Text],
    -- | Information about the type of deployment, either in-place or
    -- blue\/green, you want to run and whether to route deployment traffic
    -- behind a load balancer.
    UpdateDeploymentGroup -> Maybe DeploymentStyle
deploymentStyle :: Prelude.Maybe DeploymentStyle,
    -- | Information for an automatic rollback configuration that is added or
    -- changed when a deployment group is updated.
    UpdateDeploymentGroup -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration :: Prelude.Maybe AutoRollbackConfiguration,
    -- | The application name that corresponds to the deployment group to update.
    UpdateDeploymentGroup -> Text
applicationName :: Prelude.Text,
    -- | The current name of the deployment group.
    UpdateDeploymentGroup -> Text
currentDeploymentGroupName :: Prelude.Text
  }
  deriving (UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool
(UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool)
-> (UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool)
-> Eq UpdateDeploymentGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool
$c/= :: UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool
== :: UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool
$c== :: UpdateDeploymentGroup -> UpdateDeploymentGroup -> Bool
Prelude.Eq, ReadPrec [UpdateDeploymentGroup]
ReadPrec UpdateDeploymentGroup
Int -> ReadS UpdateDeploymentGroup
ReadS [UpdateDeploymentGroup]
(Int -> ReadS UpdateDeploymentGroup)
-> ReadS [UpdateDeploymentGroup]
-> ReadPrec UpdateDeploymentGroup
-> ReadPrec [UpdateDeploymentGroup]
-> Read UpdateDeploymentGroup
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDeploymentGroup]
$creadListPrec :: ReadPrec [UpdateDeploymentGroup]
readPrec :: ReadPrec UpdateDeploymentGroup
$creadPrec :: ReadPrec UpdateDeploymentGroup
readList :: ReadS [UpdateDeploymentGroup]
$creadList :: ReadS [UpdateDeploymentGroup]
readsPrec :: Int -> ReadS UpdateDeploymentGroup
$creadsPrec :: Int -> ReadS UpdateDeploymentGroup
Prelude.Read, Int -> UpdateDeploymentGroup -> ShowS
[UpdateDeploymentGroup] -> ShowS
UpdateDeploymentGroup -> String
(Int -> UpdateDeploymentGroup -> ShowS)
-> (UpdateDeploymentGroup -> String)
-> ([UpdateDeploymentGroup] -> ShowS)
-> Show UpdateDeploymentGroup
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDeploymentGroup] -> ShowS
$cshowList :: [UpdateDeploymentGroup] -> ShowS
show :: UpdateDeploymentGroup -> String
$cshow :: UpdateDeploymentGroup -> String
showsPrec :: Int -> UpdateDeploymentGroup -> ShowS
$cshowsPrec :: Int -> UpdateDeploymentGroup -> ShowS
Prelude.Show, (forall x. UpdateDeploymentGroup -> Rep UpdateDeploymentGroup x)
-> (forall x. Rep UpdateDeploymentGroup x -> UpdateDeploymentGroup)
-> Generic UpdateDeploymentGroup
forall x. Rep UpdateDeploymentGroup x -> UpdateDeploymentGroup
forall x. UpdateDeploymentGroup -> Rep UpdateDeploymentGroup x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep UpdateDeploymentGroup x -> UpdateDeploymentGroup
$cfrom :: forall x. UpdateDeploymentGroup -> Rep UpdateDeploymentGroup x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDeploymentGroup' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'serviceRoleArn', 'updateDeploymentGroup_serviceRoleArn' - A replacement ARN for the service role, if you want to change it.
--
-- 'ec2TagSet', 'updateDeploymentGroup_ec2TagSet' - Information about groups of tags applied to on-premises instances. The
-- deployment group includes only EC2 instances identified by all the tag
-- groups.
--
-- 'deploymentConfigName', 'updateDeploymentGroup_deploymentConfigName' - The replacement deployment configuration name to use, if you want to
-- change it.
--
-- 'onPremisesTagSet', 'updateDeploymentGroup_onPremisesTagSet' - Information about an on-premises instance tag set. The deployment group
-- includes only on-premises instances identified by all the tag groups.
--
-- 'newDeploymentGroupName'', 'updateDeploymentGroup_newDeploymentGroupName' - The new name of the deployment group, if you want to change it.
--
-- 'ec2TagFilters', 'updateDeploymentGroup_ec2TagFilters' - The replacement set of Amazon EC2 tags on which to filter, if you want
-- to change them. To keep the existing tags, enter their names. To remove
-- tags, do not enter any tag names.
--
-- 'ecsServices', 'updateDeploymentGroup_ecsServices' - The target Amazon ECS services in the deployment group. This applies
-- only to deployment groups that use the Amazon ECS compute platform. A
-- target Amazon ECS service is specified as an Amazon ECS cluster and
-- service name pair using the format @\<clustername>:\<servicename>@.
--
-- 'blueGreenDeploymentConfiguration', 'updateDeploymentGroup_blueGreenDeploymentConfiguration' - Information about blue\/green deployment options for a deployment group.
--
-- 'loadBalancerInfo', 'updateDeploymentGroup_loadBalancerInfo' - Information about the load balancer used in a deployment.
--
-- 'outdatedInstancesStrategy', 'updateDeploymentGroup_outdatedInstancesStrategy' - Indicates what happens when new EC2 instances are launched
-- mid-deployment and do not receive the deployed application revision.
--
-- If this option is set to @UPDATE@ or is unspecified, CodeDeploy
-- initiates one or more \'auto-update outdated instances\' deployments to
-- apply the deployed application revision to the new EC2 instances.
--
-- If this option is set to @IGNORE@, CodeDeploy does not initiate a
-- deployment to update the new EC2 instances. This may result in instances
-- having different revisions.
--
-- 'onPremisesInstanceTagFilters', 'updateDeploymentGroup_onPremisesInstanceTagFilters' - The replacement set of on-premises instance tags on which to filter, if
-- you want to change them. To keep the existing tags, enter their names.
-- To remove tags, do not enter any tag names.
--
-- 'alarmConfiguration', 'updateDeploymentGroup_alarmConfiguration' - Information to add or change about Amazon CloudWatch alarms when the
-- deployment group is updated.
--
-- 'triggerConfigurations', 'updateDeploymentGroup_triggerConfigurations' - Information about triggers to change when the deployment group is
-- updated. For examples, see
-- <https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html Edit a Trigger in a CodeDeploy Deployment Group>
-- in the /AWS CodeDeploy User Guide/.
--
-- 'autoScalingGroups', 'updateDeploymentGroup_autoScalingGroups' - The replacement list of Auto Scaling groups to be included in the
-- deployment group, if you want to change them. To keep the Auto Scaling
-- groups, enter their names. To remove Auto Scaling groups, do not enter
-- any Auto Scaling group names.
--
-- 'deploymentStyle', 'updateDeploymentGroup_deploymentStyle' - Information about the type of deployment, either in-place or
-- blue\/green, you want to run and whether to route deployment traffic
-- behind a load balancer.
--
-- 'autoRollbackConfiguration', 'updateDeploymentGroup_autoRollbackConfiguration' - Information for an automatic rollback configuration that is added or
-- changed when a deployment group is updated.
--
-- 'applicationName', 'updateDeploymentGroup_applicationName' - The application name that corresponds to the deployment group to update.
--
-- 'currentDeploymentGroupName', 'updateDeploymentGroup_currentDeploymentGroupName' - The current name of the deployment group.
newUpdateDeploymentGroup ::
  -- | 'applicationName'
  Prelude.Text ->
  -- | 'currentDeploymentGroupName'
  Prelude.Text ->
  UpdateDeploymentGroup
newUpdateDeploymentGroup :: Text -> Text -> UpdateDeploymentGroup
newUpdateDeploymentGroup
  Text
pApplicationName_
  Text
pCurrentDeploymentGroupName_ =
    UpdateDeploymentGroup' :: Maybe Text
-> Maybe EC2TagSet
-> Maybe Text
-> Maybe OnPremisesTagSet
-> Maybe Text
-> Maybe [EC2TagFilter]
-> Maybe [ECSService]
-> Maybe BlueGreenDeploymentConfiguration
-> Maybe LoadBalancerInfo
-> Maybe OutdatedInstancesStrategy
-> Maybe [TagFilter]
-> Maybe AlarmConfiguration
-> Maybe [TriggerConfig]
-> Maybe [Text]
-> Maybe DeploymentStyle
-> Maybe AutoRollbackConfiguration
-> Text
-> Text
-> UpdateDeploymentGroup
UpdateDeploymentGroup'
      { $sel:serviceRoleArn:UpdateDeploymentGroup' :: Maybe Text
serviceRoleArn =
          Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:ec2TagSet:UpdateDeploymentGroup' :: Maybe EC2TagSet
ec2TagSet = Maybe EC2TagSet
forall a. Maybe a
Prelude.Nothing,
        $sel:deploymentConfigName:UpdateDeploymentGroup' :: Maybe Text
deploymentConfigName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:onPremisesTagSet:UpdateDeploymentGroup' :: Maybe OnPremisesTagSet
onPremisesTagSet = Maybe OnPremisesTagSet
forall a. Maybe a
Prelude.Nothing,
        $sel:newDeploymentGroupName':UpdateDeploymentGroup' :: Maybe Text
newDeploymentGroupName' = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:ec2TagFilters:UpdateDeploymentGroup' :: Maybe [EC2TagFilter]
ec2TagFilters = Maybe [EC2TagFilter]
forall a. Maybe a
Prelude.Nothing,
        $sel:ecsServices:UpdateDeploymentGroup' :: Maybe [ECSService]
ecsServices = Maybe [ECSService]
forall a. Maybe a
Prelude.Nothing,
        $sel:blueGreenDeploymentConfiguration:UpdateDeploymentGroup' :: Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration = Maybe BlueGreenDeploymentConfiguration
forall a. Maybe a
Prelude.Nothing,
        $sel:loadBalancerInfo:UpdateDeploymentGroup' :: Maybe LoadBalancerInfo
loadBalancerInfo = Maybe LoadBalancerInfo
forall a. Maybe a
Prelude.Nothing,
        $sel:outdatedInstancesStrategy:UpdateDeploymentGroup' :: Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy = Maybe OutdatedInstancesStrategy
forall a. Maybe a
Prelude.Nothing,
        $sel:onPremisesInstanceTagFilters:UpdateDeploymentGroup' :: Maybe [TagFilter]
onPremisesInstanceTagFilters = Maybe [TagFilter]
forall a. Maybe a
Prelude.Nothing,
        $sel:alarmConfiguration:UpdateDeploymentGroup' :: Maybe AlarmConfiguration
alarmConfiguration = Maybe AlarmConfiguration
forall a. Maybe a
Prelude.Nothing,
        $sel:triggerConfigurations:UpdateDeploymentGroup' :: Maybe [TriggerConfig]
triggerConfigurations = Maybe [TriggerConfig]
forall a. Maybe a
Prelude.Nothing,
        $sel:autoScalingGroups:UpdateDeploymentGroup' :: Maybe [Text]
autoScalingGroups = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
        $sel:deploymentStyle:UpdateDeploymentGroup' :: Maybe DeploymentStyle
deploymentStyle = Maybe DeploymentStyle
forall a. Maybe a
Prelude.Nothing,
        $sel:autoRollbackConfiguration:UpdateDeploymentGroup' :: Maybe AutoRollbackConfiguration
autoRollbackConfiguration = Maybe AutoRollbackConfiguration
forall a. Maybe a
Prelude.Nothing,
        $sel:applicationName:UpdateDeploymentGroup' :: Text
applicationName = Text
pApplicationName_,
        $sel:currentDeploymentGroupName:UpdateDeploymentGroup' :: Text
currentDeploymentGroupName =
          Text
pCurrentDeploymentGroupName_
      }

-- | A replacement ARN for the service role, if you want to change it.
updateDeploymentGroup_serviceRoleArn :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe Prelude.Text)
updateDeploymentGroup_serviceRoleArn :: (Maybe Text -> f (Maybe Text))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_serviceRoleArn = (UpdateDeploymentGroup -> Maybe Text)
-> (UpdateDeploymentGroup -> Maybe Text -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe Text
serviceRoleArn :: Maybe Text
$sel:serviceRoleArn:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
serviceRoleArn} -> Maybe Text
serviceRoleArn) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe Text
a -> UpdateDeploymentGroup
s {$sel:serviceRoleArn:UpdateDeploymentGroup' :: Maybe Text
serviceRoleArn = Maybe Text
a} :: UpdateDeploymentGroup)

-- | Information about groups of tags applied to on-premises instances. The
-- deployment group includes only EC2 instances identified by all the tag
-- groups.
updateDeploymentGroup_ec2TagSet :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe EC2TagSet)
updateDeploymentGroup_ec2TagSet :: (Maybe EC2TagSet -> f (Maybe EC2TagSet))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_ec2TagSet = (UpdateDeploymentGroup -> Maybe EC2TagSet)
-> (UpdateDeploymentGroup
    -> Maybe EC2TagSet -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe EC2TagSet)
     (Maybe EC2TagSet)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe EC2TagSet
ec2TagSet :: Maybe EC2TagSet
$sel:ec2TagSet:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe EC2TagSet
ec2TagSet} -> Maybe EC2TagSet
ec2TagSet) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe EC2TagSet
a -> UpdateDeploymentGroup
s {$sel:ec2TagSet:UpdateDeploymentGroup' :: Maybe EC2TagSet
ec2TagSet = Maybe EC2TagSet
a} :: UpdateDeploymentGroup)

-- | The replacement deployment configuration name to use, if you want to
-- change it.
updateDeploymentGroup_deploymentConfigName :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe Prelude.Text)
updateDeploymentGroup_deploymentConfigName :: (Maybe Text -> f (Maybe Text))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_deploymentConfigName = (UpdateDeploymentGroup -> Maybe Text)
-> (UpdateDeploymentGroup -> Maybe Text -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe Text
deploymentConfigName :: Maybe Text
$sel:deploymentConfigName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
deploymentConfigName} -> Maybe Text
deploymentConfigName) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe Text
a -> UpdateDeploymentGroup
s {$sel:deploymentConfigName:UpdateDeploymentGroup' :: Maybe Text
deploymentConfigName = Maybe Text
a} :: UpdateDeploymentGroup)

-- | Information about an on-premises instance tag set. The deployment group
-- includes only on-premises instances identified by all the tag groups.
updateDeploymentGroup_onPremisesTagSet :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe OnPremisesTagSet)
updateDeploymentGroup_onPremisesTagSet :: (Maybe OnPremisesTagSet -> f (Maybe OnPremisesTagSet))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_onPremisesTagSet = (UpdateDeploymentGroup -> Maybe OnPremisesTagSet)
-> (UpdateDeploymentGroup
    -> Maybe OnPremisesTagSet -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe OnPremisesTagSet)
     (Maybe OnPremisesTagSet)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe OnPremisesTagSet
onPremisesTagSet :: Maybe OnPremisesTagSet
$sel:onPremisesTagSet:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe OnPremisesTagSet
onPremisesTagSet} -> Maybe OnPremisesTagSet
onPremisesTagSet) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe OnPremisesTagSet
a -> UpdateDeploymentGroup
s {$sel:onPremisesTagSet:UpdateDeploymentGroup' :: Maybe OnPremisesTagSet
onPremisesTagSet = Maybe OnPremisesTagSet
a} :: UpdateDeploymentGroup)

-- | The new name of the deployment group, if you want to change it.
updateDeploymentGroup_newDeploymentGroupName :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe Prelude.Text)
updateDeploymentGroup_newDeploymentGroupName :: (Maybe Text -> f (Maybe Text))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_newDeploymentGroupName = (UpdateDeploymentGroup -> Maybe Text)
-> (UpdateDeploymentGroup -> Maybe Text -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe Text
newDeploymentGroupName' :: Maybe Text
$sel:newDeploymentGroupName':UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
newDeploymentGroupName'} -> Maybe Text
newDeploymentGroupName') (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe Text
a -> UpdateDeploymentGroup
s {$sel:newDeploymentGroupName':UpdateDeploymentGroup' :: Maybe Text
newDeploymentGroupName' = Maybe Text
a} :: UpdateDeploymentGroup)

-- | The replacement set of Amazon EC2 tags on which to filter, if you want
-- to change them. To keep the existing tags, enter their names. To remove
-- tags, do not enter any tag names.
updateDeploymentGroup_ec2TagFilters :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe [EC2TagFilter])
updateDeploymentGroup_ec2TagFilters :: (Maybe [EC2TagFilter] -> f (Maybe [EC2TagFilter]))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_ec2TagFilters = (UpdateDeploymentGroup -> Maybe [EC2TagFilter])
-> (UpdateDeploymentGroup
    -> Maybe [EC2TagFilter] -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe [EC2TagFilter])
     (Maybe [EC2TagFilter])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe [EC2TagFilter]
ec2TagFilters :: Maybe [EC2TagFilter]
$sel:ec2TagFilters:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [EC2TagFilter]
ec2TagFilters} -> Maybe [EC2TagFilter]
ec2TagFilters) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe [EC2TagFilter]
a -> UpdateDeploymentGroup
s {$sel:ec2TagFilters:UpdateDeploymentGroup' :: Maybe [EC2TagFilter]
ec2TagFilters = Maybe [EC2TagFilter]
a} :: UpdateDeploymentGroup) ((Maybe [EC2TagFilter] -> f (Maybe [EC2TagFilter]))
 -> UpdateDeploymentGroup -> f UpdateDeploymentGroup)
-> ((Maybe [EC2TagFilter] -> f (Maybe [EC2TagFilter]))
    -> Maybe [EC2TagFilter] -> f (Maybe [EC2TagFilter]))
-> (Maybe [EC2TagFilter] -> f (Maybe [EC2TagFilter]))
-> UpdateDeploymentGroup
-> f UpdateDeploymentGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [EC2TagFilter] [EC2TagFilter] [EC2TagFilter] [EC2TagFilter]
-> Iso
     (Maybe [EC2TagFilter])
     (Maybe [EC2TagFilter])
     (Maybe [EC2TagFilter])
     (Maybe [EC2TagFilter])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [EC2TagFilter] [EC2TagFilter] [EC2TagFilter] [EC2TagFilter]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The target Amazon ECS services in the deployment group. This applies
-- only to deployment groups that use the Amazon ECS compute platform. A
-- target Amazon ECS service is specified as an Amazon ECS cluster and
-- service name pair using the format @\<clustername>:\<servicename>@.
updateDeploymentGroup_ecsServices :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe [ECSService])
updateDeploymentGroup_ecsServices :: (Maybe [ECSService] -> f (Maybe [ECSService]))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_ecsServices = (UpdateDeploymentGroup -> Maybe [ECSService])
-> (UpdateDeploymentGroup
    -> Maybe [ECSService] -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe [ECSService])
     (Maybe [ECSService])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe [ECSService]
ecsServices :: Maybe [ECSService]
$sel:ecsServices:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [ECSService]
ecsServices} -> Maybe [ECSService]
ecsServices) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe [ECSService]
a -> UpdateDeploymentGroup
s {$sel:ecsServices:UpdateDeploymentGroup' :: Maybe [ECSService]
ecsServices = Maybe [ECSService]
a} :: UpdateDeploymentGroup) ((Maybe [ECSService] -> f (Maybe [ECSService]))
 -> UpdateDeploymentGroup -> f UpdateDeploymentGroup)
-> ((Maybe [ECSService] -> f (Maybe [ECSService]))
    -> Maybe [ECSService] -> f (Maybe [ECSService]))
-> (Maybe [ECSService] -> f (Maybe [ECSService]))
-> UpdateDeploymentGroup
-> f UpdateDeploymentGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [ECSService] [ECSService] [ECSService] [ECSService]
-> Iso
     (Maybe [ECSService])
     (Maybe [ECSService])
     (Maybe [ECSService])
     (Maybe [ECSService])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [ECSService] [ECSService] [ECSService] [ECSService]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Information about blue\/green deployment options for a deployment group.
updateDeploymentGroup_blueGreenDeploymentConfiguration :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe BlueGreenDeploymentConfiguration)
updateDeploymentGroup_blueGreenDeploymentConfiguration :: (Maybe BlueGreenDeploymentConfiguration
 -> f (Maybe BlueGreenDeploymentConfiguration))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_blueGreenDeploymentConfiguration = (UpdateDeploymentGroup -> Maybe BlueGreenDeploymentConfiguration)
-> (UpdateDeploymentGroup
    -> Maybe BlueGreenDeploymentConfiguration -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe BlueGreenDeploymentConfiguration)
     (Maybe BlueGreenDeploymentConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration :: Maybe BlueGreenDeploymentConfiguration
$sel:blueGreenDeploymentConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration} -> Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe BlueGreenDeploymentConfiguration
a -> UpdateDeploymentGroup
s {$sel:blueGreenDeploymentConfiguration:UpdateDeploymentGroup' :: Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration = Maybe BlueGreenDeploymentConfiguration
a} :: UpdateDeploymentGroup)

-- | Information about the load balancer used in a deployment.
updateDeploymentGroup_loadBalancerInfo :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe LoadBalancerInfo)
updateDeploymentGroup_loadBalancerInfo :: (Maybe LoadBalancerInfo -> f (Maybe LoadBalancerInfo))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_loadBalancerInfo = (UpdateDeploymentGroup -> Maybe LoadBalancerInfo)
-> (UpdateDeploymentGroup
    -> Maybe LoadBalancerInfo -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe LoadBalancerInfo)
     (Maybe LoadBalancerInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe LoadBalancerInfo
loadBalancerInfo :: Maybe LoadBalancerInfo
$sel:loadBalancerInfo:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe LoadBalancerInfo
loadBalancerInfo} -> Maybe LoadBalancerInfo
loadBalancerInfo) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe LoadBalancerInfo
a -> UpdateDeploymentGroup
s {$sel:loadBalancerInfo:UpdateDeploymentGroup' :: Maybe LoadBalancerInfo
loadBalancerInfo = Maybe LoadBalancerInfo
a} :: UpdateDeploymentGroup)

-- | Indicates what happens when new EC2 instances are launched
-- mid-deployment and do not receive the deployed application revision.
--
-- If this option is set to @UPDATE@ or is unspecified, CodeDeploy
-- initiates one or more \'auto-update outdated instances\' deployments to
-- apply the deployed application revision to the new EC2 instances.
--
-- If this option is set to @IGNORE@, CodeDeploy does not initiate a
-- deployment to update the new EC2 instances. This may result in instances
-- having different revisions.
updateDeploymentGroup_outdatedInstancesStrategy :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe OutdatedInstancesStrategy)
updateDeploymentGroup_outdatedInstancesStrategy :: (Maybe OutdatedInstancesStrategy
 -> f (Maybe OutdatedInstancesStrategy))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_outdatedInstancesStrategy = (UpdateDeploymentGroup -> Maybe OutdatedInstancesStrategy)
-> (UpdateDeploymentGroup
    -> Maybe OutdatedInstancesStrategy -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe OutdatedInstancesStrategy)
     (Maybe OutdatedInstancesStrategy)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy :: Maybe OutdatedInstancesStrategy
$sel:outdatedInstancesStrategy:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy} -> Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe OutdatedInstancesStrategy
a -> UpdateDeploymentGroup
s {$sel:outdatedInstancesStrategy:UpdateDeploymentGroup' :: Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy = Maybe OutdatedInstancesStrategy
a} :: UpdateDeploymentGroup)

-- | The replacement set of on-premises instance tags on which to filter, if
-- you want to change them. To keep the existing tags, enter their names.
-- To remove tags, do not enter any tag names.
updateDeploymentGroup_onPremisesInstanceTagFilters :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe [TagFilter])
updateDeploymentGroup_onPremisesInstanceTagFilters :: (Maybe [TagFilter] -> f (Maybe [TagFilter]))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_onPremisesInstanceTagFilters = (UpdateDeploymentGroup -> Maybe [TagFilter])
-> (UpdateDeploymentGroup
    -> Maybe [TagFilter] -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe [TagFilter])
     (Maybe [TagFilter])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe [TagFilter]
onPremisesInstanceTagFilters :: Maybe [TagFilter]
$sel:onPremisesInstanceTagFilters:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [TagFilter]
onPremisesInstanceTagFilters} -> Maybe [TagFilter]
onPremisesInstanceTagFilters) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe [TagFilter]
a -> UpdateDeploymentGroup
s {$sel:onPremisesInstanceTagFilters:UpdateDeploymentGroup' :: Maybe [TagFilter]
onPremisesInstanceTagFilters = Maybe [TagFilter]
a} :: UpdateDeploymentGroup) ((Maybe [TagFilter] -> f (Maybe [TagFilter]))
 -> UpdateDeploymentGroup -> f UpdateDeploymentGroup)
-> ((Maybe [TagFilter] -> f (Maybe [TagFilter]))
    -> Maybe [TagFilter] -> f (Maybe [TagFilter]))
-> (Maybe [TagFilter] -> f (Maybe [TagFilter]))
-> UpdateDeploymentGroup
-> f UpdateDeploymentGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [TagFilter] [TagFilter] [TagFilter] [TagFilter]
-> Iso
     (Maybe [TagFilter])
     (Maybe [TagFilter])
     (Maybe [TagFilter])
     (Maybe [TagFilter])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [TagFilter] [TagFilter] [TagFilter] [TagFilter]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Information to add or change about Amazon CloudWatch alarms when the
-- deployment group is updated.
updateDeploymentGroup_alarmConfiguration :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe AlarmConfiguration)
updateDeploymentGroup_alarmConfiguration :: (Maybe AlarmConfiguration -> f (Maybe AlarmConfiguration))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_alarmConfiguration = (UpdateDeploymentGroup -> Maybe AlarmConfiguration)
-> (UpdateDeploymentGroup
    -> Maybe AlarmConfiguration -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe AlarmConfiguration)
     (Maybe AlarmConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe AlarmConfiguration
alarmConfiguration :: Maybe AlarmConfiguration
$sel:alarmConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe AlarmConfiguration
alarmConfiguration} -> Maybe AlarmConfiguration
alarmConfiguration) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe AlarmConfiguration
a -> UpdateDeploymentGroup
s {$sel:alarmConfiguration:UpdateDeploymentGroup' :: Maybe AlarmConfiguration
alarmConfiguration = Maybe AlarmConfiguration
a} :: UpdateDeploymentGroup)

-- | Information about triggers to change when the deployment group is
-- updated. For examples, see
-- <https://docs.aws.amazon.com/codedeploy/latest/userguide/how-to-notify-edit.html Edit a Trigger in a CodeDeploy Deployment Group>
-- in the /AWS CodeDeploy User Guide/.
updateDeploymentGroup_triggerConfigurations :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe [TriggerConfig])
updateDeploymentGroup_triggerConfigurations :: (Maybe [TriggerConfig] -> f (Maybe [TriggerConfig]))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_triggerConfigurations = (UpdateDeploymentGroup -> Maybe [TriggerConfig])
-> (UpdateDeploymentGroup
    -> Maybe [TriggerConfig] -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe [TriggerConfig])
     (Maybe [TriggerConfig])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe [TriggerConfig]
triggerConfigurations :: Maybe [TriggerConfig]
$sel:triggerConfigurations:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [TriggerConfig]
triggerConfigurations} -> Maybe [TriggerConfig]
triggerConfigurations) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe [TriggerConfig]
a -> UpdateDeploymentGroup
s {$sel:triggerConfigurations:UpdateDeploymentGroup' :: Maybe [TriggerConfig]
triggerConfigurations = Maybe [TriggerConfig]
a} :: UpdateDeploymentGroup) ((Maybe [TriggerConfig] -> f (Maybe [TriggerConfig]))
 -> UpdateDeploymentGroup -> f UpdateDeploymentGroup)
-> ((Maybe [TriggerConfig] -> f (Maybe [TriggerConfig]))
    -> Maybe [TriggerConfig] -> f (Maybe [TriggerConfig]))
-> (Maybe [TriggerConfig] -> f (Maybe [TriggerConfig]))
-> UpdateDeploymentGroup
-> f UpdateDeploymentGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [TriggerConfig] [TriggerConfig] [TriggerConfig] [TriggerConfig]
-> Iso
     (Maybe [TriggerConfig])
     (Maybe [TriggerConfig])
     (Maybe [TriggerConfig])
     (Maybe [TriggerConfig])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [TriggerConfig] [TriggerConfig] [TriggerConfig] [TriggerConfig]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The replacement list of Auto Scaling groups to be included in the
-- deployment group, if you want to change them. To keep the Auto Scaling
-- groups, enter their names. To remove Auto Scaling groups, do not enter
-- any Auto Scaling group names.
updateDeploymentGroup_autoScalingGroups :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe [Prelude.Text])
updateDeploymentGroup_autoScalingGroups :: (Maybe [Text] -> f (Maybe [Text]))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_autoScalingGroups = (UpdateDeploymentGroup -> Maybe [Text])
-> (UpdateDeploymentGroup -> Maybe [Text] -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe [Text])
     (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe [Text]
autoScalingGroups :: Maybe [Text]
$sel:autoScalingGroups:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [Text]
autoScalingGroups} -> Maybe [Text]
autoScalingGroups) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe [Text]
a -> UpdateDeploymentGroup
s {$sel:autoScalingGroups:UpdateDeploymentGroup' :: Maybe [Text]
autoScalingGroups = Maybe [Text]
a} :: UpdateDeploymentGroup) ((Maybe [Text] -> f (Maybe [Text]))
 -> UpdateDeploymentGroup -> f UpdateDeploymentGroup)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> UpdateDeploymentGroup
-> f UpdateDeploymentGroup
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Text] [Text] [Text] [Text]
-> Iso (Maybe [Text]) (Maybe [Text]) (Maybe [Text]) (Maybe [Text])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Text] [Text] [Text] [Text]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Information about the type of deployment, either in-place or
-- blue\/green, you want to run and whether to route deployment traffic
-- behind a load balancer.
updateDeploymentGroup_deploymentStyle :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe DeploymentStyle)
updateDeploymentGroup_deploymentStyle :: (Maybe DeploymentStyle -> f (Maybe DeploymentStyle))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_deploymentStyle = (UpdateDeploymentGroup -> Maybe DeploymentStyle)
-> (UpdateDeploymentGroup
    -> Maybe DeploymentStyle -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe DeploymentStyle)
     (Maybe DeploymentStyle)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe DeploymentStyle
deploymentStyle :: Maybe DeploymentStyle
$sel:deploymentStyle:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe DeploymentStyle
deploymentStyle} -> Maybe DeploymentStyle
deploymentStyle) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe DeploymentStyle
a -> UpdateDeploymentGroup
s {$sel:deploymentStyle:UpdateDeploymentGroup' :: Maybe DeploymentStyle
deploymentStyle = Maybe DeploymentStyle
a} :: UpdateDeploymentGroup)

-- | Information for an automatic rollback configuration that is added or
-- changed when a deployment group is updated.
updateDeploymentGroup_autoRollbackConfiguration :: Lens.Lens' UpdateDeploymentGroup (Prelude.Maybe AutoRollbackConfiguration)
updateDeploymentGroup_autoRollbackConfiguration :: (Maybe AutoRollbackConfiguration
 -> f (Maybe AutoRollbackConfiguration))
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_autoRollbackConfiguration = (UpdateDeploymentGroup -> Maybe AutoRollbackConfiguration)
-> (UpdateDeploymentGroup
    -> Maybe AutoRollbackConfiguration -> UpdateDeploymentGroup)
-> Lens
     UpdateDeploymentGroup
     UpdateDeploymentGroup
     (Maybe AutoRollbackConfiguration)
     (Maybe AutoRollbackConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Maybe AutoRollbackConfiguration
autoRollbackConfiguration :: Maybe AutoRollbackConfiguration
$sel:autoRollbackConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration} -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Maybe AutoRollbackConfiguration
a -> UpdateDeploymentGroup
s {$sel:autoRollbackConfiguration:UpdateDeploymentGroup' :: Maybe AutoRollbackConfiguration
autoRollbackConfiguration = Maybe AutoRollbackConfiguration
a} :: UpdateDeploymentGroup)

-- | The application name that corresponds to the deployment group to update.
updateDeploymentGroup_applicationName :: Lens.Lens' UpdateDeploymentGroup Prelude.Text
updateDeploymentGroup_applicationName :: (Text -> f Text)
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_applicationName = (UpdateDeploymentGroup -> Text)
-> (UpdateDeploymentGroup -> Text -> UpdateDeploymentGroup)
-> Lens UpdateDeploymentGroup UpdateDeploymentGroup Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Text
applicationName :: Text
$sel:applicationName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Text
applicationName} -> Text
applicationName) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Text
a -> UpdateDeploymentGroup
s {$sel:applicationName:UpdateDeploymentGroup' :: Text
applicationName = Text
a} :: UpdateDeploymentGroup)

-- | The current name of the deployment group.
updateDeploymentGroup_currentDeploymentGroupName :: Lens.Lens' UpdateDeploymentGroup Prelude.Text
updateDeploymentGroup_currentDeploymentGroupName :: (Text -> f Text)
-> UpdateDeploymentGroup -> f UpdateDeploymentGroup
updateDeploymentGroup_currentDeploymentGroupName = (UpdateDeploymentGroup -> Text)
-> (UpdateDeploymentGroup -> Text -> UpdateDeploymentGroup)
-> Lens UpdateDeploymentGroup UpdateDeploymentGroup Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroup' {Text
currentDeploymentGroupName :: Text
$sel:currentDeploymentGroupName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Text
currentDeploymentGroupName} -> Text
currentDeploymentGroupName) (\s :: UpdateDeploymentGroup
s@UpdateDeploymentGroup' {} Text
a -> UpdateDeploymentGroup
s {$sel:currentDeploymentGroupName:UpdateDeploymentGroup' :: Text
currentDeploymentGroupName = Text
a} :: UpdateDeploymentGroup)

instance Core.AWSRequest UpdateDeploymentGroup where
  type
    AWSResponse UpdateDeploymentGroup =
      UpdateDeploymentGroupResponse
  request :: UpdateDeploymentGroup -> Request UpdateDeploymentGroup
request = Service -> UpdateDeploymentGroup -> Request UpdateDeploymentGroup
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy UpdateDeploymentGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateDeploymentGroup)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse UpdateDeploymentGroup))
-> Logger
-> Service
-> Proxy UpdateDeploymentGroup
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse UpdateDeploymentGroup)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe [AutoScalingGroup] -> Int -> UpdateDeploymentGroupResponse
UpdateDeploymentGroupResponse'
            (Maybe [AutoScalingGroup] -> Int -> UpdateDeploymentGroupResponse)
-> Either String (Maybe [AutoScalingGroup])
-> Either String (Int -> UpdateDeploymentGroupResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x Object -> Text -> Either String (Maybe (Maybe [AutoScalingGroup]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"hooksNotCleanedUp"
                            Either String (Maybe (Maybe [AutoScalingGroup]))
-> Maybe [AutoScalingGroup]
-> Either String (Maybe [AutoScalingGroup])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [AutoScalingGroup]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either String (Int -> UpdateDeploymentGroupResponse)
-> Either String Int -> Either String UpdateDeploymentGroupResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
      )

instance Prelude.Hashable UpdateDeploymentGroup

instance Prelude.NFData UpdateDeploymentGroup

instance Core.ToHeaders UpdateDeploymentGroup where
  toHeaders :: UpdateDeploymentGroup -> ResponseHeaders
toHeaders =
    ResponseHeaders -> UpdateDeploymentGroup -> ResponseHeaders
forall a b. a -> b -> a
Prelude.const
      ( [ResponseHeaders] -> ResponseHeaders
forall a. Monoid a => [a] -> a
Prelude.mconcat
          [ HeaderName
"X-Amz-Target"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"CodeDeploy_20141006.UpdateDeploymentGroup" ::
                          Prelude.ByteString
                      ),
            HeaderName
"Content-Type"
              HeaderName -> ByteString -> ResponseHeaders
forall a. ToHeader a => HeaderName -> a -> ResponseHeaders
Core.=# ( ByteString
"application/x-amz-json-1.1" ::
                          Prelude.ByteString
                      )
          ]
      )

instance Core.ToJSON UpdateDeploymentGroup where
  toJSON :: UpdateDeploymentGroup -> Value
toJSON UpdateDeploymentGroup' {Maybe [Text]
Maybe [EC2TagFilter]
Maybe [ECSService]
Maybe [TagFilter]
Maybe [TriggerConfig]
Maybe Text
Maybe AlarmConfiguration
Maybe AutoRollbackConfiguration
Maybe DeploymentStyle
Maybe EC2TagSet
Maybe BlueGreenDeploymentConfiguration
Maybe OutdatedInstancesStrategy
Maybe OnPremisesTagSet
Maybe LoadBalancerInfo
Text
currentDeploymentGroupName :: Text
applicationName :: Text
autoRollbackConfiguration :: Maybe AutoRollbackConfiguration
deploymentStyle :: Maybe DeploymentStyle
autoScalingGroups :: Maybe [Text]
triggerConfigurations :: Maybe [TriggerConfig]
alarmConfiguration :: Maybe AlarmConfiguration
onPremisesInstanceTagFilters :: Maybe [TagFilter]
outdatedInstancesStrategy :: Maybe OutdatedInstancesStrategy
loadBalancerInfo :: Maybe LoadBalancerInfo
blueGreenDeploymentConfiguration :: Maybe BlueGreenDeploymentConfiguration
ecsServices :: Maybe [ECSService]
ec2TagFilters :: Maybe [EC2TagFilter]
newDeploymentGroupName' :: Maybe Text
onPremisesTagSet :: Maybe OnPremisesTagSet
deploymentConfigName :: Maybe Text
ec2TagSet :: Maybe EC2TagSet
serviceRoleArn :: Maybe Text
$sel:currentDeploymentGroupName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Text
$sel:applicationName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Text
$sel:autoRollbackConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe AutoRollbackConfiguration
$sel:deploymentStyle:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe DeploymentStyle
$sel:autoScalingGroups:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [Text]
$sel:triggerConfigurations:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [TriggerConfig]
$sel:alarmConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe AlarmConfiguration
$sel:onPremisesInstanceTagFilters:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [TagFilter]
$sel:outdatedInstancesStrategy:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe OutdatedInstancesStrategy
$sel:loadBalancerInfo:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe LoadBalancerInfo
$sel:blueGreenDeploymentConfiguration:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe BlueGreenDeploymentConfiguration
$sel:ecsServices:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [ECSService]
$sel:ec2TagFilters:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe [EC2TagFilter]
$sel:newDeploymentGroupName':UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
$sel:onPremisesTagSet:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe OnPremisesTagSet
$sel:deploymentConfigName:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
$sel:ec2TagSet:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe EC2TagSet
$sel:serviceRoleArn:UpdateDeploymentGroup' :: UpdateDeploymentGroup -> Maybe Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Text
"serviceRoleArn" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
serviceRoleArn,
            (Text
"ec2TagSet" Text -> EC2TagSet -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) (EC2TagSet -> Pair) -> Maybe EC2TagSet -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe EC2TagSet
ec2TagSet,
            (Text
"deploymentConfigName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
deploymentConfigName,
            (Text
"onPremisesTagSet" Text -> OnPremisesTagSet -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (OnPremisesTagSet -> Pair) -> Maybe OnPremisesTagSet -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OnPremisesTagSet
onPremisesTagSet,
            (Text
"newDeploymentGroupName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (Text -> Pair) -> Maybe Text -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
newDeploymentGroupName',
            (Text
"ec2TagFilters" Text -> [EC2TagFilter] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([EC2TagFilter] -> Pair) -> Maybe [EC2TagFilter] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [EC2TagFilter]
ec2TagFilters,
            (Text
"ecsServices" Text -> [ECSService] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=) ([ECSService] -> Pair) -> Maybe [ECSService] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [ECSService]
ecsServices,
            (Text
"blueGreenDeploymentConfiguration" Text -> BlueGreenDeploymentConfiguration -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (BlueGreenDeploymentConfiguration -> Pair)
-> Maybe BlueGreenDeploymentConfiguration -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration,
            (Text
"loadBalancerInfo" Text -> LoadBalancerInfo -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (LoadBalancerInfo -> Pair) -> Maybe LoadBalancerInfo -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe LoadBalancerInfo
loadBalancerInfo,
            (Text
"outdatedInstancesStrategy" Text -> OutdatedInstancesStrategy -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (OutdatedInstancesStrategy -> Pair)
-> Maybe OutdatedInstancesStrategy -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe OutdatedInstancesStrategy
outdatedInstancesStrategy,
            (Text
"onPremisesInstanceTagFilters" Text -> [TagFilter] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([TagFilter] -> Pair) -> Maybe [TagFilter] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [TagFilter]
onPremisesInstanceTagFilters,
            (Text
"alarmConfiguration" Text -> AlarmConfiguration -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AlarmConfiguration -> Pair)
-> Maybe AlarmConfiguration -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AlarmConfiguration
alarmConfiguration,
            (Text
"triggerConfigurations" Text -> [TriggerConfig] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([TriggerConfig] -> Pair) -> Maybe [TriggerConfig] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [TriggerConfig]
triggerConfigurations,
            (Text
"autoScalingGroups" Text -> [Text] -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              ([Text] -> Pair) -> Maybe [Text] -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe [Text]
autoScalingGroups,
            (Text
"deploymentStyle" Text -> DeploymentStyle -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (DeploymentStyle -> Pair) -> Maybe DeploymentStyle -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe DeploymentStyle
deploymentStyle,
            (Text
"autoRollbackConfiguration" Text -> AutoRollbackConfiguration -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..=)
              (AutoRollbackConfiguration -> Pair)
-> Maybe AutoRollbackConfiguration -> Maybe Pair
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe AutoRollbackConfiguration
autoRollbackConfiguration,
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"applicationName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
applicationName),
            Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              ( Text
"currentDeploymentGroupName"
                  Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
currentDeploymentGroupName
              )
          ]
      )

instance Core.ToPath UpdateDeploymentGroup where
  toPath :: UpdateDeploymentGroup -> ByteString
toPath = ByteString -> UpdateDeploymentGroup -> ByteString
forall a b. a -> b -> a
Prelude.const ByteString
"/"

instance Core.ToQuery UpdateDeploymentGroup where
  toQuery :: UpdateDeploymentGroup -> QueryString
toQuery = QueryString -> UpdateDeploymentGroup -> QueryString
forall a b. a -> b -> a
Prelude.const QueryString
forall a. Monoid a => a
Prelude.mempty

-- | Represents the output of an @UpdateDeploymentGroup@ operation.
--
-- /See:/ 'newUpdateDeploymentGroupResponse' smart constructor.
data UpdateDeploymentGroupResponse = UpdateDeploymentGroupResponse'
  { -- | 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 account. If the output contains data, AWS CodeDeploy could not
    -- remove some Auto Scaling lifecycle event hooks from the AWS account.
    UpdateDeploymentGroupResponse -> Maybe [AutoScalingGroup]
hooksNotCleanedUp :: Prelude.Maybe [AutoScalingGroup],
    -- | The response's http status code.
    UpdateDeploymentGroupResponse -> Int
httpStatus :: Prelude.Int
  }
  deriving (UpdateDeploymentGroupResponse
-> UpdateDeploymentGroupResponse -> Bool
(UpdateDeploymentGroupResponse
 -> UpdateDeploymentGroupResponse -> Bool)
-> (UpdateDeploymentGroupResponse
    -> UpdateDeploymentGroupResponse -> Bool)
-> Eq UpdateDeploymentGroupResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: UpdateDeploymentGroupResponse
-> UpdateDeploymentGroupResponse -> Bool
$c/= :: UpdateDeploymentGroupResponse
-> UpdateDeploymentGroupResponse -> Bool
== :: UpdateDeploymentGroupResponse
-> UpdateDeploymentGroupResponse -> Bool
$c== :: UpdateDeploymentGroupResponse
-> UpdateDeploymentGroupResponse -> Bool
Prelude.Eq, ReadPrec [UpdateDeploymentGroupResponse]
ReadPrec UpdateDeploymentGroupResponse
Int -> ReadS UpdateDeploymentGroupResponse
ReadS [UpdateDeploymentGroupResponse]
(Int -> ReadS UpdateDeploymentGroupResponse)
-> ReadS [UpdateDeploymentGroupResponse]
-> ReadPrec UpdateDeploymentGroupResponse
-> ReadPrec [UpdateDeploymentGroupResponse]
-> Read UpdateDeploymentGroupResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [UpdateDeploymentGroupResponse]
$creadListPrec :: ReadPrec [UpdateDeploymentGroupResponse]
readPrec :: ReadPrec UpdateDeploymentGroupResponse
$creadPrec :: ReadPrec UpdateDeploymentGroupResponse
readList :: ReadS [UpdateDeploymentGroupResponse]
$creadList :: ReadS [UpdateDeploymentGroupResponse]
readsPrec :: Int -> ReadS UpdateDeploymentGroupResponse
$creadsPrec :: Int -> ReadS UpdateDeploymentGroupResponse
Prelude.Read, Int -> UpdateDeploymentGroupResponse -> ShowS
[UpdateDeploymentGroupResponse] -> ShowS
UpdateDeploymentGroupResponse -> String
(Int -> UpdateDeploymentGroupResponse -> ShowS)
-> (UpdateDeploymentGroupResponse -> String)
-> ([UpdateDeploymentGroupResponse] -> ShowS)
-> Show UpdateDeploymentGroupResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [UpdateDeploymentGroupResponse] -> ShowS
$cshowList :: [UpdateDeploymentGroupResponse] -> ShowS
show :: UpdateDeploymentGroupResponse -> String
$cshow :: UpdateDeploymentGroupResponse -> String
showsPrec :: Int -> UpdateDeploymentGroupResponse -> ShowS
$cshowsPrec :: Int -> UpdateDeploymentGroupResponse -> ShowS
Prelude.Show, (forall x.
 UpdateDeploymentGroupResponse
 -> Rep UpdateDeploymentGroupResponse x)
-> (forall x.
    Rep UpdateDeploymentGroupResponse x
    -> UpdateDeploymentGroupResponse)
-> Generic UpdateDeploymentGroupResponse
forall x.
Rep UpdateDeploymentGroupResponse x
-> UpdateDeploymentGroupResponse
forall x.
UpdateDeploymentGroupResponse
-> Rep UpdateDeploymentGroupResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep UpdateDeploymentGroupResponse x
-> UpdateDeploymentGroupResponse
$cfrom :: forall x.
UpdateDeploymentGroupResponse
-> Rep UpdateDeploymentGroupResponse x
Prelude.Generic)

-- |
-- Create a value of 'UpdateDeploymentGroupResponse' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'hooksNotCleanedUp', 'updateDeploymentGroupResponse_hooksNotCleanedUp' - 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 account. If the output contains data, AWS CodeDeploy could not
-- remove some Auto Scaling lifecycle event hooks from the AWS account.
--
-- 'httpStatus', 'updateDeploymentGroupResponse_httpStatus' - The response's http status code.
newUpdateDeploymentGroupResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  UpdateDeploymentGroupResponse
newUpdateDeploymentGroupResponse :: Int -> UpdateDeploymentGroupResponse
newUpdateDeploymentGroupResponse Int
pHttpStatus_ =
  UpdateDeploymentGroupResponse' :: Maybe [AutoScalingGroup] -> Int -> UpdateDeploymentGroupResponse
UpdateDeploymentGroupResponse'
    { $sel:hooksNotCleanedUp:UpdateDeploymentGroupResponse' :: Maybe [AutoScalingGroup]
hooksNotCleanedUp =
        Maybe [AutoScalingGroup]
forall a. Maybe a
Prelude.Nothing,
      $sel:httpStatus:UpdateDeploymentGroupResponse' :: Int
httpStatus = Int
pHttpStatus_
    }

-- | 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 account. If the output contains data, AWS CodeDeploy could not
-- remove some Auto Scaling lifecycle event hooks from the AWS account.
updateDeploymentGroupResponse_hooksNotCleanedUp :: Lens.Lens' UpdateDeploymentGroupResponse (Prelude.Maybe [AutoScalingGroup])
updateDeploymentGroupResponse_hooksNotCleanedUp :: (Maybe [AutoScalingGroup] -> f (Maybe [AutoScalingGroup]))
-> UpdateDeploymentGroupResponse -> f UpdateDeploymentGroupResponse
updateDeploymentGroupResponse_hooksNotCleanedUp = (UpdateDeploymentGroupResponse -> Maybe [AutoScalingGroup])
-> (UpdateDeploymentGroupResponse
    -> Maybe [AutoScalingGroup] -> UpdateDeploymentGroupResponse)
-> Lens
     UpdateDeploymentGroupResponse
     UpdateDeploymentGroupResponse
     (Maybe [AutoScalingGroup])
     (Maybe [AutoScalingGroup])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroupResponse' {Maybe [AutoScalingGroup]
hooksNotCleanedUp :: Maybe [AutoScalingGroup]
$sel:hooksNotCleanedUp:UpdateDeploymentGroupResponse' :: UpdateDeploymentGroupResponse -> Maybe [AutoScalingGroup]
hooksNotCleanedUp} -> Maybe [AutoScalingGroup]
hooksNotCleanedUp) (\s :: UpdateDeploymentGroupResponse
s@UpdateDeploymentGroupResponse' {} Maybe [AutoScalingGroup]
a -> UpdateDeploymentGroupResponse
s {$sel:hooksNotCleanedUp:UpdateDeploymentGroupResponse' :: Maybe [AutoScalingGroup]
hooksNotCleanedUp = Maybe [AutoScalingGroup]
a} :: UpdateDeploymentGroupResponse) ((Maybe [AutoScalingGroup] -> f (Maybe [AutoScalingGroup]))
 -> UpdateDeploymentGroupResponse
 -> f UpdateDeploymentGroupResponse)
-> ((Maybe [AutoScalingGroup] -> f (Maybe [AutoScalingGroup]))
    -> Maybe [AutoScalingGroup] -> f (Maybe [AutoScalingGroup]))
-> (Maybe [AutoScalingGroup] -> f (Maybe [AutoScalingGroup]))
-> UpdateDeploymentGroupResponse
-> f UpdateDeploymentGroupResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [AutoScalingGroup]
  [AutoScalingGroup]
  [AutoScalingGroup]
  [AutoScalingGroup]
-> Iso
     (Maybe [AutoScalingGroup])
     (Maybe [AutoScalingGroup])
     (Maybe [AutoScalingGroup])
     (Maybe [AutoScalingGroup])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  [AutoScalingGroup]
  [AutoScalingGroup]
  [AutoScalingGroup]
  [AutoScalingGroup]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The response's http status code.
updateDeploymentGroupResponse_httpStatus :: Lens.Lens' UpdateDeploymentGroupResponse Prelude.Int
updateDeploymentGroupResponse_httpStatus :: (Int -> f Int)
-> UpdateDeploymentGroupResponse -> f UpdateDeploymentGroupResponse
updateDeploymentGroupResponse_httpStatus = (UpdateDeploymentGroupResponse -> Int)
-> (UpdateDeploymentGroupResponse
    -> Int -> UpdateDeploymentGroupResponse)
-> Lens
     UpdateDeploymentGroupResponse UpdateDeploymentGroupResponse Int Int
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\UpdateDeploymentGroupResponse' {Int
httpStatus :: Int
$sel:httpStatus:UpdateDeploymentGroupResponse' :: UpdateDeploymentGroupResponse -> Int
httpStatus} -> Int
httpStatus) (\s :: UpdateDeploymentGroupResponse
s@UpdateDeploymentGroupResponse' {} Int
a -> UpdateDeploymentGroupResponse
s {$sel:httpStatus:UpdateDeploymentGroupResponse' :: Int
httpStatus = Int
a} :: UpdateDeploymentGroupResponse)

instance Prelude.NFData UpdateDeploymentGroupResponse