{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# 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.Types.DeploymentInfo
-- 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)
module Amazonka.CodeDeploy.Types.DeploymentInfo where

import Amazonka.CodeDeploy.Types.AutoRollbackConfiguration
import Amazonka.CodeDeploy.Types.BlueGreenDeploymentConfiguration
import Amazonka.CodeDeploy.Types.ComputePlatform
import Amazonka.CodeDeploy.Types.DeploymentCreator
import Amazonka.CodeDeploy.Types.DeploymentOverview
import Amazonka.CodeDeploy.Types.DeploymentStatus
import Amazonka.CodeDeploy.Types.DeploymentStyle
import Amazonka.CodeDeploy.Types.ErrorInformation
import Amazonka.CodeDeploy.Types.FileExistsBehavior
import Amazonka.CodeDeploy.Types.LoadBalancerInfo
import Amazonka.CodeDeploy.Types.RelatedDeployments
import Amazonka.CodeDeploy.Types.RevisionLocation
import Amazonka.CodeDeploy.Types.RollbackInfo
import Amazonka.CodeDeploy.Types.TargetInstances
import qualified Amazonka.Core as Core
import qualified Amazonka.Lens as Lens
import qualified Amazonka.Prelude as Prelude

-- | Information about a deployment.
--
-- /See:/ 'newDeploymentInfo' smart constructor.
data DeploymentInfo = DeploymentInfo'
  { -- | The means by which the deployment was created:
    --
    -- -   @user@: A user created the deployment.
    --
    -- -   @autoscaling@: Amazon EC2 Auto Scaling created the deployment.
    --
    -- -   @codeDeployRollback@: A rollback process created the deployment.
    --
    -- -   @CodeDeployAutoUpdate@: An auto-update process created the
    --     deployment when it detected outdated EC2 instances.
    DeploymentInfo -> Maybe DeploymentCreator
creator :: Prelude.Maybe DeploymentCreator,
    -- | The current state of the deployment as a whole.
    DeploymentInfo -> Maybe DeploymentStatus
status :: Prelude.Maybe DeploymentStatus,
    -- | The unique ID of a deployment.
    DeploymentInfo -> Maybe Text
deploymentId :: Prelude.Maybe Prelude.Text,
    -- | The deployment configuration name.
    DeploymentInfo -> Maybe Text
deploymentConfigName :: Prelude.Maybe Prelude.Text,
    -- | The destination platform type for the deployment (@Lambda@, @Server@, or
    -- @ECS@).
    DeploymentInfo -> Maybe ComputePlatform
computePlatform :: Prelude.Maybe ComputePlatform,
    -- | Information about the application revision that was deployed to the
    -- deployment group before the most recent successful deployment.
    DeploymentInfo -> Maybe RevisionLocation
previousRevision :: Prelude.Maybe RevisionLocation,
    -- | Indicates whether the wait period set for the termination of instances
    -- in the original environment has started. Status is \'false\' if the
    -- KEEP_ALIVE option is specified. Otherwise, \'true\' as soon as the
    -- termination wait period starts.
    DeploymentInfo -> Maybe Bool
instanceTerminationWaitTimeStarted :: Prelude.Maybe Prelude.Bool,
    -- | Messages that contain information about the status of a deployment.
    DeploymentInfo -> Maybe [Text]
deploymentStatusMessages :: Prelude.Maybe [Prelude.Text],
    DeploymentInfo -> Maybe RelatedDeployments
relatedDeployments :: Prelude.Maybe RelatedDeployments,
    -- | A timestamp that indicates when the deployment was deployed to the
    -- deployment group.
    --
    -- In some cases, the reported value of the start time might be later than
    -- the complete time. This is due to differences in the clock settings of
    -- backend servers that participate in the deployment process.
    DeploymentInfo -> Maybe POSIX
startTime :: Prelude.Maybe Core.POSIX,
    -- | A timestamp that indicates when the deployment was complete.
    DeploymentInfo -> Maybe POSIX
completeTime :: Prelude.Maybe Core.POSIX,
    -- | Information about blue\/green deployment options for this deployment.
    DeploymentInfo -> Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration :: Prelude.Maybe BlueGreenDeploymentConfiguration,
    -- | Information about any error associated with this deployment.
    DeploymentInfo -> Maybe ErrorInformation
errorInformation :: Prelude.Maybe ErrorInformation,
    -- | Information about the load balancer used in the deployment.
    DeploymentInfo -> Maybe LoadBalancerInfo
loadBalancerInfo :: Prelude.Maybe LoadBalancerInfo,
    -- | Provides information about the results of a deployment, such as whether
    -- instances in the original environment in a blue\/green deployment were
    -- not terminated.
    DeploymentInfo -> Maybe Text
additionalDeploymentStatusInfo :: Prelude.Maybe Prelude.Text,
    -- | A summary of the deployment status of the instances in the deployment.
    DeploymentInfo -> Maybe DeploymentOverview
deploymentOverview :: Prelude.Maybe DeploymentOverview,
    -- | Information about how AWS CodeDeploy handles files that already exist in
    -- a deployment target location but weren\'t part of the previous
    -- successful deployment.
    --
    -- -   @DISALLOW@: The deployment fails. This is also the default behavior
    --     if no option is specified.
    --
    -- -   @OVERWRITE@: The version of the file from the application revision
    --     currently being deployed replaces the version already on the
    --     instance.
    --
    -- -   @RETAIN@: The version of the file already on the instance is kept
    --     and used as part of the new deployment.
    DeploymentInfo -> Maybe FileExistsBehavior
fileExistsBehavior :: Prelude.Maybe FileExistsBehavior,
    -- | The application name.
    DeploymentInfo -> Maybe Text
applicationName :: Prelude.Maybe Prelude.Text,
    -- | Information about a deployment rollback.
    DeploymentInfo -> Maybe RollbackInfo
rollbackInfo :: Prelude.Maybe RollbackInfo,
    -- | The unique ID for an external resource (for example, a CloudFormation
    -- stack ID) that is linked to this deployment.
    DeploymentInfo -> Maybe Text
externalId :: Prelude.Maybe Prelude.Text,
    -- | Information about the instances that belong to the replacement
    -- environment in a blue\/green deployment.
    DeploymentInfo -> Maybe TargetInstances
targetInstances :: Prelude.Maybe TargetInstances,
    -- | Information about the location of stored application artifacts and the
    -- service from which to retrieve them.
    DeploymentInfo -> Maybe RevisionLocation
revision :: Prelude.Maybe RevisionLocation,
    -- | A comment about the deployment.
    DeploymentInfo -> Maybe Text
description :: 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.
    DeploymentInfo -> Maybe DeploymentStyle
deploymentStyle :: Prelude.Maybe DeploymentStyle,
    -- | A timestamp that indicates when the deployment was created.
    DeploymentInfo -> Maybe POSIX
createTime :: Prelude.Maybe Core.POSIX,
    -- | Information about the automatic rollback configuration associated with
    -- the deployment.
    DeploymentInfo -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration :: Prelude.Maybe AutoRollbackConfiguration,
    -- | Indicates whether only instances that are not running the latest
    -- application revision are to be deployed to.
    DeploymentInfo -> Maybe Bool
updateOutdatedInstancesOnly :: Prelude.Maybe Prelude.Bool,
    -- | The deployment group name.
    DeploymentInfo -> Maybe Text
deploymentGroupName :: Prelude.Maybe Prelude.Text,
    -- | If true, then if an @ApplicationStop@, @BeforeBlockTraffic@, or
    -- @AfterBlockTraffic@ deployment lifecycle event to an instance fails,
    -- then the deployment continues to the next deployment lifecycle event.
    -- For example, if @ApplicationStop@ fails, the deployment continues with
    -- DownloadBundle. If @BeforeBlockTraffic@ fails, the deployment continues
    -- with @BlockTraffic@. If @AfterBlockTraffic@ fails, the deployment
    -- continues with @ApplicationStop@.
    --
    -- If false or not specified, then if a lifecycle event fails during a
    -- deployment to an instance, that deployment fails. If deployment to that
    -- instance is part of an overall deployment and the number of healthy
    -- hosts is not less than the minimum number of healthy hosts, then a
    -- deployment to the next instance is attempted.
    --
    -- During a deployment, the AWS CodeDeploy agent runs the scripts specified
    -- for @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@ in
    -- the AppSpec file from the previous successful deployment. (All other
    -- scripts are run from the AppSpec file in the current deployment.) If one
    -- of these scripts contains an error and does not run successfully, the
    -- deployment can fail.
    --
    -- If the cause of the failure is a script from the last successful
    -- deployment that will never run successfully, create a new deployment and
    -- use @ignoreApplicationStopFailures@ to specify that the
    -- @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@
    -- failures should be ignored.
    DeploymentInfo -> Maybe Bool
ignoreApplicationStopFailures :: Prelude.Maybe Prelude.Bool
  }
  deriving (DeploymentInfo -> DeploymentInfo -> Bool
(DeploymentInfo -> DeploymentInfo -> Bool)
-> (DeploymentInfo -> DeploymentInfo -> Bool) -> Eq DeploymentInfo
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DeploymentInfo -> DeploymentInfo -> Bool
$c/= :: DeploymentInfo -> DeploymentInfo -> Bool
== :: DeploymentInfo -> DeploymentInfo -> Bool
$c== :: DeploymentInfo -> DeploymentInfo -> Bool
Prelude.Eq, ReadPrec [DeploymentInfo]
ReadPrec DeploymentInfo
Int -> ReadS DeploymentInfo
ReadS [DeploymentInfo]
(Int -> ReadS DeploymentInfo)
-> ReadS [DeploymentInfo]
-> ReadPrec DeploymentInfo
-> ReadPrec [DeploymentInfo]
-> Read DeploymentInfo
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DeploymentInfo]
$creadListPrec :: ReadPrec [DeploymentInfo]
readPrec :: ReadPrec DeploymentInfo
$creadPrec :: ReadPrec DeploymentInfo
readList :: ReadS [DeploymentInfo]
$creadList :: ReadS [DeploymentInfo]
readsPrec :: Int -> ReadS DeploymentInfo
$creadsPrec :: Int -> ReadS DeploymentInfo
Prelude.Read, Int -> DeploymentInfo -> ShowS
[DeploymentInfo] -> ShowS
DeploymentInfo -> String
(Int -> DeploymentInfo -> ShowS)
-> (DeploymentInfo -> String)
-> ([DeploymentInfo] -> ShowS)
-> Show DeploymentInfo
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DeploymentInfo] -> ShowS
$cshowList :: [DeploymentInfo] -> ShowS
show :: DeploymentInfo -> String
$cshow :: DeploymentInfo -> String
showsPrec :: Int -> DeploymentInfo -> ShowS
$cshowsPrec :: Int -> DeploymentInfo -> ShowS
Prelude.Show, (forall x. DeploymentInfo -> Rep DeploymentInfo x)
-> (forall x. Rep DeploymentInfo x -> DeploymentInfo)
-> Generic DeploymentInfo
forall x. Rep DeploymentInfo x -> DeploymentInfo
forall x. DeploymentInfo -> Rep DeploymentInfo x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DeploymentInfo x -> DeploymentInfo
$cfrom :: forall x. DeploymentInfo -> Rep DeploymentInfo x
Prelude.Generic)

