{-# 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.SageMaker.Types.LabelingJobSummary
-- 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.SageMaker.Types.LabelingJobSummary where

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
import Amazonka.SageMaker.Types.LabelCounters
import Amazonka.SageMaker.Types.LabelingJobInputConfig
import Amazonka.SageMaker.Types.LabelingJobOutput
import Amazonka.SageMaker.Types.LabelingJobStatus

-- | Provides summary information about a labeling job.
--
-- /See:/ 'newLabelingJobSummary' smart constructor.
data LabelingJobSummary = LabelingJobSummary'
  { -- | The Amazon Resource Name (ARN) of the Lambda function used to
    -- consolidate the annotations from individual workers into a label for a
    -- data object. For more information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html Annotation Consolidation>.
    LabelingJobSummary -> Maybe Text
annotationConsolidationLambdaArn :: Prelude.Maybe Prelude.Text,
    -- | If the @LabelingJobStatus@ field is @Failed@, this field contains a
    -- description of the error.
    LabelingJobSummary -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | Input configuration for the labeling job.
    LabelingJobSummary -> Maybe LabelingJobInputConfig
inputConfig :: Prelude.Maybe LabelingJobInputConfig,
    -- | The location of the output produced by the labeling job.
    LabelingJobSummary -> Maybe LabelingJobOutput
labelingJobOutput :: Prelude.Maybe LabelingJobOutput,
    -- | The name of the labeling job.
    LabelingJobSummary -> Text
labelingJobName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) assigned to the labeling job when it was
    -- created.
    LabelingJobSummary -> Text
labelingJobArn :: Prelude.Text,
    -- | The date and time that the job was created (timestamp).
    LabelingJobSummary -> POSIX
creationTime :: Data.POSIX,
    -- | The date and time that the job was last modified (timestamp).
    LabelingJobSummary -> POSIX
lastModifiedTime :: Data.POSIX,
    -- | The current status of the labeling job.
    LabelingJobSummary -> LabelingJobStatus
labelingJobStatus :: LabelingJobStatus,
    -- | Counts showing the progress of the labeling job.
    LabelingJobSummary -> LabelCounters
labelCounters :: LabelCounters,
    -- | The Amazon Resource Name (ARN) of the work team assigned to the job.
    LabelingJobSummary -> Text
workteamArn :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of a Lambda function. The function is run
    -- before each data object is sent to a worker.
    LabelingJobSummary -> Text
preHumanTaskLambdaArn :: Prelude.Text
  }
  deriving (LabelingJobSummary -> LabelingJobSummary -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LabelingJobSummary -> LabelingJobSummary -> Bool
$c/= :: LabelingJobSummary -> LabelingJobSummary -> Bool
== :: LabelingJobSummary -> LabelingJobSummary -> Bool
$c== :: LabelingJobSummary -> LabelingJobSummary -> Bool
Prelude.Eq, ReadPrec [LabelingJobSummary]
ReadPrec LabelingJobSummary
Int -> ReadS LabelingJobSummary
ReadS [LabelingJobSummary]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [LabelingJobSummary]
$creadListPrec :: ReadPrec [LabelingJobSummary]
readPrec :: ReadPrec LabelingJobSummary
$creadPrec :: ReadPrec LabelingJobSummary
readList :: ReadS [LabelingJobSummary]
$creadList :: ReadS [LabelingJobSummary]
readsPrec :: Int -> ReadS LabelingJobSummary
$creadsPrec :: Int -> ReadS LabelingJobSummary
Prelude.Read, Int -> LabelingJobSummary -> ShowS
[LabelingJobSummary] -> ShowS
LabelingJobSummary -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LabelingJobSummary] -> ShowS
$cshowList :: [LabelingJobSummary] -> ShowS
show :: LabelingJobSummary -> String
$cshow :: LabelingJobSummary -> String
showsPrec :: Int -> LabelingJobSummary -> ShowS
$cshowsPrec :: Int -> LabelingJobSummary -> ShowS
Prelude.Show, forall x. Rep LabelingJobSummary x -> LabelingJobSummary
forall x. LabelingJobSummary -> Rep LabelingJobSummary x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LabelingJobSummary x -> LabelingJobSummary
$cfrom :: forall x. LabelingJobSummary -> Rep LabelingJobSummary x
Prelude.Generic)

