{-# 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.ECS.Types.Deployment
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ECS.Types.Deployment where

import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import Amazonka.ECS.Types.CapacityProviderStrategyItem
import Amazonka.ECS.Types.DeploymentRolloutState
import Amazonka.ECS.Types.LaunchType
import Amazonka.ECS.Types.NetworkConfiguration
import Amazonka.ECS.Types.ServiceConnectConfiguration
import Amazonka.ECS.Types.ServiceConnectServiceResource
import qualified Amazonka.Prelude as Prelude

-- | The details of an Amazon ECS service deployment. This is used only when
-- a service uses the @ECS@ deployment controller type.
--
-- /See:/ 'newDeployment' smart constructor.
data Deployment = Deployment'
  { -- | The capacity provider strategy that the deployment is using.
    Deployment -> Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy :: Prelude.Maybe [CapacityProviderStrategyItem],
    -- | The Unix timestamp for the time when the service deployment was created.
    Deployment -> Maybe POSIX
createdAt :: Prelude.Maybe Data.POSIX,
    -- | The most recent desired count of tasks that was specified for the
    -- service to deploy or maintain.
    Deployment -> Maybe Int
desiredCount :: Prelude.Maybe Prelude.Int,
    -- | The number of consecutively failed tasks in the deployment. A task is
    -- considered a failure if the service scheduler can\'t launch the task,
    -- the task doesn\'t transition to a @RUNNING@ state, or if it fails any of
    -- its defined health checks and is stopped.
    --
    -- Once a service deployment has one or more successfully running tasks,
    -- the failed task count resets to zero and stops being evaluated.
    Deployment -> Maybe Int
failedTasks :: Prelude.Maybe Prelude.Int,
    -- | The ID of the deployment.
    Deployment -> Maybe Text
id :: Prelude.Maybe Prelude.Text,
    -- | The launch type the tasks in the service are using. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS Launch Types>
    -- in the /Amazon Elastic Container Service Developer Guide/.
    Deployment -> Maybe LaunchType
launchType :: Prelude.Maybe LaunchType,
    -- | The VPC subnet and security group configuration for tasks that receive
    -- their own elastic network interface by using the @awsvpc@ networking
    -- mode.
    Deployment -> Maybe NetworkConfiguration
networkConfiguration :: Prelude.Maybe NetworkConfiguration,
    -- | The number of tasks in the deployment that are in the @PENDING@ status.
    Deployment -> Maybe Int
pendingCount :: Prelude.Maybe Prelude.Int,
    -- | The operating system that your tasks in the service, or tasks are
    -- running on. A platform family is specified only for tasks using the
    -- Fargate launch type.
    --
    -- All tasks that run as part of this service must use the same
    -- @platformFamily@ value as the service, for example, @ LINUX.@.
    Deployment -> Maybe Text
platformFamily :: Prelude.Maybe Prelude.Text,
    -- | The platform version that your tasks in the service run on. A platform
    -- version is only specified for tasks using the Fargate launch type. If
    -- one isn\'t specified, the @LATEST@ platform version is used. For more
    -- information, see
    -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate Platform Versions>
    -- in the /Amazon Elastic Container Service Developer Guide/.
    Deployment -> Maybe Text
platformVersion :: Prelude.Maybe Prelude.Text,
    -- | The @rolloutState@ of a service is only returned for services that use
    -- the rolling update (@ECS@) deployment type that aren\'t behind a Classic
    -- Load Balancer.
    --
    -- The rollout state of the deployment. When a service deployment is
    -- started, it begins in an @IN_PROGRESS@ state. When the service reaches a
    -- steady state, the deployment transitions to a @COMPLETED@ state. If the
    -- service fails to reach a steady state and circuit breaker is enabled,
    -- the deployment transitions to a @FAILED@ state. A deployment in @FAILED@
    -- state doesn\'t launch any new tasks. For more information, see
    -- DeploymentCircuitBreaker.
    Deployment -> Maybe DeploymentRolloutState
rolloutState :: Prelude.Maybe DeploymentRolloutState,
    -- | A description of the rollout state of a deployment.
    Deployment -> Maybe Text
rolloutStateReason :: Prelude.Maybe Prelude.Text,
    -- | The number of tasks in the deployment that are in the @RUNNING@ status.
    Deployment -> Maybe Int
runningCount :: Prelude.Maybe Prelude.Int,
    -- | The details of the Service Connect configuration that\'s used by this
    -- deployment. Compare the configuration between multiple deployments when
    -- troubleshooting issues with new deployments.
    --
    -- The configuration for this service to discover and connect to services,
    -- and be discovered by, and connected from, other services within a
    -- namespace.
    --
    -- Tasks that run in a namespace can use short names to connect to services
    -- in the namespace. Tasks can connect to services across all of the
    -- clusters in the namespace. Tasks connect through a managed proxy
    -- container that collects logs and metrics for increased visibility. Only
    -- the tasks that Amazon ECS services create are supported with Service
    -- Connect. For more information, see
    -- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
    -- in the /Amazon Elastic Container Service Developer Guide/.
    Deployment -> Maybe ServiceConnectConfiguration
serviceConnectConfiguration :: Prelude.Maybe ServiceConnectConfiguration,
    -- | The list of Service Connect resources that are associated with this
    -- deployment. Each list entry maps a discovery name to a Cloud Map service
    -- name.
    Deployment -> Maybe [ServiceConnectServiceResource]
serviceConnectResources :: Prelude.Maybe [ServiceConnectServiceResource],
    -- | The status of the deployment. The following describes each state.
    --
    -- [PRIMARY]
    --     The most recent deployment of a service.
    --
    -- [ACTIVE]
    --     A service deployment that still has running tasks, but are in the
    --     process of being replaced with a new @PRIMARY@ deployment.
    --
    -- [INACTIVE]
    --     A deployment that has been completely replaced.
    Deployment -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The most recent task definition that was specified for the tasks in the
    -- service to use.
    Deployment -> Maybe Text
taskDefinition :: Prelude.Maybe Prelude.Text,
    -- | The Unix timestamp for the time when the service deployment was last
    -- updated.
    Deployment -> Maybe POSIX
updatedAt :: Prelude.Maybe Data.POSIX
  }
  deriving (Deployment -> Deployment -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Deployment -> Deployment -> Bool
$c/= :: Deployment -> Deployment -> Bool
== :: Deployment -> Deployment -> Bool
$c== :: Deployment -> Deployment -> Bool
Prelude.Eq, ReadPrec [Deployment]
ReadPrec Deployment
Int -> ReadS Deployment
ReadS [Deployment]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Deployment]
$creadListPrec :: ReadPrec [Deployment]
readPrec :: ReadPrec Deployment
$creadPrec :: ReadPrec Deployment
readList :: ReadS [Deployment]
$creadList :: ReadS [Deployment]
readsPrec :: Int -> ReadS Deployment
$creadsPrec :: Int -> ReadS Deployment
Prelude.Read, Int -> Deployment -> ShowS
[Deployment] -> ShowS
Deployment -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Deployment] -> ShowS
$cshowList :: [Deployment] -> ShowS
show :: Deployment -> String
$cshow :: Deployment -> String
showsPrec :: Int -> Deployment -> ShowS
$cshowsPrec :: Int -> Deployment -> ShowS
Prelude.Show, forall x. Rep Deployment x -> Deployment
forall x. Deployment -> Rep Deployment x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Deployment x -> Deployment
$cfrom :: forall x. Deployment -> Rep Deployment x
Prelude.Generic)