-- |
-- Create a value of 'DeploymentInfo' 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:
--
-- 'creator', 'deploymentInfo_creator' - The means by which the deployment was created:
--
-- -   @user@: A user created the deployment.
--
-- -   @autoscaling@: Amazon EC2 Auto Scaling created the deployment.
--
-- -   @codeDeployRollback@: A rollback process created the deployment.
--
-- -   @CodeDeployAutoUpdate@: An auto-update process created the
--     deployment when it detected outdated EC2 instances.
--
-- 'status', 'deploymentInfo_status' - The current state of the deployment as a whole.
--
-- 'deploymentId', 'deploymentInfo_deploymentId' - The unique ID of a deployment.
--
-- 'deploymentConfigName', 'deploymentInfo_deploymentConfigName' - The deployment configuration name.
--
-- 'computePlatform', 'deploymentInfo_computePlatform' - The destination platform type for the deployment (@Lambda@, @Server@, or
-- @ECS@).
--
-- 'previousRevision', 'deploymentInfo_previousRevision' - Information about the application revision that was deployed to the
-- deployment group before the most recent successful deployment.
--
-- 'instanceTerminationWaitTimeStarted', 'deploymentInfo_instanceTerminationWaitTimeStarted' - Indicates whether the wait period set for the termination of instances
-- in the original environment has started. Status is \'false\' if the
-- KEEP_ALIVE option is specified. Otherwise, \'true\' as soon as the
-- termination wait period starts.
--
-- 'deploymentStatusMessages', 'deploymentInfo_deploymentStatusMessages' - Messages that contain information about the status of a deployment.
--
-- 'relatedDeployments', 'deploymentInfo_relatedDeployments' - Undocumented member.
--
-- 'startTime', 'deploymentInfo_startTime' - A timestamp that indicates when the deployment was deployed to the
-- deployment group.
--
-- In some cases, the reported value of the start time might be later than
-- the complete time. This is due to differences in the clock settings of
-- backend servers that participate in the deployment process.
--
-- 'completeTime', 'deploymentInfo_completeTime' - A timestamp that indicates when the deployment was complete.
--
-- 'blueGreenDeploymentConfiguration', 'deploymentInfo_blueGreenDeploymentConfiguration' - Information about blue\/green deployment options for this deployment.
--
-- 'errorInformation', 'deploymentInfo_errorInformation' - Information about any error associated with this deployment.
--
-- 'loadBalancerInfo', 'deploymentInfo_loadBalancerInfo' - Information about the load balancer used in the deployment.
--
-- 'additionalDeploymentStatusInfo', 'deploymentInfo_additionalDeploymentStatusInfo' - Provides information about the results of a deployment, such as whether
-- instances in the original environment in a blue\/green deployment were
-- not terminated.
--
-- 'deploymentOverview', 'deploymentInfo_deploymentOverview' - A summary of the deployment status of the instances in the deployment.
--
-- 'fileExistsBehavior', 'deploymentInfo_fileExistsBehavior' - Information about how AWS CodeDeploy handles files that already exist in
-- a deployment target location but weren\'t part of the previous
-- successful deployment.
--
-- -   @DISALLOW@: The deployment fails. This is also the default behavior
--     if no option is specified.
--
-- -   @OVERWRITE@: The version of the file from the application revision
--     currently being deployed replaces the version already on the
--     instance.
--
-- -   @RETAIN@: The version of the file already on the instance is kept
--     and used as part of the new deployment.
--
-- 'applicationName', 'deploymentInfo_applicationName' - The application name.
--
-- 'rollbackInfo', 'deploymentInfo_rollbackInfo' - Information about a deployment rollback.
--
-- 'externalId', 'deploymentInfo_externalId' - The unique ID for an external resource (for example, a CloudFormation
-- stack ID) that is linked to this deployment.
--
-- 'targetInstances', 'deploymentInfo_targetInstances' - Information about the instances that belong to the replacement
-- environment in a blue\/green deployment.
--
-- 'revision', 'deploymentInfo_revision' - Information about the location of stored application artifacts and the
-- service from which to retrieve them.
--
-- 'description', 'deploymentInfo_description' - A comment about the deployment.
--
-- 'deploymentStyle', 'deploymentInfo_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.
--
-- 'createTime', 'deploymentInfo_createTime' - A timestamp that indicates when the deployment was created.
--
-- 'autoRollbackConfiguration', 'deploymentInfo_autoRollbackConfiguration' - Information about the automatic rollback configuration associated with
-- the deployment.
--
-- 'updateOutdatedInstancesOnly', 'deploymentInfo_updateOutdatedInstancesOnly' - Indicates whether only instances that are not running the latest
-- application revision are to be deployed to.
--
-- 'deploymentGroupName', 'deploymentInfo_deploymentGroupName' - The deployment group name.
--
-- 'ignoreApplicationStopFailures', 'deploymentInfo_ignoreApplicationStopFailures' - If true, then if an @ApplicationStop@, @BeforeBlockTraffic@, or
-- @AfterBlockTraffic@ deployment lifecycle event to an instance fails,
-- then the deployment continues to the next deployment lifecycle event.
-- For example, if @ApplicationStop@ fails, the deployment continues with
-- DownloadBundle. If @BeforeBlockTraffic@ fails, the deployment continues
-- with @BlockTraffic@. If @AfterBlockTraffic@ fails, the deployment
-- continues with @ApplicationStop@.
--
-- If false or not specified, then if a lifecycle event fails during a
-- deployment to an instance, that deployment fails. If deployment to that
-- instance is part of an overall deployment and the number of healthy
-- hosts is not less than the minimum number of healthy hosts, then a
-- deployment to the next instance is attempted.
--
-- During a deployment, the AWS CodeDeploy agent runs the scripts specified
-- for @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@ in
-- the AppSpec file from the previous successful deployment. (All other
-- scripts are run from the AppSpec file in the current deployment.) If one
-- of these scripts contains an error and does not run successfully, the
-- deployment can fail.
--
-- If the cause of the failure is a script from the last successful
-- deployment that will never run successfully, create a new deployment and
-- use @ignoreApplicationStopFailures@ to specify that the
-- @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@
-- failures should be ignored.
newDeploymentInfo ::
  DeploymentInfo
