{-# 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.ECSTaskSet
-- 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.CodeDeploy.Types.ECSTaskSet where

import Amazonka.CodeDeploy.Types.TargetGroupInfo
import Amazonka.CodeDeploy.Types.TargetLabel
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Information about a set of Amazon ECS tasks in an CodeDeploy deployment.
-- An Amazon ECS task set includes details such as the desired number of
-- tasks, how many tasks are running, and whether the task set serves
-- production traffic. An CodeDeploy application that uses the Amazon ECS
-- compute platform deploys a containerized application in an Amazon ECS
-- service as a task set.
--
-- /See:/ 'newECSTaskSet' smart constructor.
data ECSTaskSet = ECSTaskSet'
  { -- | The number of tasks in a task set. During a deployment that uses the
    -- Amazon ECS compute type, CodeDeploy instructs Amazon ECS to create a new
    -- task set and uses this value to determine how many tasks to create.
    -- After the updated task set is created, CodeDeploy shifts traffic to the
    -- new task set.
    ECSTaskSet -> Maybe Integer
desiredCount :: Prelude.Maybe Prelude.Integer,
    -- | A unique ID of an @ECSTaskSet@.
    ECSTaskSet -> Maybe Text
identifer :: Prelude.Maybe Prelude.Text,
    -- | The number of tasks in the task set that are in the @PENDING@ status
    -- during an Amazon ECS deployment. A task in the @PENDING@ state is
    -- preparing to enter the @RUNNING@ state. A task set enters the @PENDING@
    -- status when it launches for the first time, or when it is restarted
    -- after being in the @STOPPED@ state.
    ECSTaskSet -> Maybe Integer
pendingCount :: Prelude.Maybe Prelude.Integer,
    -- | The number of tasks in the task set that are in the @RUNNING@ status
    -- during an Amazon ECS deployment. A task in the @RUNNING@ state is
    -- running and ready for use.
    ECSTaskSet -> Maybe Integer
runningCount :: Prelude.Maybe Prelude.Integer,
    -- | The status of the task set. There are three valid task set statuses:
    --
    -- -   @PRIMARY@: Indicates the task set is serving production traffic.
    --
    -- -   @ACTIVE@: Indicates the task set is not serving production traffic.
    --
    -- -   @DRAINING@: Indicates the tasks in the task set are being stopped
    --     and their corresponding targets are being deregistered from their
    --     target group.
    ECSTaskSet -> Maybe Text
status :: Prelude.Maybe Prelude.Text,
    -- | The target group associated with the task set. The target group is used
    -- by CodeDeploy to manage traffic to a task set.
    ECSTaskSet -> Maybe TargetGroupInfo
targetGroup :: Prelude.Maybe TargetGroupInfo,
    -- | A label that identifies whether the ECS task set is an original target
    -- (@BLUE@) or a replacement target (@GREEN@).
    ECSTaskSet -> Maybe TargetLabel
taskSetLabel :: Prelude.Maybe TargetLabel,
    -- | The percentage of traffic served by this task set.
    ECSTaskSet -> Maybe Double
trafficWeight :: Prelude.Maybe Prelude.Double
  }
  deriving (ECSTaskSet -> ECSTaskSet -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ECSTaskSet -> ECSTaskSet -> Bool
$c/= :: ECSTaskSet -> ECSTaskSet -> Bool
== :: ECSTaskSet -> ECSTaskSet -> Bool
$c== :: ECSTaskSet -> ECSTaskSet -> Bool
Prelude.Eq, ReadPrec [ECSTaskSet]
ReadPrec ECSTaskSet
Int -> ReadS ECSTaskSet
ReadS [ECSTaskSet]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ECSTaskSet]
$creadListPrec :: ReadPrec [ECSTaskSet]
readPrec :: ReadPrec ECSTaskSet
$creadPrec :: ReadPrec ECSTaskSet
readList :: ReadS [ECSTaskSet]
$creadList :: ReadS [ECSTaskSet]
readsPrec :: Int -> ReadS ECSTaskSet
$creadsPrec :: Int -> ReadS ECSTaskSet
Prelude.Read, Int -> ECSTaskSet -> ShowS
[ECSTaskSet] -> ShowS
ECSTaskSet -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ECSTaskSet] -> ShowS
$cshowList :: [ECSTaskSet] -> ShowS
show :: ECSTaskSet -> String
$cshow :: ECSTaskSet -> String
showsPrec :: Int -> ECSTaskSet -> ShowS
$cshowsPrec :: Int -> ECSTaskSet -> ShowS
Prelude.Show, forall x. Rep ECSTaskSet x -> ECSTaskSet
forall x. ECSTaskSet -> Rep ECSTaskSet x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ECSTaskSet x -> ECSTaskSet
$cfrom :: forall x. ECSTaskSet -> Rep ECSTaskSet x
Prelude.Generic)