-- |
-- Create a value of 'Deployment' 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:
--
-- 'capacityProviderStrategy', 'deployment_capacityProviderStrategy' - The capacity provider strategy that the deployment is using.
--
-- 'createdAt', 'deployment_createdAt' - The Unix timestamp for the time when the service deployment was created.
--
-- 'desiredCount', 'deployment_desiredCount' - The most recent desired count of tasks that was specified for the
-- service to deploy or maintain.
--
-- 'failedTasks', 'deployment_failedTasks' - The number of consecutively failed tasks in the deployment. A task is
-- considered a failure if the service scheduler can\'t launch the task,
-- the task doesn\'t transition to a @RUNNING@ state, or if it fails any of
-- its defined health checks and is stopped.
--
-- Once a service deployment has one or more successfully running tasks,
-- the failed task count resets to zero and stops being evaluated.
--
-- 'id', 'deployment_id' - The ID of the deployment.
--
-- 'launchType', 'deployment_launchType' - The launch type the tasks in the service are using. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS Launch Types>
-- in the /Amazon Elastic Container Service Developer Guide/.
--
-- 'networkConfiguration', 'deployment_networkConfiguration' - The VPC subnet and security group configuration for tasks that receive
-- their own elastic network interface by using the @awsvpc@ networking
-- mode.
--
-- 'pendingCount', 'deployment_pendingCount' - The number of tasks in the deployment that are in the @PENDING@ status.
--
-- 'platformFamily', 'deployment_platformFamily' - The operating system that your tasks in the service, or tasks are
-- running on. A platform family is specified only for tasks using the
-- Fargate launch type.
--
-- All tasks that run as part of this service must use the same
-- @platformFamily@ value as the service, for example, @ LINUX.@.
--
-- 'platformVersion', 'deployment_platformVersion' - The platform version that your tasks in the service run on. A platform
-- version is only specified for tasks using the Fargate launch type. If
-- one isn\'t specified, the @LATEST@ platform version is used. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate Platform Versions>
-- in the /Amazon Elastic Container Service Developer Guide/.
--
-- 'rolloutState', 'deployment_rolloutState' - The @rolloutState@ of a service is only returned for services that use
-- the rolling update (@ECS@) deployment type that aren\'t behind a Classic
-- Load Balancer.
--
-- The rollout state of the deployment. When a service deployment is
-- started, it begins in an @IN_PROGRESS@ state. When the service reaches a
-- steady state, the deployment transitions to a @COMPLETED@ state. If the
-- service fails to reach a steady state and circuit breaker is enabled,
-- the deployment transitions to a @FAILED@ state. A deployment in @FAILED@
-- state doesn\'t launch any new tasks. For more information, see
-- DeploymentCircuitBreaker.
--
-- 'rolloutStateReason', 'deployment_rolloutStateReason' - A description of the rollout state of a deployment.
--
-- 'runningCount', 'deployment_runningCount' - The number of tasks in the deployment that are in the @RUNNING@ status.
--
-- 'serviceConnectConfiguration', 'deployment_serviceConnectConfiguration' - The details of the Service Connect configuration that\'s used by this
-- deployment. Compare the configuration between multiple deployments when
-- troubleshooting issues with new deployments.
--
-- The configuration for this service to discover and connect to services,
-- and be discovered by, and connected from, other services within a
-- namespace.
--
-- Tasks that run in a namespace can use short names to connect to services
-- in the namespace. Tasks can connect to services across all of the
-- clusters in the namespace. Tasks connect through a managed proxy
-- container that collects logs and metrics for increased visibility. Only
-- the tasks that Amazon ECS services create are supported with Service
-- Connect. For more information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
-- in the /Amazon Elastic Container Service Developer Guide/.
--
-- 'serviceConnectResources', 'deployment_serviceConnectResources' - The list of Service Connect resources that are associated with this
-- deployment. Each list entry maps a discovery name to a Cloud Map service
-- name.
--
-- 'status', 'deployment_status' - The status of the deployment. The following describes each state.
--
-- [PRIMARY]
--     The most recent deployment of a service.
--
-- [ACTIVE]
--     A service deployment that still has running tasks, but are in the
--     process of being replaced with a new @PRIMARY@ deployment.
--
-- [INACTIVE]
--     A deployment that has been completely replaced.
--
-- 'taskDefinition', 'deployment_taskDefinition' - The most recent task definition that was specified for the tasks in the
-- service to use.
--
-- 'updatedAt', 'deployment_updatedAt' - The Unix timestamp for the time when the service deployment was last
-- updated.
newDeployment ::
  Deployment