newDeploymentInfo :: DeploymentInfo
newDeploymentInfo =
  DeploymentInfo' :: Maybe DeploymentCreator
-> Maybe DeploymentStatus
-> Maybe Text
-> Maybe Text
-> Maybe ComputePlatform
-> Maybe RevisionLocation
-> Maybe Bool
-> Maybe [Text]
-> Maybe RelatedDeployments
-> Maybe POSIX
-> Maybe POSIX
-> Maybe BlueGreenDeploymentConfiguration
-> Maybe ErrorInformation
-> Maybe LoadBalancerInfo
-> Maybe Text
-> Maybe DeploymentOverview
-> Maybe FileExistsBehavior
-> Maybe Text
-> Maybe RollbackInfo
-> Maybe Text
-> Maybe TargetInstances
-> Maybe RevisionLocation
-> Maybe Text
-> Maybe DeploymentStyle
-> Maybe POSIX
-> Maybe AutoRollbackConfiguration
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> DeploymentInfo
DeploymentInfo'
    { $sel:creator:DeploymentInfo' :: Maybe DeploymentCreator
creator = Maybe DeploymentCreator
forall a. Maybe a
Prelude.Nothing,
      $sel:status:DeploymentInfo' :: Maybe DeploymentStatus
status = Maybe DeploymentStatus
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentId:DeploymentInfo' :: Maybe Text
deploymentId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentConfigName:DeploymentInfo' :: Maybe Text
deploymentConfigName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:computePlatform:DeploymentInfo' :: Maybe ComputePlatform
computePlatform = Maybe ComputePlatform
forall a. Maybe a
Prelude.Nothing,
      $sel:previousRevision:DeploymentInfo' :: Maybe RevisionLocation
previousRevision = Maybe RevisionLocation
forall a. Maybe a
Prelude.Nothing,
      $sel:instanceTerminationWaitTimeStarted:DeploymentInfo' :: Maybe Bool
instanceTerminationWaitTimeStarted = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentStatusMessages:DeploymentInfo' :: Maybe [Text]
deploymentStatusMessages = Maybe [Text]
forall a. Maybe a
Prelude.Nothing,
      $sel:relatedDeployments:DeploymentInfo' :: Maybe RelatedDeployments
relatedDeployments = Maybe RelatedDeployments
forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:DeploymentInfo' :: Maybe POSIX
startTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:completeTime:DeploymentInfo' :: Maybe POSIX
completeTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:blueGreenDeploymentConfiguration:DeploymentInfo' :: Maybe BlueGreenDeploymentConfiguration
blueGreenDeploymentConfiguration = Maybe BlueGreenDeploymentConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:errorInformation:DeploymentInfo' :: Maybe ErrorInformation
errorInformation = Maybe ErrorInformation
forall a. Maybe a
Prelude.Nothing,
      $sel:loadBalancerInfo:DeploymentInfo' :: Maybe LoadBalancerInfo
loadBalancerInfo = Maybe LoadBalancerInfo
forall a. Maybe a
Prelude.Nothing,
      $sel:additionalDeploymentStatusInfo:DeploymentInfo' :: Maybe Text
additionalDeploymentStatusInfo = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentOverview:DeploymentInfo' :: Maybe DeploymentOverview
deploymentOverview = Maybe DeploymentOverview
forall a. Maybe a
Prelude.Nothing,
      $sel:fileExistsBehavior:DeploymentInfo' :: Maybe FileExistsBehavior
fileExistsBehavior = Maybe FileExistsBehavior
forall a. Maybe a
Prelude.Nothing,
      $sel:applicationName:DeploymentInfo' :: Maybe Text
applicationName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:rollbackInfo:DeploymentInfo' :: Maybe RollbackInfo
rollbackInfo = Maybe RollbackInfo
forall a. Maybe a
Prelude.Nothing,
      $sel:externalId:DeploymentInfo' :: Maybe Text
externalId = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:targetInstances:DeploymentInfo' :: Maybe TargetInstances
targetInstances = Maybe TargetInstances
forall a. Maybe a
Prelude.Nothing,
      $sel:revision:DeploymentInfo' :: Maybe RevisionLocation
revision = Maybe RevisionLocation
forall a. Maybe a
Prelude.Nothing,
      $sel:description:DeploymentInfo' :: Maybe Text
description = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentStyle:DeploymentInfo' :: Maybe DeploymentStyle
deploymentStyle = Maybe DeploymentStyle
forall a. Maybe a
Prelude.Nothing,
      $sel:createTime:DeploymentInfo' :: Maybe POSIX
createTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
      $sel:autoRollbackConfiguration:DeploymentInfo' :: Maybe AutoRollbackConfiguration
autoRollbackConfiguration = Maybe AutoRollbackConfiguration
forall a. Maybe a
Prelude.Nothing,
      $sel:updateOutdatedInstancesOnly:DeploymentInfo' :: Maybe Bool
updateOutdatedInstancesOnly = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
      $sel:deploymentGroupName:DeploymentInfo' :: Maybe Text
deploymentGroupName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
      $sel:ignoreApplicationStopFailures:DeploymentInfo' :: Maybe Bool
ignoreApplicationStopFailures = Maybe Bool
forall a. Maybe a
Prelude.Nothing
    }