-- |
-- Create a value of 'ECSTaskSet' 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:
--
-- 'desiredCount', 'eCSTaskSet_desiredCount' - The number of tasks in a task set. During a deployment that uses the
-- Amazon ECS compute type, CodeDeploy instructs Amazon ECS to create a new
-- task set and uses this value to determine how many tasks to create.
-- After the updated task set is created, CodeDeploy shifts traffic to the
-- new task set.
--
-- 'identifer', 'eCSTaskSet_identifer' - A unique ID of an @ECSTaskSet@.
--
-- 'pendingCount', 'eCSTaskSet_pendingCount' - The number of tasks in the task set that are in the @PENDING@ status
-- during an Amazon ECS deployment. A task in the @PENDING@ state is
-- preparing to enter the @RUNNING@ state. A task set enters the @PENDING@
-- status when it launches for the first time, or when it is restarted
-- after being in the @STOPPED@ state.
--
-- 'runningCount', 'eCSTaskSet_runningCount' - The number of tasks in the task set that are in the @RUNNING@ status
-- during an Amazon ECS deployment. A task in the @RUNNING@ state is
-- running and ready for use.
--
-- 'status', 'eCSTaskSet_status' - The status of the task set. There are three valid task set statuses:
--
-- -   @PRIMARY@: Indicates the task set is serving production traffic.
--
-- -   @ACTIVE@: Indicates the task set is not serving production traffic.
--
-- -   @DRAINING@: Indicates the tasks in the task set are being stopped
--     and their corresponding targets are being deregistered from their
--     target group.
--
-- 'targetGroup', 'eCSTaskSet_targetGroup' - The target group associated with the task set. The target group is used
-- by CodeDeploy to manage traffic to a task set.
--
-- 'taskSetLabel', 'eCSTaskSet_taskSetLabel' - A label that identifies whether the ECS task set is an original target
-- (@BLUE@) or a replacement target (@GREEN@).
--
-- 'trafficWeight', 'eCSTaskSet_trafficWeight' - The percentage of traffic served by this task set.
newECSTaskSet ::
  ECSTaskSet
newECSTaskSet :: ECSTaskSet
newECSTaskSet =
  ECSTaskSet'
    { $sel:desiredCount:ECSTaskSet' :: Maybe Integer
desiredCount = forall a. Maybe a
Prelude.Nothing,
      $sel:identifer:ECSTaskSet' :: Maybe Text
identifer = forall a. Maybe a
Prelude.Nothing,
      $sel:pendingCount:ECSTaskSet' :: Maybe Integer
pendingCount = forall a. Maybe a
Prelude.Nothing,
      $sel:runningCount:ECSTaskSet' :: Maybe Integer
runningCount = forall a. Maybe a
Prelude.Nothing,
      $sel:status:ECSTaskSet' :: Maybe Text
status = forall a. Maybe a
Prelude.Nothing,
      $sel:targetGroup:ECSTaskSet' :: Maybe TargetGroupInfo
targetGroup = forall a. Maybe a
Prelude.Nothing,
      $sel:taskSetLabel:ECSTaskSet' :: Maybe TargetLabel
taskSetLabel = forall a. Maybe a
Prelude.Nothing,
      $sel:trafficWeight:ECSTaskSet' :: Maybe Double
trafficWeight = forall a. Maybe a
Prelude.Nothing
    }

-- | The number of tasks in a task set. During a deployment that uses the
-- Amazon ECS compute type, CodeDeploy instructs Amazon ECS to create a new
-- task set and uses this value to determine how many tasks to create.
-- After the updated task set is created, CodeDeploy shifts traffic to the
-- new task set.
eCSTaskSet_desiredCount :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Integer)
eCSTaskSet_desiredCount :: Lens' ECSTaskSet (Maybe Integer)
eCSTaskSet_desiredCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Integer
desiredCount :: Maybe Integer
$sel:desiredCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
desiredCount} -> Maybe Integer
desiredCount) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Integer
a -> ECSTaskSet
s {$sel:desiredCount:ECSTaskSet' :: Maybe Integer
desiredCount = Maybe Integer
a} :: ECSTaskSet)