newDeployment :: Deployment
newDeployment =
  Deployment'
    { $sel:capacityProviderStrategy:Deployment' :: Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy =
        forall a. Maybe a
Prelude.Nothing,
      $sel:createdAt:Deployment' :: Maybe POSIX
createdAt = forall a. Maybe a
Prelude.Nothing,
      $sel:desiredCount:Deployment' :: Maybe Int
desiredCount = forall a. Maybe a
Prelude.Nothing,
      $sel:failedTasks:Deployment' :: Maybe Int
failedTasks = forall a. Maybe a
Prelude.Nothing,
      $sel:id:Deployment' :: Maybe Text
id = forall a. Maybe a
Prelude.Nothing,
      $sel:launchType:Deployment' :: Maybe LaunchType
launchType = forall a. Maybe a
Prelude.Nothing,
      $sel:networkConfiguration:Deployment' :: Maybe NetworkConfiguration
networkConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:pendingCount:Deployment' :: Maybe Int
pendingCount = forall a. Maybe a
Prelude.Nothing,
      $sel:platformFamily:Deployment' :: Maybe Text
platformFamily = forall a. Maybe a
Prelude.Nothing,
      $sel:platformVersion:Deployment' :: Maybe Text
platformVersion = forall a. Maybe a
Prelude.Nothing,
      $sel:rolloutState:Deployment' :: Maybe DeploymentRolloutState
rolloutState = forall a. Maybe a
Prelude.Nothing,
      $sel:rolloutStateReason:Deployment' :: Maybe Text
rolloutStateReason = forall a. Maybe a
Prelude.Nothing,
      $sel:runningCount:Deployment' :: Maybe Int
runningCount = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceConnectConfiguration:Deployment' :: Maybe ServiceConnectConfiguration
serviceConnectConfiguration = forall a. Maybe a
Prelude.Nothing,
      $sel:serviceConnectResources:Deployment' :: Maybe [ServiceConnectServiceResource]
serviceConnectResources = forall a. Maybe a
Prelude.Nothing,
      $sel:status:Deployment' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:taskDefinition:Deployment' :: Maybe Text
taskDefinition = forall a. Maybe a
Prelude.Nothing,
      $sel:updatedAt:Deployment' :: Maybe POSIX
updatedAt = forall a. Maybe a
Prelude.Nothing
    }