-- | The means by which the deployment was created:
--
-- -   @user@: A user created the deployment.
--
-- -   @autoscaling@: Amazon EC2 Auto Scaling created the deployment.
--
-- -   @codeDeployRollback@: A rollback process created the deployment.
--
-- -   @CodeDeployAutoUpdate@: An auto-update process created the
--     deployment when it detected outdated EC2 instances.
deploymentInfo_creator :: Lens.Lens' DeploymentInfo (Prelude.Maybe DeploymentCreator)
deploymentInfo_creator :: (Maybe DeploymentCreator -> f (Maybe DeploymentCreator))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_creator = (DeploymentInfo -> Maybe DeploymentCreator)
-> (DeploymentInfo -> Maybe DeploymentCreator -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe DeploymentCreator)
     (Maybe DeploymentCreator)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe DeploymentCreator
creator :: Maybe DeploymentCreator
$sel:creator:DeploymentInfo' :: DeploymentInfo -> Maybe DeploymentCreator
creator} -> Maybe DeploymentCreator
creator) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe DeploymentCreator
a -> DeploymentInfo
s {$sel:creator:DeploymentInfo' :: Maybe DeploymentCreator
creator = Maybe DeploymentCreator
a} :: DeploymentInfo)

-- | The current state of the deployment as a whole.
deploymentInfo_status :: Lens.Lens' DeploymentInfo (Prelude.Maybe DeploymentStatus)
deploymentInfo_status :: (Maybe DeploymentStatus -> f (Maybe DeploymentStatus))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_status = (DeploymentInfo -> Maybe DeploymentStatus)
-> (DeploymentInfo -> Maybe DeploymentStatus -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe DeploymentStatus)
     (Maybe DeploymentStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe DeploymentStatus
status :: Maybe DeploymentStatus
$sel:status:DeploymentInfo' :: DeploymentInfo -> Maybe DeploymentStatus
status} -> Maybe DeploymentStatus
status) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe DeploymentStatus
a -> DeploymentInfo
s {$sel:status:DeploymentInfo' :: Maybe DeploymentStatus
status = Maybe DeploymentStatus
a} :: DeploymentInfo)

-- | The unique ID of a deployment.
deploymentInfo_deploymentId :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_deploymentId :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentId = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
deploymentId :: Maybe Text
$sel:deploymentId:DeploymentInfo' :: DeploymentInfo -> Maybe Text
deploymentId} -> Maybe Text
deploymentId) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:deploymentId:DeploymentInfo' :: Maybe Text
deploymentId = Maybe Text
a} :: DeploymentInfo)

-- | The deployment configuration name.
deploymentInfo_deploymentConfigName :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_deploymentConfigName :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentConfigName = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
deploymentConfigName :: Maybe Text
$sel:deploymentConfigName:DeploymentInfo' :: DeploymentInfo -> Maybe Text
deploymentConfigName} -> Maybe Text
deploymentConfigName) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:deploymentConfigName:DeploymentInfo' :: Maybe Text
deploymentConfigName = Maybe Text
a} :: DeploymentInfo)

-- | The destination platform type for the deployment (@Lambda@, @Server@, or
-- @ECS@).
deploymentInfo_computePlatform :: Lens.Lens' DeploymentInfo (Prelude.Maybe ComputePlatform)
deploymentInfo_computePlatform :: (Maybe ComputePlatform -> f (Maybe ComputePlatform))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_computePlatform = (DeploymentInfo -> Maybe ComputePlatform)
-> (DeploymentInfo -> Maybe ComputePlatform -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe ComputePlatform)
     (Maybe ComputePlatform)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe ComputePlatform
computePlatform :: Maybe ComputePlatform
$sel:computePlatform:DeploymentInfo' :: DeploymentInfo -> Maybe ComputePlatform
computePlatform} -> Maybe ComputePlatform
computePlatform) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe ComputePlatform
a -> DeploymentInfo
s {$sel:computePlatform:DeploymentInfo' :: Maybe ComputePlatform
computePlatform = Maybe ComputePlatform
a} :: DeploymentInfo)

-- | Information about the application revision that was deployed to the
-- deployment group before the most recent successful deployment.
deploymentInfo_previousRevision :: Lens.Lens' DeploymentInfo (Prelude.Maybe RevisionLocation)
deploymentInfo_previousRevision :: (Maybe RevisionLocation -> f (Maybe RevisionLocation))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_previousRevision = (DeploymentInfo -> Maybe RevisionLocation)
-> (DeploymentInfo -> Maybe RevisionLocation -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe RevisionLocation)
     (Maybe RevisionLocation)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe RevisionLocation
previousRevision :: Maybe RevisionLocation
$sel:previousRevision:DeploymentInfo' :: DeploymentInfo -> Maybe RevisionLocation
previousRevision} -> Maybe RevisionLocation
previousRevision) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe RevisionLocation
a -> DeploymentInfo
s {$sel:previousRevision:DeploymentInfo' :: Maybe RevisionLocation
previousRevision = Maybe RevisionLocation
a} :: DeploymentInfo)

-- | Indicates whether the wait period set for the termination of instances
-- in the original environment has started. Status is \'false\' if the
-- KEEP_ALIVE option is specified. Otherwise, \'true\' as soon as the
-- termination wait period starts.
deploymentInfo_instanceTerminationWaitTimeStarted :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Bool)
deploymentInfo_instanceTerminationWaitTimeStarted :: (Maybe Bool -> f (Maybe Bool))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_instanceTerminationWaitTimeStarted = (DeploymentInfo -> Maybe Bool)
-> (DeploymentInfo -> Maybe Bool -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Bool
instanceTerminationWaitTimeStarted :: Maybe Bool
$sel:instanceTerminationWaitTimeStarted:DeploymentInfo' :: DeploymentInfo -> Maybe Bool
instanceTerminationWaitTimeStarted} -> Maybe Bool
instanceTerminationWaitTimeStarted) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Bool
a -> DeploymentInfo
s {$sel:instanceTerminationWaitTimeStarted:DeploymentInfo' :: Maybe Bool
instanceTerminationWaitTimeStarted = Maybe Bool
a} :: DeploymentInfo)