-- | A unique ID of an @ECSTaskSet@.
eCSTaskSet_identifer :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Text)
eCSTaskSet_identifer :: Lens' ECSTaskSet (Maybe Text)
eCSTaskSet_identifer = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Text
identifer :: Maybe Text
$sel:identifer:ECSTaskSet' :: ECSTaskSet -> Maybe Text
identifer} -> Maybe Text
identifer) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Text
a -> ECSTaskSet
s {$sel:identifer:ECSTaskSet' :: Maybe Text
identifer = Maybe Text
a} :: ECSTaskSet)

-- | The number of tasks in the task set that are in the @PENDING@ status
-- during an Amazon ECS deployment. A task in the @PENDING@ state is
-- preparing to enter the @RUNNING@ state. A task set enters the @PENDING@
-- status when it launches for the first time, or when it is restarted
-- after being in the @STOPPED@ state.
eCSTaskSet_pendingCount :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Integer)
eCSTaskSet_pendingCount :: Lens' ECSTaskSet (Maybe Integer)
eCSTaskSet_pendingCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Integer
pendingCount :: Maybe Integer
$sel:pendingCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
pendingCount} -> Maybe Integer
pendingCount) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Integer
a -> ECSTaskSet
s {$sel:pendingCount:ECSTaskSet' :: Maybe Integer
pendingCount = Maybe Integer
a} :: ECSTaskSet)

-- | The number of tasks in the task set that are in the @RUNNING@ status
-- during an Amazon ECS deployment. A task in the @RUNNING@ state is
-- running and ready for use.
eCSTaskSet_runningCount :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Integer)
eCSTaskSet_runningCount :: Lens' ECSTaskSet (Maybe Integer)
eCSTaskSet_runningCount = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Integer
runningCount :: Maybe Integer
$sel:runningCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
runningCount} -> Maybe Integer
runningCount) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Integer
a -> ECSTaskSet
s {$sel:runningCount:ECSTaskSet' :: Maybe Integer
runningCount = Maybe Integer
a} :: ECSTaskSet)

-- | The status of the task set. There are three valid task set statuses:
--
-- -   @PRIMARY@: Indicates the task set is serving production traffic.
--
-- -   @ACTIVE@: Indicates the task set is not serving production traffic.
--
-- -   @DRAINING@: Indicates the tasks in the task set are being stopped
--     and their corresponding targets are being deregistered from their
--     target group.
eCSTaskSet_status :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Text)
eCSTaskSet_status :: Lens' ECSTaskSet (Maybe Text)
eCSTaskSet_status = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Text
status :: Maybe Text
$sel:status:ECSTaskSet' :: ECSTaskSet -> Maybe Text
status} -> Maybe Text
status) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Text
a -> ECSTaskSet
s {$sel:status:ECSTaskSet' :: Maybe Text
status = Maybe Text
a} :: ECSTaskSet)

-- | The target group associated with the task set. The target group is used
-- by CodeDeploy to manage traffic to a task set.
eCSTaskSet_targetGroup :: Lens.Lens' ECSTaskSet (Prelude.Maybe TargetGroupInfo)
eCSTaskSet_targetGroup :: Lens' ECSTaskSet (Maybe TargetGroupInfo)
eCSTaskSet_targetGroup = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe TargetGroupInfo
targetGroup :: Maybe TargetGroupInfo
$sel:targetGroup:ECSTaskSet' :: ECSTaskSet -> Maybe TargetGroupInfo
targetGroup} -> Maybe TargetGroupInfo
targetGroup) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe TargetGroupInfo
a -> ECSTaskSet
s {$sel:targetGroup:ECSTaskSet' :: Maybe TargetGroupInfo
targetGroup = Maybe TargetGroupInfo
a} :: ECSTaskSet)

-- | A label that identifies whether the ECS task set is an original target
-- (@BLUE@) or a replacement target (@GREEN@).
eCSTaskSet_taskSetLabel :: Lens.Lens' ECSTaskSet (Prelude.Maybe TargetLabel)
eCSTaskSet_taskSetLabel :: Lens' ECSTaskSet (Maybe TargetLabel)
eCSTaskSet_taskSetLabel = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe TargetLabel
taskSetLabel :: Maybe TargetLabel
$sel:taskSetLabel:ECSTaskSet' :: ECSTaskSet -> Maybe TargetLabel
taskSetLabel} -> Maybe TargetLabel
taskSetLabel) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe TargetLabel
a -> ECSTaskSet
s {$sel:taskSetLabel:ECSTaskSet' :: Maybe TargetLabel
taskSetLabel = Maybe TargetLabel
a} :: ECSTaskSet)