-- | The capacity provider strategy that the deployment is using.
deployment_capacityProviderStrategy :: Lens.Lens' Deployment (Prelude.Maybe [CapacityProviderStrategyItem])
deployment_capacityProviderStrategy :: Lens' Deployment (Maybe [CapacityProviderStrategyItem])
deployment_capacityProviderStrategy = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy :: Maybe [CapacityProviderStrategyItem]
$sel:capacityProviderStrategy:Deployment' :: Deployment -> Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy} -> Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy) (\s :: Deployment
s@Deployment' {} Maybe [CapacityProviderStrategyItem]
a -> Deployment
s {$sel:capacityProviderStrategy:Deployment' :: Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy = Maybe [CapacityProviderStrategyItem]
a} :: Deployment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The Unix timestamp for the time when the service deployment was created.
deployment_createdAt :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)
deployment_createdAt :: Lens' Deployment (Maybe UTCTime)
deployment_createdAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe POSIX
createdAt :: Maybe POSIX
$sel:createdAt:Deployment' :: Deployment -> Maybe POSIX
createdAt} -> Maybe POSIX
createdAt) (\s :: Deployment
s@Deployment' {} Maybe POSIX
a -> Deployment
s {$sel:createdAt:Deployment' :: Maybe POSIX
createdAt = Maybe POSIX
a} :: Deployment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The most recent desired count of tasks that was specified for the
-- service to deploy or maintain.
deployment_desiredCount :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Int)
deployment_desiredCount :: Lens' Deployment (Maybe Int)
deployment_desiredCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Int
desiredCount :: Maybe Int
$sel:desiredCount:Deployment' :: Deployment -> Maybe Int
desiredCount} -> Maybe Int
desiredCount) (\s :: Deployment
s@Deployment' {} Maybe Int
a -> Deployment
s {$sel:desiredCount:Deployment' :: Maybe Int
desiredCount = Maybe Int
a} :: Deployment)

-- | The number of consecutively failed tasks in the deployment. A task is
-- considered a failure if the service scheduler can\'t launch the task,
-- the task doesn\'t transition to a @RUNNING@ state, or if it fails any of
-- its defined health checks and is stopped.
--
-- Once a service deployment has one or more successfully running tasks,
-- the failed task count resets to zero and stops being evaluated.
deployment_failedTasks :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Int)
deployment_failedTasks :: Lens' Deployment (Maybe Int)
deployment_failedTasks = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Int
failedTasks :: Maybe Int
$sel:failedTasks:Deployment' :: Deployment -> Maybe Int
failedTasks} -> Maybe Int
failedTasks) (\s :: Deployment
s@Deployment' {} Maybe Int
a -> Deployment
s {$sel:failedTasks:Deployment' :: Maybe Int
failedTasks = Maybe Int
a} :: Deployment)

-- | The ID of the deployment.
deployment_id :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_id :: Lens' Deployment (Maybe Text)
deployment_id = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
id :: Maybe Text
$sel:id:Deployment' :: Deployment -> Maybe Text
id} -> Maybe Text
id) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:id:Deployment' :: Maybe Text
id = Maybe Text
a} :: Deployment)

-- | The launch type the tasks in the service are using. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html Amazon ECS Launch Types>
-- in the /Amazon Elastic Container Service Developer Guide/.
deployment_launchType :: Lens.Lens' Deployment (Prelude.Maybe LaunchType)
deployment_launchType :: Lens' Deployment (Maybe LaunchType)
deployment_launchType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe LaunchType
launchType :: Maybe LaunchType
$sel:launchType:Deployment' :: Deployment -> Maybe LaunchType
launchType} -> Maybe LaunchType
launchType) (\s :: Deployment
s@Deployment' {} Maybe LaunchType
a -> Deployment
s {$sel:launchType:Deployment' :: Maybe LaunchType
launchType = Maybe LaunchType
a} :: Deployment)