-- | Messages that contain information about the status of a deployment.
deploymentInfo_deploymentStatusMessages :: Lens.Lens' DeploymentInfo (Prelude.Maybe [Prelude.Text])
deploymentInfo_deploymentStatusMessages :: (Maybe [Text] -> f (Maybe [Text]))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentStatusMessages = (DeploymentInfo -> Maybe [Text])
-> (DeploymentInfo -> Maybe [Text] -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe [Text]) (Maybe [Text])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe [Text]
deploymentStatusMessages :: Maybe [Text]
$sel:deploymentStatusMessages:DeploymentInfo' :: DeploymentInfo -> Maybe [Text]
deploymentStatusMessages} -> Maybe [Text]
deploymentStatusMessages) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe [Text]
a -> DeploymentInfo
s {$sel:deploymentStatusMessages:DeploymentInfo' :: Maybe [Text]
deploymentStatusMessages = Maybe [Text]
a} :: DeploymentInfo) ((Maybe [Text] -> f (Maybe [Text]))
 -> DeploymentInfo -> f DeploymentInfo)
-> ((Maybe [Text] -> f (Maybe [Text]))
    -> Maybe [Text] -> f (Maybe [Text]))
-> (Maybe [Text] -> f (Maybe [Text]))
-> DeploymentInfo
-> f DeploymentInfo
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

-- | Undocumented member.
deploymentInfo_relatedDeployments :: Lens.Lens' DeploymentInfo (Prelude.Maybe RelatedDeployments)
deploymentInfo_relatedDeployments :: (Maybe RelatedDeployments -> f (Maybe RelatedDeployments))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_relatedDeployments = (DeploymentInfo -> Maybe RelatedDeployments)
-> (DeploymentInfo -> Maybe RelatedDeployments -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe RelatedDeployments)
     (Maybe RelatedDeployments)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe RelatedDeployments
relatedDeployments :: Maybe RelatedDeployments
$sel:relatedDeployments:DeploymentInfo' :: DeploymentInfo -> Maybe RelatedDeployments
relatedDeployments} -> Maybe RelatedDeployments
relatedDeployments) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe RelatedDeployments
a -> DeploymentInfo
s {$sel:relatedDeployments:DeploymentInfo' :: Maybe RelatedDeployments
relatedDeployments = Maybe RelatedDeployments
a} :: DeploymentInfo)

-- | A timestamp that indicates when the deployment was deployed to the
-- deployment group.
--
-- In some cases, the reported value of the start time might be later than
-- the complete time. This is due to differences in the clock settings of
-- backend servers that participate in the deployment process.
deploymentInfo_startTime :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.UTCTime)
deploymentInfo_startTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_startTime = (DeploymentInfo -> Maybe POSIX)
-> (DeploymentInfo -> Maybe POSIX -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:DeploymentInfo' :: DeploymentInfo -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe POSIX
a -> DeploymentInfo
s {$sel:startTime:DeploymentInfo' :: Maybe POSIX
startTime = Maybe POSIX
a} :: DeploymentInfo) ((Maybe POSIX -> f (Maybe POSIX))
 -> DeploymentInfo -> f DeploymentInfo)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo
-> f DeploymentInfo
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A timestamp that indicates when the deployment was complete.
deploymentInfo_completeTime :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.UTCTime)
deploymentInfo_completeTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_completeTime = (DeploymentInfo -> Maybe POSIX)
-> (DeploymentInfo -> Maybe POSIX -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe POSIX
completeTime :: Maybe POSIX
$sel:completeTime:DeploymentInfo' :: DeploymentInfo -> Maybe POSIX
completeTime} -> Maybe POSIX
completeTime) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe POSIX
a -> DeploymentInfo
s {$sel:completeTime:DeploymentInfo' :: Maybe POSIX
completeTime = Maybe POSIX
a} :: DeploymentInfo) ((Maybe POSIX -> f (Maybe POSIX))
 -> DeploymentInfo -> f DeploymentInfo)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo
-> f DeploymentInfo
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

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

-- | Information about any error associated with this deployment.
deploymentInfo_errorInformation :: Lens.Lens' DeploymentInfo (Prelude.Maybe ErrorInformation)
deploymentInfo_errorInformation :: (Maybe ErrorInformation -> f (Maybe ErrorInformation))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_errorInformation = (DeploymentInfo -> Maybe ErrorInformation)
-> (DeploymentInfo -> Maybe ErrorInformation -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe ErrorInformation)
     (Maybe ErrorInformation)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe ErrorInformation
errorInformation :: Maybe ErrorInformation
$sel:errorInformation:DeploymentInfo' :: DeploymentInfo -> Maybe ErrorInformation
errorInformation} -> Maybe ErrorInformation
errorInformation) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe ErrorInformation
a -> DeploymentInfo
s {$sel:errorInformation:DeploymentInfo' :: Maybe ErrorInformation
errorInformation = Maybe ErrorInformation
a} :: DeploymentInfo)

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

-- | Provides information about the results of a deployment, such as whether
-- instances in the original environment in a blue\/green deployment were
-- not terminated.
deploymentInfo_additionalDeploymentStatusInfo :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_additionalDeploymentStatusInfo :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_additionalDeploymentStatusInfo = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
additionalDeploymentStatusInfo :: Maybe Text
$sel:additionalDeploymentStatusInfo:DeploymentInfo' :: DeploymentInfo -> Maybe Text
additionalDeploymentStatusInfo} -> Maybe Text
additionalDeploymentStatusInfo) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:additionalDeploymentStatusInfo:DeploymentInfo' :: Maybe Text
additionalDeploymentStatusInfo = Maybe Text
a} :: DeploymentInfo)

-- | A summary of the deployment status of the instances in the deployment.
deploymentInfo_deploymentOverview :: Lens.Lens' DeploymentInfo (Prelude.Maybe DeploymentOverview)
deploymentInfo_deploymentOverview :: (Maybe DeploymentOverview -> f (Maybe DeploymentOverview))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentOverview = (DeploymentInfo -> Maybe DeploymentOverview)
-> (DeploymentInfo -> Maybe DeploymentOverview -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe DeploymentOverview)
     (Maybe DeploymentOverview)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe DeploymentOverview
deploymentOverview :: Maybe DeploymentOverview
$sel:deploymentOverview:DeploymentInfo' :: DeploymentInfo -> Maybe DeploymentOverview
deploymentOverview} -> Maybe DeploymentOverview
deploymentOverview) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe DeploymentOverview
a -> DeploymentInfo
s {$sel:deploymentOverview:DeploymentInfo' :: Maybe DeploymentOverview
deploymentOverview = Maybe DeploymentOverview
a} :: DeploymentInfo)