-- | The percentage of traffic served by this task set.
eCSTaskSet_trafficWeight :: Lens.Lens' ECSTaskSet (Prelude.Maybe Prelude.Double)
eCSTaskSet_trafficWeight :: Lens' ECSTaskSet (Maybe Double)
eCSTaskSet_trafficWeight = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\ECSTaskSet' {Maybe Double
trafficWeight :: Maybe Double
$sel:trafficWeight:ECSTaskSet' :: ECSTaskSet -> Maybe Double
trafficWeight} -> Maybe Double
trafficWeight) (\s :: ECSTaskSet
s@ECSTaskSet' {} Maybe Double
a -> ECSTaskSet
s {$sel:trafficWeight:ECSTaskSet' :: Maybe Double
trafficWeight = Maybe Double
a} :: ECSTaskSet)

instance Data.FromJSON ECSTaskSet where
  parseJSON :: Value -> Parser ECSTaskSet
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"ECSTaskSet"
      ( \Object
x ->
          Maybe Integer
-> Maybe Text
-> Maybe Integer
-> Maybe Integer
-> Maybe Text
-> Maybe TargetGroupInfo
-> Maybe TargetLabel
-> Maybe Double
-> ECSTaskSet
ECSTaskSet'
            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
"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
"identifer")
            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
"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
"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
"targetGroup")
            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
"taskSetLabel")
            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
"trafficWeight")
      )

instance Prelude.Hashable ECSTaskSet where
  hashWithSalt :: Int -> ECSTaskSet -> Int
hashWithSalt Int
_salt ECSTaskSet' {Maybe Double
Maybe Integer
Maybe Text
Maybe TargetGroupInfo
Maybe TargetLabel
trafficWeight :: Maybe Double
taskSetLabel :: Maybe TargetLabel
targetGroup :: Maybe TargetGroupInfo
status :: Maybe Text
runningCount :: Maybe Integer
pendingCount :: Maybe Integer
identifer :: Maybe Text
desiredCount :: Maybe Integer
$sel:trafficWeight:ECSTaskSet' :: ECSTaskSet -> Maybe Double
$sel:taskSetLabel:ECSTaskSet' :: ECSTaskSet -> Maybe TargetLabel
$sel:targetGroup:ECSTaskSet' :: ECSTaskSet -> Maybe TargetGroupInfo
$sel:status:ECSTaskSet' :: ECSTaskSet -> Maybe Text
$sel:runningCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
$sel:pendingCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
$sel:identifer:ECSTaskSet' :: ECSTaskSet -> Maybe Text
$sel:desiredCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
desiredCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
identifer
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
pendingCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Integer
runningCount
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
status
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TargetGroupInfo
targetGroup
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TargetLabel
taskSetLabel
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
trafficWeight

instance Prelude.NFData ECSTaskSet where
  rnf :: ECSTaskSet -> ()
rnf ECSTaskSet' {Maybe Double
Maybe Integer
Maybe Text
Maybe TargetGroupInfo
Maybe TargetLabel
trafficWeight :: Maybe Double
taskSetLabel :: Maybe TargetLabel
targetGroup :: Maybe TargetGroupInfo
status :: Maybe Text
runningCount :: Maybe Integer
pendingCount :: Maybe Integer
identifer :: Maybe Text
desiredCount :: Maybe Integer
$sel:trafficWeight:ECSTaskSet' :: ECSTaskSet -> Maybe Double
$sel:taskSetLabel:ECSTaskSet' :: ECSTaskSet -> Maybe TargetLabel
$sel:targetGroup:ECSTaskSet' :: ECSTaskSet -> Maybe TargetGroupInfo
$sel:status:ECSTaskSet' :: ECSTaskSet -> Maybe Text
$sel:runningCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
$sel:pendingCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
$sel:identifer:ECSTaskSet' :: ECSTaskSet -> Maybe Text
$sel:desiredCount:ECSTaskSet' :: ECSTaskSet -> Maybe Integer
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
desiredCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
identifer
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
pendingCount
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Integer
runningCount
      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 TargetGroupInfo
targetGroup
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TargetLabel
taskSetLabel
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
trafficWeight