-- | The VPC subnet and security group configuration for tasks that receive
-- their own elastic network interface by using the @awsvpc@ networking
-- mode.
deployment_networkConfiguration :: Lens.Lens' Deployment (Prelude.Maybe NetworkConfiguration)
deployment_networkConfiguration :: Lens' Deployment (Maybe NetworkConfiguration)
deployment_networkConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe NetworkConfiguration
networkConfiguration :: Maybe NetworkConfiguration
$sel:networkConfiguration:Deployment' :: Deployment -> Maybe NetworkConfiguration
networkConfiguration} -> Maybe NetworkConfiguration
networkConfiguration) (\s :: Deployment
s@Deployment' {} Maybe NetworkConfiguration
a -> Deployment
s {$sel:networkConfiguration:Deployment' :: Maybe NetworkConfiguration
networkConfiguration = Maybe NetworkConfiguration
a} :: Deployment)

-- | The number of tasks in the deployment that are in the @PENDING@ status.
deployment_pendingCount :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Int)
deployment_pendingCount :: Lens' Deployment (Maybe Int)
deployment_pendingCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Int
pendingCount :: Maybe Int
$sel:pendingCount:Deployment' :: Deployment -> Maybe Int
pendingCount} -> Maybe Int
pendingCount) (\s :: Deployment
s@Deployment' {} Maybe Int
a -> Deployment
s {$sel:pendingCount:Deployment' :: Maybe Int
pendingCount = Maybe Int
a} :: Deployment)

-- | The operating system that your tasks in the service, or tasks are
-- running on. A platform family is specified only for tasks using the
-- Fargate launch type.
--
-- All tasks that run as part of this service must use the same
-- @platformFamily@ value as the service, for example, @ LINUX.@.
deployment_platformFamily :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_platformFamily :: Lens' Deployment (Maybe Text)
deployment_platformFamily = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
platformFamily :: Maybe Text
$sel:platformFamily:Deployment' :: Deployment -> Maybe Text
platformFamily} -> Maybe Text
platformFamily) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:platformFamily:Deployment' :: Maybe Text
platformFamily = Maybe Text
a} :: Deployment)

-- | The platform version that your tasks in the service run on. A platform
-- version is only specified for tasks using the Fargate launch type. If
-- one isn\'t specified, the @LATEST@ platform version is used. For more
-- information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/platform_versions.html Fargate Platform Versions>
-- in the /Amazon Elastic Container Service Developer Guide/.
deployment_platformVersion :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_platformVersion :: Lens' Deployment (Maybe Text)
deployment_platformVersion = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
platformVersion :: Maybe Text
$sel:platformVersion:Deployment' :: Deployment -> Maybe Text
platformVersion} -> Maybe Text
platformVersion) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:platformVersion:Deployment' :: Maybe Text
platformVersion = Maybe Text
a} :: Deployment)

-- | The @rolloutState@ of a service is only returned for services that use
-- the rolling update (@ECS@) deployment type that aren\'t behind a Classic
-- Load Balancer.
--
-- The rollout state of the deployment. When a service deployment is
-- started, it begins in an @IN_PROGRESS@ state. When the service reaches a
-- steady state, the deployment transitions to a @COMPLETED@ state. If the
-- service fails to reach a steady state and circuit breaker is enabled,
-- the deployment transitions to a @FAILED@ state. A deployment in @FAILED@
-- state doesn\'t launch any new tasks. For more information, see
-- DeploymentCircuitBreaker.
deployment_rolloutState :: Lens.Lens' Deployment (Prelude.Maybe DeploymentRolloutState)
deployment_rolloutState :: Lens' Deployment (Maybe DeploymentRolloutState)
deployment_rolloutState = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe DeploymentRolloutState
rolloutState :: Maybe DeploymentRolloutState
$sel:rolloutState:Deployment' :: Deployment -> Maybe DeploymentRolloutState
rolloutState} -> Maybe DeploymentRolloutState
rolloutState) (\s :: Deployment
s@Deployment' {} Maybe DeploymentRolloutState
a -> Deployment
s {$sel:rolloutState:Deployment' :: Maybe DeploymentRolloutState
rolloutState = Maybe DeploymentRolloutState
a} :: Deployment)