-- | Information about how AWS CodeDeploy handles files that already exist in
-- a deployment target location but weren\'t part of the previous
-- successful deployment.
--
-- -   @DISALLOW@: The deployment fails. This is also the default behavior
--     if no option is specified.
--
-- -   @OVERWRITE@: The version of the file from the application revision
--     currently being deployed replaces the version already on the
--     instance.
--
-- -   @RETAIN@: The version of the file already on the instance is kept
--     and used as part of the new deployment.
deploymentInfo_fileExistsBehavior :: Lens.Lens' DeploymentInfo (Prelude.Maybe FileExistsBehavior)
deploymentInfo_fileExistsBehavior :: (Maybe FileExistsBehavior -> f (Maybe FileExistsBehavior))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_fileExistsBehavior = (DeploymentInfo -> Maybe FileExistsBehavior)
-> (DeploymentInfo -> Maybe FileExistsBehavior -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe FileExistsBehavior)
     (Maybe FileExistsBehavior)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe FileExistsBehavior
fileExistsBehavior :: Maybe FileExistsBehavior
$sel:fileExistsBehavior:DeploymentInfo' :: DeploymentInfo -> Maybe FileExistsBehavior
fileExistsBehavior} -> Maybe FileExistsBehavior
fileExistsBehavior) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe FileExistsBehavior
a -> DeploymentInfo
s {$sel:fileExistsBehavior:DeploymentInfo' :: Maybe FileExistsBehavior
fileExistsBehavior = Maybe FileExistsBehavior
a} :: DeploymentInfo)

-- | The application name.
deploymentInfo_applicationName :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_applicationName :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_applicationName = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
applicationName :: Maybe Text
$sel:applicationName:DeploymentInfo' :: DeploymentInfo -> Maybe Text
applicationName} -> Maybe Text
applicationName) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:applicationName:DeploymentInfo' :: Maybe Text
applicationName = Maybe Text
a} :: DeploymentInfo)

-- | Information about a deployment rollback.
deploymentInfo_rollbackInfo :: Lens.Lens' DeploymentInfo (Prelude.Maybe RollbackInfo)
deploymentInfo_rollbackInfo :: (Maybe RollbackInfo -> f (Maybe RollbackInfo))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_rollbackInfo = (DeploymentInfo -> Maybe RollbackInfo)
-> (DeploymentInfo -> Maybe RollbackInfo -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe RollbackInfo)
     (Maybe RollbackInfo)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe RollbackInfo
rollbackInfo :: Maybe RollbackInfo
$sel:rollbackInfo:DeploymentInfo' :: DeploymentInfo -> Maybe RollbackInfo
rollbackInfo} -> Maybe RollbackInfo
rollbackInfo) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe RollbackInfo
a -> DeploymentInfo
s {$sel:rollbackInfo:DeploymentInfo' :: Maybe RollbackInfo
rollbackInfo = Maybe RollbackInfo
a} :: DeploymentInfo)

-- | The unique ID for an external resource (for example, a CloudFormation
-- stack ID) that is linked to this deployment.
deploymentInfo_externalId :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_externalId :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_externalId = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
externalId :: Maybe Text
$sel:externalId:DeploymentInfo' :: DeploymentInfo -> Maybe Text
externalId} -> Maybe Text
externalId) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:externalId:DeploymentInfo' :: Maybe Text
externalId = Maybe Text
a} :: DeploymentInfo)

-- | Information about the instances that belong to the replacement
-- environment in a blue\/green deployment.
deploymentInfo_targetInstances :: Lens.Lens' DeploymentInfo (Prelude.Maybe TargetInstances)
deploymentInfo_targetInstances :: (Maybe TargetInstances -> f (Maybe TargetInstances))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_targetInstances = (DeploymentInfo -> Maybe TargetInstances)
-> (DeploymentInfo -> Maybe TargetInstances -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe TargetInstances)
     (Maybe TargetInstances)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe TargetInstances
targetInstances :: Maybe TargetInstances
$sel:targetInstances:DeploymentInfo' :: DeploymentInfo -> Maybe TargetInstances
targetInstances} -> Maybe TargetInstances
targetInstances) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe TargetInstances
a -> DeploymentInfo
s {$sel:targetInstances:DeploymentInfo' :: Maybe TargetInstances
targetInstances = Maybe TargetInstances
a} :: DeploymentInfo)

-- | Information about the location of stored application artifacts and the
-- service from which to retrieve them.
deploymentInfo_revision :: Lens.Lens' DeploymentInfo (Prelude.Maybe RevisionLocation)
deploymentInfo_revision :: (Maybe RevisionLocation -> f (Maybe RevisionLocation))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_revision = (DeploymentInfo -> Maybe RevisionLocation)
-> (DeploymentInfo -> Maybe RevisionLocation -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe RevisionLocation)
     (Maybe RevisionLocation)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe RevisionLocation
revision :: Maybe RevisionLocation
$sel:revision:DeploymentInfo' :: DeploymentInfo -> Maybe RevisionLocation
revision} -> Maybe RevisionLocation
revision) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe RevisionLocation
a -> DeploymentInfo
s {$sel:revision:DeploymentInfo' :: Maybe RevisionLocation
revision = Maybe RevisionLocation
a} :: DeploymentInfo)

-- | A comment about the deployment.
deploymentInfo_description :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_description :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_description = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
description :: Maybe Text
$sel:description:DeploymentInfo' :: DeploymentInfo -> Maybe Text
description} -> Maybe Text
description) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:description:DeploymentInfo' :: Maybe Text
description = Maybe Text
a} :: DeploymentInfo)

-- | 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.
deploymentInfo_deploymentStyle :: Lens.Lens' DeploymentInfo (Prelude.Maybe DeploymentStyle)
deploymentInfo_deploymentStyle :: (Maybe DeploymentStyle -> f (Maybe DeploymentStyle))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentStyle = (DeploymentInfo -> Maybe DeploymentStyle)
-> (DeploymentInfo -> Maybe DeploymentStyle -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe DeploymentStyle)
     (Maybe DeploymentStyle)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe DeploymentStyle
deploymentStyle :: Maybe DeploymentStyle
$sel:deploymentStyle:DeploymentInfo' :: DeploymentInfo -> Maybe DeploymentStyle
deploymentStyle} -> Maybe DeploymentStyle
deploymentStyle) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe DeploymentStyle
a -> DeploymentInfo
s {$sel:deploymentStyle:DeploymentInfo' :: Maybe DeploymentStyle
deploymentStyle = Maybe DeploymentStyle
a} :: DeploymentInfo)

-- | A timestamp that indicates when the deployment was created.
deploymentInfo_createTime :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.UTCTime)
deploymentInfo_createTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_createTime = (DeploymentInfo -> Maybe POSIX)
-> (DeploymentInfo -> Maybe POSIX -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe POSIX) (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe POSIX
createTime :: Maybe POSIX
$sel:createTime:DeploymentInfo' :: DeploymentInfo -> Maybe POSIX
createTime} -> Maybe POSIX
createTime) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe POSIX
a -> DeploymentInfo
s {$sel:createTime:DeploymentInfo' :: Maybe POSIX
createTime = Maybe POSIX
a} :: DeploymentInfo) ((Maybe POSIX -> f (Maybe POSIX))
 -> DeploymentInfo -> f DeploymentInfo)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DeploymentInfo