-- |
-- Create a value of 'LabelingJobSummary' 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:
--
-- 'annotationConsolidationLambdaArn', 'labelingJobSummary_annotationConsolidationLambdaArn' - The Amazon Resource Name (ARN) of the Lambda function used to
-- consolidate the annotations from individual workers into a label for a
-- data object. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html Annotation Consolidation>.
--
-- 'failureReason', 'labelingJobSummary_failureReason' - If the @LabelingJobStatus@ field is @Failed@, this field contains a
-- description of the error.
--
-- 'inputConfig', 'labelingJobSummary_inputConfig' - Input configuration for the labeling job.
--
-- 'labelingJobOutput', 'labelingJobSummary_labelingJobOutput' - The location of the output produced by the labeling job.
--
-- 'labelingJobName', 'labelingJobSummary_labelingJobName' - The name of the labeling job.
--
-- 'labelingJobArn', 'labelingJobSummary_labelingJobArn' - The Amazon Resource Name (ARN) assigned to the labeling job when it was
-- created.
--
-- 'creationTime', 'labelingJobSummary_creationTime' - The date and time that the job was created (timestamp).
--
-- 'lastModifiedTime', 'labelingJobSummary_lastModifiedTime' - The date and time that the job was last modified (timestamp).
--
-- 'labelingJobStatus', 'labelingJobSummary_labelingJobStatus' - The current status of the labeling job.
--
-- 'labelCounters', 'labelingJobSummary_labelCounters' - Counts showing the progress of the labeling job.
--
-- 'workteamArn', 'labelingJobSummary_workteamArn' - The Amazon Resource Name (ARN) of the work team assigned to the job.
--
-- 'preHumanTaskLambdaArn', 'labelingJobSummary_preHumanTaskLambdaArn' - The Amazon Resource Name (ARN) of a Lambda function. The function is run
-- before each data object is sent to a worker.
newLabelingJobSummary ::
  -- | 'labelingJobName'
  Prelude.Text ->
  -- | 'labelingJobArn'
  Prelude.Text ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'lastModifiedTime'
  Prelude.UTCTime ->
  -- | 'labelingJobStatus'
  LabelingJobStatus ->
  -- | 'labelCounters'
  LabelCounters ->
  -- | 'workteamArn'
  Prelude.Text ->
  -- | 'preHumanTaskLambdaArn'
  Prelude.Text ->
  LabelingJobSummary
newLabelingJobSummary :: Text
-> Text
-> UTCTime
-> UTCTime
-> LabelingJobStatus
-> LabelCounters
-> Text
-> Text
-> LabelingJobSummary
newLabelingJobSummary
  Text
pLabelingJobName_
  Text
pLabelingJobArn_
  UTCTime
pCreationTime_
  UTCTime
pLastModifiedTime_
  LabelingJobStatus
pLabelingJobStatus_
  LabelCounters
pLabelCounters_
  Text
pWorkteamArn_
  Text
pPreHumanTaskLambdaArn_ =
    LabelingJobSummary'
      { $sel:annotationConsolidationLambdaArn:LabelingJobSummary' :: Maybe Text
annotationConsolidationLambdaArn =
          forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:LabelingJobSummary' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
        $sel:inputConfig:LabelingJobSummary' :: Maybe LabelingJobInputConfig
inputConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:labelingJobOutput:LabelingJobSummary' :: Maybe LabelingJobOutput
labelingJobOutput = forall a. Maybe a
Prelude.Nothing,
        $sel:labelingJobName:LabelingJobSummary' :: Text
labelingJobName = Text
pLabelingJobName_,
        $sel:labelingJobArn:LabelingJobSummary' :: Text
labelingJobArn = Text
pLabelingJobArn_,
        $sel:creationTime:LabelingJobSummary' :: POSIX
creationTime = forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:lastModifiedTime:LabelingJobSummary' :: POSIX
lastModifiedTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastModifiedTime_,
        $sel:labelingJobStatus:LabelingJobSummary' :: LabelingJobStatus
labelingJobStatus = LabelingJobStatus
pLabelingJobStatus_,
        $sel:labelCounters:LabelingJobSummary' :: LabelCounters
labelCounters = LabelCounters
pLabelCounters_,
        $sel:workteamArn:LabelingJobSummary' :: Text
workteamArn = Text
pWorkteamArn_,
        $sel:preHumanTaskLambdaArn:LabelingJobSummary' :: Text
preHumanTaskLambdaArn = Text
pPreHumanTaskLambdaArn_
      }