-- | A description of the rollout state of a deployment.
deployment_rolloutStateReason :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_rolloutStateReason :: Lens' Deployment (Maybe Text)
deployment_rolloutStateReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
rolloutStateReason :: Maybe Text
$sel:rolloutStateReason:Deployment' :: Deployment -> Maybe Text
rolloutStateReason} -> Maybe Text
rolloutStateReason) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:rolloutStateReason:Deployment' :: Maybe Text
rolloutStateReason = Maybe Text
a} :: Deployment)

-- | The number of tasks in the deployment that are in the @RUNNING@ status.
deployment_runningCount :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Int)
deployment_runningCount :: Lens' Deployment (Maybe Int)
deployment_runningCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Int
runningCount :: Maybe Int
$sel:runningCount:Deployment' :: Deployment -> Maybe Int
runningCount} -> Maybe Int
runningCount) (\s :: Deployment
s@Deployment' {} Maybe Int
a -> Deployment
s {$sel:runningCount:Deployment' :: Maybe Int
runningCount = Maybe Int
a} :: Deployment)

-- | The details of the Service Connect configuration that\'s used by this
-- deployment. Compare the configuration between multiple deployments when
-- troubleshooting issues with new deployments.
--
-- The configuration for this service to discover and connect to services,
-- and be discovered by, and connected from, other services within a
-- namespace.
--
-- Tasks that run in a namespace can use short names to connect to services
-- in the namespace. Tasks can connect to services across all of the
-- clusters in the namespace. Tasks connect through a managed proxy
-- container that collects logs and metrics for increased visibility. Only
-- the tasks that Amazon ECS services create are supported with Service
-- Connect. For more information, see
-- <https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html Service Connect>
-- in the /Amazon Elastic Container Service Developer Guide/.
deployment_serviceConnectConfiguration :: Lens.Lens' Deployment (Prelude.Maybe ServiceConnectConfiguration)
deployment_serviceConnectConfiguration :: Lens' Deployment (Maybe ServiceConnectConfiguration)
deployment_serviceConnectConfiguration = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe ServiceConnectConfiguration
serviceConnectConfiguration :: Maybe ServiceConnectConfiguration
$sel:serviceConnectConfiguration:Deployment' :: Deployment -> Maybe ServiceConnectConfiguration
serviceConnectConfiguration} -> Maybe ServiceConnectConfiguration
serviceConnectConfiguration) (\s :: Deployment
s@Deployment' {} Maybe ServiceConnectConfiguration
a -> Deployment
s {$sel:serviceConnectConfiguration:Deployment' :: Maybe ServiceConnectConfiguration
serviceConnectConfiguration = Maybe ServiceConnectConfiguration
a} :: Deployment)

-- | The list of Service Connect resources that are associated with this
-- deployment. Each list entry maps a discovery name to a Cloud Map service
-- name.
deployment_serviceConnectResources :: Lens.Lens' Deployment (Prelude.Maybe [ServiceConnectServiceResource])
deployment_serviceConnectResources :: Lens' Deployment (Maybe [ServiceConnectServiceResource])
deployment_serviceConnectResources = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe [ServiceConnectServiceResource]
serviceConnectResources :: Maybe [ServiceConnectServiceResource]
$sel:serviceConnectResources:Deployment' :: Deployment -> Maybe [ServiceConnectServiceResource]
serviceConnectResources} -> Maybe [ServiceConnectServiceResource]
serviceConnectResources) (\s :: Deployment
s@Deployment' {} Maybe [ServiceConnectServiceResource]
a -> Deployment
s {$sel:serviceConnectResources:Deployment' :: Maybe [ServiceConnectServiceResource]
serviceConnectResources = Maybe [ServiceConnectServiceResource]
a} :: Deployment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The status of the deployment. The following describes each state.
--
-- [PRIMARY]
--     The most recent deployment of a service.
--
-- [ACTIVE]
--     A service deployment that still has running tasks, but are in the
--     process of being replaced with a new @PRIMARY@ deployment.
--
-- [INACTIVE]
--     A deployment that has been completely replaced.
deployment_status :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_status :: Lens' Deployment (Maybe Text)
deployment_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
status :: Maybe Text
$sel:status:Deployment' :: Deployment -> Maybe Text
status} -> Maybe Text
status) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:status:Deployment' :: Maybe Text
status = Maybe Text
a} :: Deployment)