-> f DeploymentInfo
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
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 POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Information about the automatic rollback configuration associated with
-- the deployment.
deploymentInfo_autoRollbackConfiguration :: Lens.Lens' DeploymentInfo (Prelude.Maybe AutoRollbackConfiguration)
deploymentInfo_autoRollbackConfiguration :: (Maybe AutoRollbackConfiguration
 -> f (Maybe AutoRollbackConfiguration))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_autoRollbackConfiguration = (DeploymentInfo -> Maybe AutoRollbackConfiguration)
-> (DeploymentInfo
    -> Maybe AutoRollbackConfiguration -> DeploymentInfo)
-> Lens
     DeploymentInfo
     DeploymentInfo
     (Maybe AutoRollbackConfiguration)
     (Maybe AutoRollbackConfiguration)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe AutoRollbackConfiguration
autoRollbackConfiguration :: Maybe AutoRollbackConfiguration
$sel:autoRollbackConfiguration:DeploymentInfo' :: DeploymentInfo -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration} -> Maybe AutoRollbackConfiguration
autoRollbackConfiguration) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe AutoRollbackConfiguration
a -> DeploymentInfo
s {$sel:autoRollbackConfiguration:DeploymentInfo' :: Maybe AutoRollbackConfiguration
autoRollbackConfiguration = Maybe AutoRollbackConfiguration
a} :: DeploymentInfo)

-- | Indicates whether only instances that are not running the latest
-- application revision are to be deployed to.
deploymentInfo_updateOutdatedInstancesOnly :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Bool)
deploymentInfo_updateOutdatedInstancesOnly :: (Maybe Bool -> f (Maybe Bool))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_updateOutdatedInstancesOnly = (DeploymentInfo -> Maybe Bool)
-> (DeploymentInfo -> Maybe Bool -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Bool
updateOutdatedInstancesOnly :: Maybe Bool
$sel:updateOutdatedInstancesOnly:DeploymentInfo' :: DeploymentInfo -> Maybe Bool
updateOutdatedInstancesOnly} -> Maybe Bool
updateOutdatedInstancesOnly) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Bool
a -> DeploymentInfo
s {$sel:updateOutdatedInstancesOnly:DeploymentInfo' :: Maybe Bool
updateOutdatedInstancesOnly = Maybe Bool
a} :: DeploymentInfo)

-- | The deployment group name.
deploymentInfo_deploymentGroupName :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Text)
deploymentInfo_deploymentGroupName :: (Maybe Text -> f (Maybe Text))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_deploymentGroupName = (DeploymentInfo -> Maybe Text)
-> (DeploymentInfo -> Maybe Text -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Text) (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Text
deploymentGroupName :: Maybe Text
$sel:deploymentGroupName:DeploymentInfo' :: DeploymentInfo -> Maybe Text
deploymentGroupName} -> Maybe Text
deploymentGroupName) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Text
a -> DeploymentInfo
s {$sel:deploymentGroupName:DeploymentInfo' :: Maybe Text
deploymentGroupName = Maybe Text
a} :: DeploymentInfo)

-- | If true, then if an @ApplicationStop@, @BeforeBlockTraffic@, or
-- @AfterBlockTraffic@ deployment lifecycle event to an instance fails,
-- then the deployment continues to the next deployment lifecycle event.
-- For example, if @ApplicationStop@ fails, the deployment continues with
-- DownloadBundle. If @BeforeBlockTraffic@ fails, the deployment continues
-- with @BlockTraffic@. If @AfterBlockTraffic@ fails, the deployment
-- continues with @ApplicationStop@.
--
-- If false or not specified, then if a lifecycle event fails during a
-- deployment to an instance, that deployment fails. If deployment to that
-- instance is part of an overall deployment and the number of healthy
-- hosts is not less than the minimum number of healthy hosts, then a
-- deployment to the next instance is attempted.
--
-- During a deployment, the AWS CodeDeploy agent runs the scripts specified
-- for @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@ in
-- the AppSpec file from the previous successful deployment. (All other
-- scripts are run from the AppSpec file in the current deployment.) If one
-- of these scripts contains an error and does not run successfully, the
-- deployment can fail.
--
-- If the cause of the failure is a script from the last successful
-- deployment that will never run successfully, create a new deployment and
-- use @ignoreApplicationStopFailures@ to specify that the
-- @ApplicationStop@, @BeforeBlockTraffic@, and @AfterBlockTraffic@
-- failures should be ignored.
deploymentInfo_ignoreApplicationStopFailures :: Lens.Lens' DeploymentInfo (Prelude.Maybe Prelude.Bool)
deploymentInfo_ignoreApplicationStopFailures :: (Maybe Bool -> f (Maybe Bool))
-> DeploymentInfo -> f DeploymentInfo
deploymentInfo_ignoreApplicationStopFailures = (DeploymentInfo -> Maybe Bool)
-> (DeploymentInfo -> Maybe Bool -> DeploymentInfo)
-> Lens DeploymentInfo DeploymentInfo (Maybe Bool) (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DeploymentInfo' {Maybe Bool
ignoreApplicationStopFailures :: Maybe Bool
$sel:ignoreApplicationStopFailures:DeploymentInfo' :: DeploymentInfo -> Maybe Bool
ignoreApplicationStopFailures} -> Maybe Bool
ignoreApplicationStopFailures) (\s :: DeploymentInfo
s@DeploymentInfo' {} Maybe Bool
a -> DeploymentInfo
s {$sel:ignoreApplicationStopFailures:DeploymentInfo' :: Maybe Bool
ignoreApplicationStopFailures = Maybe Bool
a} :: DeploymentInfo)

instance Core.FromJSON DeploymentInfo where
  parseJSON :: Value -> Parser DeploymentInfo
parseJSON =
    String
-> (Object -> Parser DeploymentInfo)
-> Value
-> Parser DeploymentInfo
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Core.withObject
      String