-- | The Amazon Resource Name (ARN) of the Lambda function used to
-- consolidate the annotations from individual workers into a label for a
-- data object. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/sms-annotation-consolidation.html Annotation Consolidation>.
labelingJobSummary_annotationConsolidationLambdaArn :: Lens.Lens' LabelingJobSummary (Prelude.Maybe Prelude.Text)
labelingJobSummary_annotationConsolidationLambdaArn :: Lens' LabelingJobSummary (Maybe Text)
labelingJobSummary_annotationConsolidationLambdaArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Maybe Text
annotationConsolidationLambdaArn :: Maybe Text
$sel:annotationConsolidationLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
annotationConsolidationLambdaArn} -> Maybe Text
annotationConsolidationLambdaArn) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Maybe Text
a -> LabelingJobSummary
s {$sel:annotationConsolidationLambdaArn:LabelingJobSummary' :: Maybe Text
annotationConsolidationLambdaArn = Maybe Text
a} :: LabelingJobSummary)

-- | If the @LabelingJobStatus@ field is @Failed@, this field contains a
-- description of the error.
labelingJobSummary_failureReason :: Lens.Lens' LabelingJobSummary (Prelude.Maybe Prelude.Text)
labelingJobSummary_failureReason :: Lens' LabelingJobSummary (Maybe Text)
labelingJobSummary_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Maybe Text
a -> LabelingJobSummary
s {$sel:failureReason:LabelingJobSummary' :: Maybe Text
failureReason = Maybe Text
a} :: LabelingJobSummary)

-- | Input configuration for the labeling job.
labelingJobSummary_inputConfig :: Lens.Lens' LabelingJobSummary (Prelude.Maybe LabelingJobInputConfig)
labelingJobSummary_inputConfig :: Lens' LabelingJobSummary (Maybe LabelingJobInputConfig)
labelingJobSummary_inputConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Maybe LabelingJobInputConfig
inputConfig :: Maybe LabelingJobInputConfig
$sel:inputConfig:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobInputConfig
inputConfig} -> Maybe LabelingJobInputConfig
inputConfig) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Maybe LabelingJobInputConfig
a -> LabelingJobSummary
s {$sel:inputConfig:LabelingJobSummary' :: Maybe LabelingJobInputConfig
inputConfig = Maybe LabelingJobInputConfig
a} :: LabelingJobSummary)

-- | The location of the output produced by the labeling job.
labelingJobSummary_labelingJobOutput :: Lens.Lens' LabelingJobSummary (Prelude.Maybe LabelingJobOutput)
labelingJobSummary_labelingJobOutput :: Lens' LabelingJobSummary (Maybe LabelingJobOutput)
labelingJobSummary_labelingJobOutput = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Maybe LabelingJobOutput
labelingJobOutput :: Maybe LabelingJobOutput
$sel:labelingJobOutput:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobOutput
labelingJobOutput} -> Maybe LabelingJobOutput
labelingJobOutput) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Maybe LabelingJobOutput
a -> LabelingJobSummary
s {$sel:labelingJobOutput:LabelingJobSummary' :: Maybe LabelingJobOutput
labelingJobOutput = Maybe LabelingJobOutput
a} :: LabelingJobSummary)

-- | The name of the labeling job.
labelingJobSummary_labelingJobName :: Lens.Lens' LabelingJobSummary Prelude.Text
labelingJobSummary_labelingJobName :: Lens' LabelingJobSummary Text
labelingJobSummary_labelingJobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Text
labelingJobName :: Text
$sel:labelingJobName:LabelingJobSummary' :: LabelingJobSummary -> Text
labelingJobName} -> Text
labelingJobName) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Text
a -> LabelingJobSummary
s {$sel:labelingJobName:LabelingJobSummary' :: Text
labelingJobName = Text
a} :: LabelingJobSummary)

-- | The Amazon Resource Name (ARN) assigned to the labeling job when it was
-- created.
labelingJobSummary_labelingJobArn :: Lens.Lens' LabelingJobSummary Prelude.Text
labelingJobSummary_labelingJobArn :: Lens' LabelingJobSummary Text
labelingJobSummary_labelingJobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Text
labelingJobArn :: Text
$sel:labelingJobArn:LabelingJobSummary' :: LabelingJobSummary -> Text
labelingJobArn} -> Text
labelingJobArn) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Text
a -> LabelingJobSummary
s {$sel:labelingJobArn:LabelingJobSummary' :: Text
labelingJobArn = Text
a} :: LabelingJobSummary)