-- | The most recent task definition that was specified for the tasks in the
-- service to use.
deployment_taskDefinition :: Lens.Lens' Deployment (Prelude.Maybe Prelude.Text)
deployment_taskDefinition :: Lens' Deployment (Maybe Text)
deployment_taskDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe Text
taskDefinition :: Maybe Text
$sel:taskDefinition:Deployment' :: Deployment -> Maybe Text
taskDefinition} -> Maybe Text
taskDefinition) (\s :: Deployment
s@Deployment' {} Maybe Text
a -> Deployment
s {$sel:taskDefinition:Deployment' :: Maybe Text
taskDefinition = Maybe Text
a} :: Deployment)

-- | The Unix timestamp for the time when the service deployment was last
-- updated.
deployment_updatedAt :: Lens.Lens' Deployment (Prelude.Maybe Prelude.UTCTime)
deployment_updatedAt :: Lens' Deployment (Maybe UTCTime)
deployment_updatedAt = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\Deployment' {Maybe POSIX
updatedAt :: Maybe POSIX
$sel:updatedAt:Deployment' :: Deployment -> Maybe POSIX
updatedAt} -> Maybe POSIX
updatedAt) (\s :: Deployment
s@Deployment' {} Maybe POSIX
a -> Deployment
s {$sel:updatedAt:Deployment' :: Maybe POSIX
updatedAt = Maybe POSIX
a} :: Deployment) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. 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 forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

instance Data.FromJSON Deployment where
  parseJSON :: Value -> Parser Deployment
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"Deployment"
      ( \Object
x ->
          Maybe [CapacityProviderStrategyItem]
-> Maybe POSIX
-> Maybe Int
-> Maybe Int
-> Maybe Text
-> Maybe LaunchType
-> Maybe NetworkConfiguration
-> Maybe Int
-> Maybe Text
-> Maybe Text
-> Maybe DeploymentRolloutState
-> Maybe Text
-> Maybe Int
-> Maybe ServiceConnectConfiguration
-> Maybe [ServiceConnectServiceResource]
-> Maybe Text
-> Maybe Text
-> Maybe POSIX
-> Deployment
Deployment'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"capacityProviderStrategy"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"createdAt")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"desiredCount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"failedTasks")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"id")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"launchType")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"networkConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"pendingCount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"platformFamily")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"platformVersion")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"rolloutState")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"rolloutStateReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"runningCount")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"serviceConnectConfiguration")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x
                            forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"serviceConnectResources"
                            forall a. Parser (Maybe a) -> a -> Parser a
Data..!= forall a. Monoid a => a
Prelude.mempty
                        )
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"status")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"taskDefinition")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"updatedAt")
      )

instance Prelude.Hashable Deployment where
  hashWithSalt :: Int -> Deployment -> Int
hashWithSalt Int
_salt Deployment' {Maybe Int
Maybe [CapacityProviderStrategyItem]
Maybe [ServiceConnectServiceResource]
Maybe Text
Maybe POSIX
Maybe DeploymentRolloutState
Maybe LaunchType
Maybe NetworkConfiguration
Maybe ServiceConnectConfiguration
updatedAt :: Maybe POSIX
taskDefinition :: Maybe Text
status :: Maybe Text
serviceConnectResources :: Maybe [ServiceConnectServiceResource]
serviceConnectConfiguration :: Maybe ServiceConnectConfiguration
runningCount :: Maybe Int
rolloutStateReason :: Maybe Text
rolloutState :: Maybe DeploymentRolloutState
platformVersion :: Maybe Text
platformFamily :: Maybe Text
pendingCount :: Maybe Int
networkConfiguration :: Maybe NetworkConfiguration
launchType :: Maybe LaunchType
id :: Maybe Text
failedTasks :: Maybe Int
desiredCount :: Maybe Int
createdAt :: Maybe POSIX
capacityProviderStrategy :: Maybe [CapacityProviderStrategyItem]
$sel:updatedAt:Deployment' :: Deployment -> Maybe POSIX
$sel:taskDefinition:Deployment' :: Deployment -> Maybe Text
$sel:status:Deployment' :: Deployment -> Maybe Text
$sel:serviceConnectResources:Deployment' :: Deployment -> Maybe [ServiceConnectServiceResource]
$sel:serviceConnectConfiguration:Deployment' :: Deployment -> Maybe ServiceConnectConfiguration
$sel:runningCount:Deployment' :: Deployment -> Maybe Int
$sel:rolloutStateReason:Deployment' :: Deployment -> Maybe Text
$sel:rolloutState:Deployment' :: Deployment -> Maybe DeploymentRolloutState
$sel:platformVersion:Deployment' :: Deployment -> Maybe Text
$sel:platformFamily:Deployment' :: Deployment -> Maybe Text
$sel:pendingCount:Deployment' :: Deployment -> Maybe Int
$sel:networkConfiguration:Deployment' :: Deployment -> Maybe NetworkConfiguration
$sel:launchType:Deployment' :: Deployment -> Maybe LaunchType
$sel:id:Deployment' :: Deployment -> Maybe Text
$sel:failedTasks:Deployment' :: Deployment -> Maybe Int
$sel:desiredCount:Deployment' :: Deployment -> Maybe Int
$sel:createdAt:Deployment' :: Deployment -> Maybe POSIX
$sel:capacityProviderStrategy:Deployment' :: Deployment -> Maybe [CapacityProviderStrategyItem]
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
createdAt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
desiredCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
failedTasks
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
id
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LaunchType
launchType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe NetworkConfiguration
networkConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
pendingCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
platformFamily
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
platformVersion
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe DeploymentRolloutState
rolloutState
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
rolloutStateReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Int
runningCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe ServiceConnectConfiguration
serviceConnectConfiguration
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe [ServiceConnectServiceResource]
serviceConnectResources
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
taskDefinition
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
updatedAt