"DeploymentInfo"
      ( \Object
x ->
          Maybe DeploymentCreator
-> Maybe DeploymentStatus
-> Maybe Text
-> Maybe Text
-> Maybe ComputePlatform
-> Maybe RevisionLocation
-> Maybe Bool
-> Maybe [Text]
-> Maybe RelatedDeployments
-> Maybe POSIX
-> Maybe POSIX
-> Maybe BlueGreenDeploymentConfiguration
-> Maybe ErrorInformation
-> Maybe LoadBalancerInfo
-> Maybe Text
-> Maybe DeploymentOverview
-> Maybe FileExistsBehavior
-> Maybe Text
-> Maybe RollbackInfo
-> Maybe Text
-> Maybe TargetInstances
-> Maybe RevisionLocation
-> Maybe Text
-> Maybe DeploymentStyle
-> Maybe POSIX
-> Maybe AutoRollbackConfiguration
-> Maybe Bool
-> Maybe Text
-> Maybe Bool
-> DeploymentInfo
DeploymentInfo'
            (Maybe DeploymentCreator
 -> Maybe DeploymentStatus
 -> Maybe Text
 -> Maybe Text
 -> Maybe ComputePlatform
 -> Maybe RevisionLocation
 -> Maybe Bool
 -> Maybe [Text]
 -> Maybe RelatedDeployments
 -> Maybe POSIX
 -> Maybe POSIX
 -> Maybe BlueGreenDeploymentConfiguration
 -> Maybe ErrorInformation
 -> Maybe LoadBalancerInfo
 -> Maybe Text
 -> Maybe DeploymentOverview
 -> Maybe FileExistsBehavior
 -> Maybe Text
 -> Maybe RollbackInfo
 -> Maybe Text
 -> Maybe TargetInstances
 -> Maybe RevisionLocation
 -> Maybe Text
 -> Maybe DeploymentStyle
 -> Maybe POSIX
 -> Maybe AutoRollbackConfiguration
 -> Maybe Bool
 -> Maybe Text
 -> Maybe Bool
 -> DeploymentInfo)
-> Parser (Maybe DeploymentCreator)
-> Parser
     (Maybe DeploymentStatus
      -> Maybe Text
      -> Maybe Text
      -> Maybe ComputePlatform
      -> Maybe RevisionLocation
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Parser (Maybe DeploymentCreator)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"creator")
            Parser
  (Maybe DeploymentStatus
   -> Maybe Text
   -> Maybe Text
   -> Maybe ComputePlatform
   -> Maybe RevisionLocation
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe DeploymentStatus)
-> Parser
     (Maybe Text
      -> Maybe Text
      -> Maybe ComputePlatform
      -> Maybe RevisionLocation
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DeploymentStatus)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"status")
            Parser
  (Maybe Text
   -> Maybe Text
   -> Maybe ComputePlatform
   -> Maybe RevisionLocation
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe Text
      -> Maybe ComputePlatform
      -> Maybe RevisionLocation
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentId")
            Parser
  (Maybe Text
   -> Maybe ComputePlatform
   -> Maybe RevisionLocation
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe ComputePlatform
      -> Maybe RevisionLocation
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentConfigName")
            Parser
  (Maybe ComputePlatform
   -> Maybe RevisionLocation
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe ComputePlatform)
-> Parser
     (Maybe RevisionLocation
      -> Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ComputePlatform)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"computePlatform")
            Parser
  (Maybe RevisionLocation
   -> Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe RevisionLocation)
-> Parser
     (Maybe Bool
      -> Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe RevisionLocation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"previousRevision")
            Parser
  (Maybe Bool
   -> Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Bool)
-> Parser
     (Maybe [Text]
      -> Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"instanceTerminationWaitTimeStarted")
            Parser
  (Maybe [Text]
   -> Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe [Text])
-> Parser
     (Maybe RelatedDeployments
      -> Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Parser (Maybe (Maybe [Text]))
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentStatusMessages"
                            Parser (Maybe (Maybe [Text]))
-> Maybe [Text] -> Parser (Maybe [Text])
forall a. Parser (Maybe a) -> a -> Parser a
Core..!= Maybe [Text]
forall a. Monoid a => a
Prelude.mempty
                        )
            Parser
  (Maybe RelatedDeployments
   -> Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe RelatedDeployments)
-> Parser
     (Maybe POSIX
      -> Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe RelatedDeployments)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"relatedDeployments")
            Parser
  (Maybe POSIX
   -> Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe POSIX
      -> Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"startTime")
            Parser
  (Maybe POSIX
   -> Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe BlueGreenDeploymentConfiguration
      -> Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"completeTime")
            Parser
  (Maybe BlueGreenDeploymentConfiguration
   -> Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe BlueGreenDeploymentConfiguration)
-> Parser
     (Maybe ErrorInformation
      -> Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe BlueGreenDeploymentConfiguration)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"blueGreenDeploymentConfiguration")
            Parser
  (Maybe ErrorInformation
   -> Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe ErrorInformation)
-> Parser
     (Maybe LoadBalancerInfo
      -> Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe ErrorInformation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"errorInformation")
            Parser
  (Maybe LoadBalancerInfo
   -> Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe LoadBalancerInfo)
-> Parser
     (Maybe Text
      -> Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe LoadBalancerInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"loadBalancerInfo")
            Parser
  (Maybe Text
   -> Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe DeploymentOverview
      -> Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"additionalDeploymentStatusInfo")
            Parser
  (Maybe DeploymentOverview
   -> Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe DeploymentOverview)
-> Parser
     (Maybe FileExistsBehavior
      -> Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DeploymentOverview)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentOverview")
            Parser
  (Maybe FileExistsBehavior
   -> Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe FileExistsBehavior)
-> Parser
     (Maybe Text
      -> Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe FileExistsBehavior)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"fileExistsBehavior")
            Parser
  (Maybe Text
   -> Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe RollbackInfo
      -> Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"applicationName")
            Parser
  (Maybe RollbackInfo
   -> Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe RollbackInfo)
-> Parser
     (Maybe Text
      -> Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe RollbackInfo)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"rollbackInfo")
            Parser
  (Maybe Text
   -> Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe TargetInstances
      -> Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"externalId")
            Parser
  (Maybe TargetInstances
   -> Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe TargetInstances)
-> Parser
     (Maybe RevisionLocation
      -> Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe TargetInstances)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"targetInstances")
            Parser
  (Maybe RevisionLocation
   -> Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe RevisionLocation)
-> Parser
     (Maybe Text
      -> Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe RevisionLocation)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"revision")
            Parser
  (Maybe Text
   -> Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe Text)
-> Parser
     (Maybe DeploymentStyle
      -> Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"description")
            Parser
  (Maybe DeploymentStyle
   -> Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe DeploymentStyle)
-> Parser
     (Maybe POSIX
      -> Maybe AutoRollbackConfiguration
      -> Maybe Bool
      -> Maybe Text
      -> Maybe Bool
      -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe DeploymentStyle)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentStyle")
            Parser
  (Maybe POSIX
   -> Maybe AutoRollbackConfiguration
   -> Maybe Bool
   -> Maybe Text
   -> Maybe Bool
   -> DeploymentInfo)
-> Parser (Maybe POSIX)
-> Parser
     (Maybe AutoRollbackConfiguration
      -> Maybe Bool -> Maybe Text -> Maybe Bool -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"createTime")
            Parser
  (Maybe AutoRollbackConfiguration
   -> Maybe Bool -> Maybe Text -> Maybe Bool -> DeploymentInfo)
-> Parser (Maybe AutoRollbackConfiguration)
-> Parser
     (Maybe Bool -> Maybe Text -> Maybe Bool -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe AutoRollbackConfiguration)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"autoRollbackConfiguration")
            Parser (Maybe Bool -> Maybe Text -> Maybe Bool -> DeploymentInfo)
-> Parser (Maybe Bool)
-> Parser (Maybe Text -> Maybe Bool -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"updateOutdatedInstancesOnly")
            Parser (Maybe Text -> Maybe Bool -> DeploymentInfo)
-> Parser (Maybe Text) -> Parser (Maybe Bool -> DeploymentInfo)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"deploymentGroupName")
            Parser (Maybe Bool -> DeploymentInfo)
-> Parser (Maybe Bool) -> Parser DeploymentInfo
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Parser (Maybe a)
Core..:? Text
"ignoreApplicationStopFailures")
      )

instance Prelude.Hashable DeploymentInfo

instance Prelude.NFData DeploymentInfo