-- | The date and time that the job was created (timestamp).
labelingJobSummary_creationTime :: Lens.Lens' LabelingJobSummary Prelude.UTCTime
labelingJobSummary_creationTime :: Lens' LabelingJobSummary UTCTime
labelingJobSummary_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {POSIX
creationTime :: POSIX
$sel:creationTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
creationTime} -> POSIX
creationTime) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} POSIX
a -> LabelingJobSummary
s {$sel:creationTime:LabelingJobSummary' :: POSIX
creationTime = POSIX
a} :: LabelingJobSummary) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The date and time that the job was last modified (timestamp).
labelingJobSummary_lastModifiedTime :: Lens.Lens' LabelingJobSummary Prelude.UTCTime
labelingJobSummary_lastModifiedTime :: Lens' LabelingJobSummary UTCTime
labelingJobSummary_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {POSIX
lastModifiedTime :: POSIX
$sel:lastModifiedTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
lastModifiedTime} -> POSIX
lastModifiedTime) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} POSIX
a -> LabelingJobSummary
s {$sel:lastModifiedTime:LabelingJobSummary' :: POSIX
lastModifiedTime = POSIX
a} :: LabelingJobSummary) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The current status of the labeling job.
labelingJobSummary_labelingJobStatus :: Lens.Lens' LabelingJobSummary LabelingJobStatus
labelingJobSummary_labelingJobStatus :: Lens' LabelingJobSummary LabelingJobStatus
labelingJobSummary_labelingJobStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {LabelingJobStatus
labelingJobStatus :: LabelingJobStatus
$sel:labelingJobStatus:LabelingJobSummary' :: LabelingJobSummary -> LabelingJobStatus
labelingJobStatus} -> LabelingJobStatus
labelingJobStatus) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} LabelingJobStatus
a -> LabelingJobSummary
s {$sel:labelingJobStatus:LabelingJobSummary' :: LabelingJobStatus
labelingJobStatus = LabelingJobStatus
a} :: LabelingJobSummary)

-- | Counts showing the progress of the labeling job.
labelingJobSummary_labelCounters :: Lens.Lens' LabelingJobSummary LabelCounters
labelingJobSummary_labelCounters :: Lens' LabelingJobSummary LabelCounters
labelingJobSummary_labelCounters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {LabelCounters
labelCounters :: LabelCounters
$sel:labelCounters:LabelingJobSummary' :: LabelingJobSummary -> LabelCounters
labelCounters} -> LabelCounters
labelCounters) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} LabelCounters
a -> LabelingJobSummary
s {$sel:labelCounters:LabelingJobSummary' :: LabelCounters
labelCounters = LabelCounters
a} :: LabelingJobSummary)

-- | The Amazon Resource Name (ARN) of the work team assigned to the job.
labelingJobSummary_workteamArn :: Lens.Lens' LabelingJobSummary Prelude.Text
labelingJobSummary_workteamArn :: Lens' LabelingJobSummary Text
labelingJobSummary_workteamArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Text
workteamArn :: Text
$sel:workteamArn:LabelingJobSummary' :: LabelingJobSummary -> Text
workteamArn} -> Text
workteamArn) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Text
a -> LabelingJobSummary
s {$sel:workteamArn:LabelingJobSummary' :: Text
workteamArn = Text
a} :: LabelingJobSummary)

-- | The Amazon Resource Name (ARN) of a Lambda function. The function is run
-- before each data object is sent to a worker.
labelingJobSummary_preHumanTaskLambdaArn :: Lens.Lens' LabelingJobSummary Prelude.Text
labelingJobSummary_preHumanTaskLambdaArn :: Lens' LabelingJobSummary Text
labelingJobSummary_preHumanTaskLambdaArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\LabelingJobSummary' {Text
preHumanTaskLambdaArn :: Text
$sel:preHumanTaskLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Text
preHumanTaskLambdaArn} -> Text
preHumanTaskLambdaArn) (\s :: LabelingJobSummary
s@LabelingJobSummary' {} Text
a -> LabelingJobSummary
s {$sel:preHumanTaskLambdaArn:LabelingJobSummary' :: Text
preHumanTaskLambdaArn = Text
a} :: LabelingJobSummary)