instance Prelude.NFData Deployment where
  rnf :: Deployment -> ()
rnf Deployment' {Maybe Int
Maybe [CapacityProviderStrategyItem]
Maybe [ServiceConnectServiceResource]
Maybe Text
Maybe POSIX
Maybe DeploymentRolloutState
Maybe LaunchType
Maybe NetworkConfiguration
Maybe ServiceConnectConfiguration
updatedAt :: Maybe POSIX
taskDefinition :: Maybe Text
status :: Maybe Text
serviceConnectResources :: Maybe [ServiceConnectServiceResource]
serviceConnectConfiguration :: Maybe ServiceConnectConfiguration
runningCount :: Maybe Int
rolloutStateReason :: Maybe Text
rolloutState :: Maybe DeploymentRolloutState
platformVersion :: Maybe Text
platformFamily :: Maybe Text
pendingCount :: Maybe Int
networkConfiguration :: Maybe NetworkConfiguration
launchType :: Maybe LaunchType
id :: Maybe Text
failedTasks :: Maybe Int
desiredCount :: Maybe Int
createdAt :: Maybe POSIX
capacityProviderStrategy :: Maybe [CapacityProviderStrategyItem]
$sel:updatedAt:Deployment' :: Deployment -> Maybe POSIX
$sel:taskDefinition:Deployment' :: Deployment -> Maybe Text
$sel:status:Deployment' :: Deployment -> Maybe Text
$sel:serviceConnectResources:Deployment' :: Deployment -> Maybe [ServiceConnectServiceResource]
$sel:serviceConnectConfiguration:Deployment' :: Deployment -> Maybe ServiceConnectConfiguration
$sel:runningCount:Deployment' :: Deployment -> Maybe Int
$sel:rolloutStateReason:Deployment' :: Deployment -> Maybe Text
$sel:rolloutState:Deployment' :: Deployment -> Maybe DeploymentRolloutState
$sel:platformVersion:Deployment' :: Deployment -> Maybe Text
$sel:platformFamily:Deployment' :: Deployment -> Maybe Text
$sel:pendingCount:Deployment' :: Deployment -> Maybe Int
$sel:networkConfiguration:Deployment' :: Deployment -> Maybe NetworkConfiguration
$sel:launchType:Deployment' :: Deployment -> Maybe LaunchType
$sel:id:Deployment' :: Deployment -> Maybe Text
$sel:failedTasks:Deployment' :: Deployment -> Maybe Int
$sel:desiredCount:Deployment' :: Deployment -> Maybe Int
$sel:createdAt:Deployment' :: Deployment -> Maybe POSIX
$sel:capacityProviderStrategy:Deployment' :: Deployment -> Maybe [CapacityProviderStrategyItem]
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe [CapacityProviderStrategyItem]
capacityProviderStrategy
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
createdAt
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
desiredCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
failedTasks
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
id
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LaunchType
launchType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe NetworkConfiguration
networkConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
pendingCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
platformFamily
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
platformVersion
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe DeploymentRolloutState
rolloutState
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
rolloutStateReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Int
runningCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe ServiceConnectConfiguration
serviceConnectConfiguration
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe [ServiceConnectServiceResource]
serviceConnectResources
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
status
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
taskDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
updatedAt