instance Data.FromJSON LabelingJobSummary where
  parseJSON :: Value -> Parser LabelingJobSummary
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"LabelingJobSummary"
      ( \Object
x ->
          Maybe Text
-> Maybe Text
-> Maybe LabelingJobInputConfig
-> Maybe LabelingJobOutput
-> Text
-> Text
-> POSIX
-> POSIX
-> LabelingJobStatus
-> LabelCounters
-> Text
-> Text
-> LabelingJobSummary
LabelingJobSummary'
            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
"AnnotationConsolidationLambdaArn")
            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
"FailureReason")
            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
"InputConfig")
            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
"LabelingJobOutput")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LabelingJobName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LabelingJobArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LastModifiedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LabelingJobStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"LabelCounters")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"WorkteamArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser a
Data..: Key
"PreHumanTaskLambdaArn")
      )

instance Prelude.Hashable LabelingJobSummary where
  hashWithSalt :: Int -> LabelingJobSummary -> Int
hashWithSalt Int
_salt LabelingJobSummary' {Maybe Text
Maybe LabelingJobOutput
Maybe LabelingJobInputConfig
Text
POSIX
LabelCounters
LabelingJobStatus
preHumanTaskLambdaArn :: Text
workteamArn :: Text
labelCounters :: LabelCounters
labelingJobStatus :: LabelingJobStatus
lastModifiedTime :: POSIX
creationTime :: POSIX
labelingJobArn :: Text
labelingJobName :: Text
labelingJobOutput :: Maybe LabelingJobOutput
inputConfig :: Maybe LabelingJobInputConfig
failureReason :: Maybe Text
annotationConsolidationLambdaArn :: Maybe Text
$sel:preHumanTaskLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:workteamArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelCounters:LabelingJobSummary' :: LabelingJobSummary -> LabelCounters
$sel:labelingJobStatus:LabelingJobSummary' :: LabelingJobSummary -> LabelingJobStatus
$sel:lastModifiedTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
$sel:creationTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
$sel:labelingJobArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelingJobName:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelingJobOutput:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobOutput
$sel:inputConfig:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobInputConfig
$sel:failureReason:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
$sel:annotationConsolidationLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
annotationConsolidationLambdaArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
failureReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LabelingJobInputConfig
inputConfig
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LabelingJobOutput
labelingJobOutput
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
labelingJobName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
labelingJobArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` POSIX
lastModifiedTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` LabelingJobStatus
labelingJobStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` LabelCounters
labelCounters
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
workteamArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
preHumanTaskLambdaArn

instance Prelude.NFData LabelingJobSummary where
  rnf :: LabelingJobSummary -> ()
rnf LabelingJobSummary' {Maybe Text
Maybe LabelingJobOutput
Maybe LabelingJobInputConfig
Text
POSIX
LabelCounters
LabelingJobStatus
preHumanTaskLambdaArn :: Text
workteamArn :: Text
labelCounters :: LabelCounters
labelingJobStatus :: LabelingJobStatus
lastModifiedTime :: POSIX
creationTime :: POSIX
labelingJobArn :: Text
labelingJobName :: Text
labelingJobOutput :: Maybe LabelingJobOutput
inputConfig :: Maybe LabelingJobInputConfig
failureReason :: Maybe Text
annotationConsolidationLambdaArn :: Maybe Text
$sel:preHumanTaskLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:workteamArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelCounters:LabelingJobSummary' :: LabelingJobSummary -> LabelCounters
$sel:labelingJobStatus:LabelingJobSummary' :: LabelingJobSummary -> LabelingJobStatus
$sel:lastModifiedTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
$sel:creationTime:LabelingJobSummary' :: LabelingJobSummary -> POSIX
$sel:labelingJobArn:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelingJobName:LabelingJobSummary' :: LabelingJobSummary -> Text
$sel:labelingJobOutput:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobOutput
$sel:inputConfig:LabelingJobSummary' :: LabelingJobSummary -> Maybe LabelingJobInputConfig
$sel:failureReason:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
$sel:annotationConsolidationLambdaArn:LabelingJobSummary' :: LabelingJobSummary -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
annotationConsolidationLambdaArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LabelingJobInputConfig
inputConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LabelingJobOutput
labelingJobOutput
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
labelingJobName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
labelingJobArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf LabelingJobStatus
labelingJobStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf LabelCounters
labelCounters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
workteamArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
preHumanTaskLambdaArn