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

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

-- |
-- Module      : Amazonka.SageMaker.DescribeLabelingJob
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets information about a labeling job.
module Amazonka.SageMaker.DescribeLabelingJob
  ( -- * Creating a Request
    DescribeLabelingJob (..),
    newDescribeLabelingJob,

    -- * Request Lenses
    describeLabelingJob_labelingJobName,

    -- * Destructuring the Response
    DescribeLabelingJobResponse (..),
    newDescribeLabelingJobResponse,

    -- * Response Lenses
    describeLabelingJobResponse_failureReason,
    describeLabelingJobResponse_labelingJobAlgorithmsConfig,
    describeLabelingJobResponse_labelCategoryConfigS3Uri,
    describeLabelingJobResponse_stoppingConditions,
    describeLabelingJobResponse_labelAttributeName,
    describeLabelingJobResponse_labelingJobOutput,
    describeLabelingJobResponse_tags,
    describeLabelingJobResponse_httpStatus,
    describeLabelingJobResponse_labelingJobStatus,
    describeLabelingJobResponse_labelCounters,
    describeLabelingJobResponse_creationTime,
    describeLabelingJobResponse_lastModifiedTime,
    describeLabelingJobResponse_jobReferenceCode,
    describeLabelingJobResponse_labelingJobName,
    describeLabelingJobResponse_labelingJobArn,
    describeLabelingJobResponse_inputConfig,
    describeLabelingJobResponse_outputConfig,
    describeLabelingJobResponse_roleArn,
    describeLabelingJobResponse_humanTaskConfig,
  )
where

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

-- | /See:/ 'newDescribeLabelingJob' smart constructor.
data DescribeLabelingJob = DescribeLabelingJob'
  { -- | The name of the labeling job to return information for.
    DescribeLabelingJob -> Text
labelingJobName :: Prelude.Text
  }
  deriving (DescribeLabelingJob -> DescribeLabelingJob -> Bool
(DescribeLabelingJob -> DescribeLabelingJob -> Bool)
-> (DescribeLabelingJob -> DescribeLabelingJob -> Bool)
-> Eq DescribeLabelingJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLabelingJob -> DescribeLabelingJob -> Bool
$c/= :: DescribeLabelingJob -> DescribeLabelingJob -> Bool
== :: DescribeLabelingJob -> DescribeLabelingJob -> Bool
$c== :: DescribeLabelingJob -> DescribeLabelingJob -> Bool
Prelude.Eq, ReadPrec [DescribeLabelingJob]
ReadPrec DescribeLabelingJob
Int -> ReadS DescribeLabelingJob
ReadS [DescribeLabelingJob]
(Int -> ReadS DescribeLabelingJob)
-> ReadS [DescribeLabelingJob]
-> ReadPrec DescribeLabelingJob
-> ReadPrec [DescribeLabelingJob]
-> Read DescribeLabelingJob
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLabelingJob]
$creadListPrec :: ReadPrec [DescribeLabelingJob]
readPrec :: ReadPrec DescribeLabelingJob
$creadPrec :: ReadPrec DescribeLabelingJob
readList :: ReadS [DescribeLabelingJob]
$creadList :: ReadS [DescribeLabelingJob]
readsPrec :: Int -> ReadS DescribeLabelingJob
$creadsPrec :: Int -> ReadS DescribeLabelingJob
Prelude.Read, Int -> DescribeLabelingJob -> ShowS
[DescribeLabelingJob] -> ShowS
DescribeLabelingJob -> String
(Int -> DescribeLabelingJob -> ShowS)
-> (DescribeLabelingJob -> String)
-> ([DescribeLabelingJob] -> ShowS)
-> Show DescribeLabelingJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLabelingJob] -> ShowS
$cshowList :: [DescribeLabelingJob] -> ShowS
show :: DescribeLabelingJob -> String
$cshow :: DescribeLabelingJob -> String
showsPrec :: Int -> DescribeLabelingJob -> ShowS
$cshowsPrec :: Int -> DescribeLabelingJob -> ShowS
Prelude.Show, (forall x. DescribeLabelingJob -> Rep DescribeLabelingJob x)
-> (forall x. Rep DescribeLabelingJob x -> DescribeLabelingJob)
-> Generic DescribeLabelingJob
forall x. Rep DescribeLabelingJob x -> DescribeLabelingJob
forall x. DescribeLabelingJob -> Rep DescribeLabelingJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeLabelingJob x -> DescribeLabelingJob
$cfrom :: forall x. DescribeLabelingJob -> Rep DescribeLabelingJob x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLabelingJob' 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:
--
-- 'labelingJobName', 'describeLabelingJob_labelingJobName' - The name of the labeling job to return information for.
newDescribeLabelingJob ::
  -- | 'labelingJobName'
  Prelude.Text ->
  DescribeLabelingJob
newDescribeLabelingJob :: Text -> DescribeLabelingJob
newDescribeLabelingJob Text
pLabelingJobName_ =
  DescribeLabelingJob' :: Text -> DescribeLabelingJob
DescribeLabelingJob'
    { $sel:labelingJobName:DescribeLabelingJob' :: Text
labelingJobName =
        Text
pLabelingJobName_
    }

-- | The name of the labeling job to return information for.
describeLabelingJob_labelingJobName :: Lens.Lens' DescribeLabelingJob Prelude.Text
describeLabelingJob_labelingJobName :: (Text -> f Text) -> DescribeLabelingJob -> f DescribeLabelingJob
describeLabelingJob_labelingJobName = (DescribeLabelingJob -> Text)
-> (DescribeLabelingJob -> Text -> DescribeLabelingJob)
-> Lens DescribeLabelingJob DescribeLabelingJob Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJob' {Text
labelingJobName :: Text
$sel:labelingJobName:DescribeLabelingJob' :: DescribeLabelingJob -> Text
labelingJobName} -> Text
labelingJobName) (\s :: DescribeLabelingJob
s@DescribeLabelingJob' {} Text
a -> DescribeLabelingJob
s {$sel:labelingJobName:DescribeLabelingJob' :: Text
labelingJobName = Text
a} :: DescribeLabelingJob)

instance Core.AWSRequest DescribeLabelingJob where
  type
    AWSResponse DescribeLabelingJob =
      DescribeLabelingJobResponse
  request :: DescribeLabelingJob -> Request DescribeLabelingJob
request = Service -> DescribeLabelingJob -> Request DescribeLabelingJob
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeLabelingJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeLabelingJob)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeLabelingJob))
-> Logger
-> Service
-> Proxy DescribeLabelingJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeLabelingJob)))
forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> Logger
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe Text
-> Maybe LabelingJobAlgorithmsConfig
-> Maybe Text
-> Maybe LabelingJobStoppingConditions
-> Maybe Text
-> Maybe LabelingJobOutput
-> Maybe [Tag]
-> Int
-> LabelingJobStatus
-> LabelCounters
-> POSIX
-> POSIX
-> Text
-> Text
-> Text
-> LabelingJobInputConfig
-> LabelingJobOutputConfig
-> Text
-> HumanTaskConfig
-> DescribeLabelingJobResponse
DescribeLabelingJobResponse'
            (Maybe Text
 -> Maybe LabelingJobAlgorithmsConfig
 -> Maybe Text
 -> Maybe LabelingJobStoppingConditions
 -> Maybe Text
 -> Maybe LabelingJobOutput
 -> Maybe [Tag]
 -> Int
 -> LabelingJobStatus
 -> LabelCounters
 -> POSIX
 -> POSIX
 -> Text
 -> Text
 -> Text
 -> LabelingJobInputConfig
 -> LabelingJobOutputConfig
 -> Text
 -> HumanTaskConfig
 -> DescribeLabelingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe LabelingJobAlgorithmsConfig
      -> Maybe Text
      -> Maybe LabelingJobStoppingConditions
      -> Maybe Text
      -> Maybe LabelingJobOutput
      -> Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"FailureReason")
            Either
  String
  (Maybe LabelingJobAlgorithmsConfig
   -> Maybe Text
   -> Maybe LabelingJobStoppingConditions
   -> Maybe Text
   -> Maybe LabelingJobOutput
   -> Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe LabelingJobAlgorithmsConfig)
-> Either
     String
     (Maybe Text
      -> Maybe LabelingJobStoppingConditions
      -> Maybe Text
      -> Maybe LabelingJobOutput
      -> Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LabelingJobAlgorithmsConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LabelingJobAlgorithmsConfig")
            Either
  String
  (Maybe Text
   -> Maybe LabelingJobStoppingConditions
   -> Maybe Text
   -> Maybe LabelingJobOutput
   -> Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe LabelingJobStoppingConditions
      -> Maybe Text
      -> Maybe LabelingJobOutput
      -> Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LabelCategoryConfigS3Uri")
            Either
  String
  (Maybe LabelingJobStoppingConditions
   -> Maybe Text
   -> Maybe LabelingJobOutput
   -> Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe LabelingJobStoppingConditions)
-> Either
     String
     (Maybe Text
      -> Maybe LabelingJobOutput
      -> Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object
-> Text -> Either String (Maybe LabelingJobStoppingConditions)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"StoppingConditions")
            Either
  String
  (Maybe Text
   -> Maybe LabelingJobOutput
   -> Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe LabelingJobOutput
      -> Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Text)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LabelAttributeName")
            Either
  String
  (Maybe LabelingJobOutput
   -> Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe LabelingJobOutput)
-> Either
     String
     (Maybe [Tag]
      -> Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe LabelingJobOutput)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LabelingJobOutput")
            Either
  String
  (Maybe [Tag]
   -> Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String (Maybe [Tag])
-> Either
     String
     (Int
      -> LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe [Tag]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Tags" Either String (Maybe (Maybe [Tag]))
-> Maybe [Tag] -> Either String (Maybe [Tag])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [Tag]
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Int
   -> LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String Int
-> Either
     String
     (LabelingJobStatus
      -> LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Int -> Either String Int
forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (Int -> Int
forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            Either
  String
  (LabelingJobStatus
   -> LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String LabelingJobStatus
-> Either
     String
     (LabelCounters
      -> POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String LabelingJobStatus
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"LabelingJobStatus")
            Either
  String
  (LabelCounters
   -> POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String LabelCounters
-> Either
     String
     (POSIX
      -> POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String LabelCounters
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"LabelCounters")
            Either
  String
  (POSIX
   -> POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String POSIX
-> Either
     String
     (POSIX
      -> Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String POSIX
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"CreationTime")
            Either
  String
  (POSIX
   -> Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String POSIX
-> Either
     String
     (Text
      -> Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String POSIX
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"LastModifiedTime")
            Either
  String
  (Text
   -> Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String Text
-> Either
     String
     (Text
      -> Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"JobReferenceCode")
            Either
  String
  (Text
   -> Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String Text
-> Either
     String
     (Text
      -> LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"LabelingJobName")
            Either
  String
  (Text
   -> LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String Text
-> Either
     String
     (LabelingJobInputConfig
      -> LabelingJobOutputConfig
      -> Text
      -> HumanTaskConfig
      -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"LabelingJobArn")
            Either
  String
  (LabelingJobInputConfig
   -> LabelingJobOutputConfig
   -> Text
   -> HumanTaskConfig
   -> DescribeLabelingJobResponse)
-> Either String LabelingJobInputConfig
-> Either
     String
     (LabelingJobOutputConfig
      -> Text -> HumanTaskConfig -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String LabelingJobInputConfig
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"InputConfig")
            Either
  String
  (LabelingJobOutputConfig
   -> Text -> HumanTaskConfig -> DescribeLabelingJobResponse)
-> Either String LabelingJobOutputConfig
-> Either
     String (Text -> HumanTaskConfig -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String LabelingJobOutputConfig
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"OutputConfig")
            Either
  String (Text -> HumanTaskConfig -> DescribeLabelingJobResponse)
-> Either String Text
-> Either String (HumanTaskConfig -> DescribeLabelingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String Text
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"RoleArn")
            Either String (HumanTaskConfig -> DescribeLabelingJobResponse)
-> Either String HumanTaskConfig
-> Either String DescribeLabelingJobResponse
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String HumanTaskConfig
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"HumanTaskConfig")
      )

instance Prelude.Hashable DescribeLabelingJob

instance Prelude.NFData DescribeLabelingJob

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

instance Core.ToJSON DescribeLabelingJob where
  toJSON :: DescribeLabelingJob -> Value
toJSON DescribeLabelingJob' {Text
labelingJobName :: Text
$sel:labelingJobName:DescribeLabelingJob' :: DescribeLabelingJob -> Text
..} =
    [Pair] -> Value
Core.object
      ( [Maybe Pair] -> [Pair]
forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ Pair -> Maybe Pair
forall a. a -> Maybe a
Prelude.Just
              (Text
"LabelingJobName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
labelingJobName)
          ]
      )

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

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

-- | /See:/ 'newDescribeLabelingJobResponse' smart constructor.
data DescribeLabelingJobResponse = DescribeLabelingJobResponse'
  { -- | If the job failed, the reason that it failed.
    DescribeLabelingJobResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | Configuration information for automated data labeling.
    DescribeLabelingJobResponse -> Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig :: Prelude.Maybe LabelingJobAlgorithmsConfig,
    -- | The S3 location of the JSON file that defines the categories used to
    -- label data objects. Please note the following label-category limits:
    --
    -- -   Semantic segmentation labeling jobs using automated labeling: 20
    --     labels
    --
    -- -   Box bounding labeling jobs (all): 10 labels
    --
    -- The file is a JSON structure in the following format:
    --
    -- @{@
    --
    -- @ \"document-version\": \"2018-11-28\"@
    --
    -- @ \"labels\": [@
    --
    -- @ {@
    --
    -- @ \"label\": \"label 1\"@
    --
    -- @ },@
    --
    -- @ {@
    --
    -- @ \"label\": \"label 2\"@
    --
    -- @ },@
    --
    -- @ ...@
    --
    -- @ {@
    --
    -- @ \"label\": \"label n\"@
    --
    -- @ }@
    --
    -- @ ]@
    --
    -- @}@
    DescribeLabelingJobResponse -> Maybe Text
labelCategoryConfigS3Uri :: Prelude.Maybe Prelude.Text,
    -- | A set of conditions for stopping a labeling job. If any of the
    -- conditions are met, the job is automatically stopped.
    DescribeLabelingJobResponse -> Maybe LabelingJobStoppingConditions
stoppingConditions :: Prelude.Maybe LabelingJobStoppingConditions,
    -- | The attribute used as the label in the output manifest file.
    DescribeLabelingJobResponse -> Maybe Text
labelAttributeName :: Prelude.Maybe Prelude.Text,
    -- | The location of the output produced by the labeling job.
    DescribeLabelingJobResponse -> Maybe LabelingJobOutput
labelingJobOutput :: Prelude.Maybe LabelingJobOutput,
    -- | An array of key-value pairs. You can use tags to categorize your Amazon
    -- Web Services resources in different ways, for example, by purpose,
    -- owner, or environment. For more information, see
    -- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>.
    DescribeLabelingJobResponse -> Maybe [Tag]
tags :: Prelude.Maybe [Tag],
    -- | The response's http status code.
    DescribeLabelingJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The processing status of the labeling job.
    DescribeLabelingJobResponse -> LabelingJobStatus
labelingJobStatus :: LabelingJobStatus,
    -- | Provides a breakdown of the number of data objects labeled by humans,
    -- the number of objects labeled by machine, the number of objects than
    -- couldn\'t be labeled, and the total number of objects labeled.
    DescribeLabelingJobResponse -> LabelCounters
labelCounters :: LabelCounters,
    -- | The date and time that the labeling job was created.
    DescribeLabelingJobResponse -> POSIX
creationTime :: Core.POSIX,
    -- | The date and time that the labeling job was last updated.
    DescribeLabelingJobResponse -> POSIX
lastModifiedTime :: Core.POSIX,
    -- | A unique identifier for work done as part of a labeling job.
    DescribeLabelingJobResponse -> Text
jobReferenceCode :: Prelude.Text,
    -- | The name assigned to the labeling job when it was created.
    DescribeLabelingJobResponse -> Text
labelingJobName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the labeling job.
    DescribeLabelingJobResponse -> Text
labelingJobArn :: Prelude.Text,
    -- | Input configuration information for the labeling job, such as the Amazon
    -- S3 location of the data objects and the location of the manifest file
    -- that describes the data objects.
    DescribeLabelingJobResponse -> LabelingJobInputConfig
inputConfig :: LabelingJobInputConfig,
    -- | The location of the job\'s output data and the Amazon Web Services Key
    -- Management Service key ID for the key used to encrypt the output data,
    -- if any.
    DescribeLabelingJobResponse -> LabelingJobOutputConfig
outputConfig :: LabelingJobOutputConfig,
    -- | The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform
    -- tasks on your behalf during data labeling.
    DescribeLabelingJobResponse -> Text
roleArn :: Prelude.Text,
    -- | Configuration information required for human workers to complete a
    -- labeling task.
    DescribeLabelingJobResponse -> HumanTaskConfig
humanTaskConfig :: HumanTaskConfig
  }
  deriving (DescribeLabelingJobResponse -> DescribeLabelingJobResponse -> Bool
(DescribeLabelingJobResponse
 -> DescribeLabelingJobResponse -> Bool)
-> (DescribeLabelingJobResponse
    -> DescribeLabelingJobResponse -> Bool)
-> Eq DescribeLabelingJobResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeLabelingJobResponse -> DescribeLabelingJobResponse -> Bool
$c/= :: DescribeLabelingJobResponse -> DescribeLabelingJobResponse -> Bool
== :: DescribeLabelingJobResponse -> DescribeLabelingJobResponse -> Bool
$c== :: DescribeLabelingJobResponse -> DescribeLabelingJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeLabelingJobResponse]
ReadPrec DescribeLabelingJobResponse
Int -> ReadS DescribeLabelingJobResponse
ReadS [DescribeLabelingJobResponse]
(Int -> ReadS DescribeLabelingJobResponse)
-> ReadS [DescribeLabelingJobResponse]
-> ReadPrec DescribeLabelingJobResponse
-> ReadPrec [DescribeLabelingJobResponse]
-> Read DescribeLabelingJobResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeLabelingJobResponse]
$creadListPrec :: ReadPrec [DescribeLabelingJobResponse]
readPrec :: ReadPrec DescribeLabelingJobResponse
$creadPrec :: ReadPrec DescribeLabelingJobResponse
readList :: ReadS [DescribeLabelingJobResponse]
$creadList :: ReadS [DescribeLabelingJobResponse]
readsPrec :: Int -> ReadS DescribeLabelingJobResponse
$creadsPrec :: Int -> ReadS DescribeLabelingJobResponse
Prelude.Read, Int -> DescribeLabelingJobResponse -> ShowS
[DescribeLabelingJobResponse] -> ShowS
DescribeLabelingJobResponse -> String
(Int -> DescribeLabelingJobResponse -> ShowS)
-> (DescribeLabelingJobResponse -> String)
-> ([DescribeLabelingJobResponse] -> ShowS)
-> Show DescribeLabelingJobResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeLabelingJobResponse] -> ShowS
$cshowList :: [DescribeLabelingJobResponse] -> ShowS
show :: DescribeLabelingJobResponse -> String
$cshow :: DescribeLabelingJobResponse -> String
showsPrec :: Int -> DescribeLabelingJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeLabelingJobResponse -> ShowS
Prelude.Show, (forall x.
 DescribeLabelingJobResponse -> Rep DescribeLabelingJobResponse x)
-> (forall x.
    Rep DescribeLabelingJobResponse x -> DescribeLabelingJobResponse)
-> Generic DescribeLabelingJobResponse
forall x.
Rep DescribeLabelingJobResponse x -> DescribeLabelingJobResponse
forall x.
DescribeLabelingJobResponse -> Rep DescribeLabelingJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeLabelingJobResponse x -> DescribeLabelingJobResponse
$cfrom :: forall x.
DescribeLabelingJobResponse -> Rep DescribeLabelingJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeLabelingJobResponse' 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:
--
-- 'failureReason', 'describeLabelingJobResponse_failureReason' - If the job failed, the reason that it failed.
--
-- 'labelingJobAlgorithmsConfig', 'describeLabelingJobResponse_labelingJobAlgorithmsConfig' - Configuration information for automated data labeling.
--
-- 'labelCategoryConfigS3Uri', 'describeLabelingJobResponse_labelCategoryConfigS3Uri' - The S3 location of the JSON file that defines the categories used to
-- label data objects. Please note the following label-category limits:
--
-- -   Semantic segmentation labeling jobs using automated labeling: 20
--     labels
--
-- -   Box bounding labeling jobs (all): 10 labels
--
-- The file is a JSON structure in the following format:
--
-- @{@
--
-- @ \"document-version\": \"2018-11-28\"@
--
-- @ \"labels\": [@
--
-- @ {@
--
-- @ \"label\": \"label 1\"@
--
-- @ },@
--
-- @ {@
--
-- @ \"label\": \"label 2\"@
--
-- @ },@
--
-- @ ...@
--
-- @ {@
--
-- @ \"label\": \"label n\"@
--
-- @ }@
--
-- @ ]@
--
-- @}@
--
-- 'stoppingConditions', 'describeLabelingJobResponse_stoppingConditions' - A set of conditions for stopping a labeling job. If any of the
-- conditions are met, the job is automatically stopped.
--
-- 'labelAttributeName', 'describeLabelingJobResponse_labelAttributeName' - The attribute used as the label in the output manifest file.
--
-- 'labelingJobOutput', 'describeLabelingJobResponse_labelingJobOutput' - The location of the output produced by the labeling job.
--
-- 'tags', 'describeLabelingJobResponse_tags' - An array of key-value pairs. You can use tags to categorize your Amazon
-- Web Services resources in different ways, for example, by purpose,
-- owner, or environment. For more information, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>.
--
-- 'httpStatus', 'describeLabelingJobResponse_httpStatus' - The response's http status code.
--
-- 'labelingJobStatus', 'describeLabelingJobResponse_labelingJobStatus' - The processing status of the labeling job.
--
-- 'labelCounters', 'describeLabelingJobResponse_labelCounters' - Provides a breakdown of the number of data objects labeled by humans,
-- the number of objects labeled by machine, the number of objects than
-- couldn\'t be labeled, and the total number of objects labeled.
--
-- 'creationTime', 'describeLabelingJobResponse_creationTime' - The date and time that the labeling job was created.
--
-- 'lastModifiedTime', 'describeLabelingJobResponse_lastModifiedTime' - The date and time that the labeling job was last updated.
--
-- 'jobReferenceCode', 'describeLabelingJobResponse_jobReferenceCode' - A unique identifier for work done as part of a labeling job.
--
-- 'labelingJobName', 'describeLabelingJobResponse_labelingJobName' - The name assigned to the labeling job when it was created.
--
-- 'labelingJobArn', 'describeLabelingJobResponse_labelingJobArn' - The Amazon Resource Name (ARN) of the labeling job.
--
-- 'inputConfig', 'describeLabelingJobResponse_inputConfig' - Input configuration information for the labeling job, such as the Amazon
-- S3 location of the data objects and the location of the manifest file
-- that describes the data objects.
--
-- 'outputConfig', 'describeLabelingJobResponse_outputConfig' - The location of the job\'s output data and the Amazon Web Services Key
-- Management Service key ID for the key used to encrypt the output data,
-- if any.
--
-- 'roleArn', 'describeLabelingJobResponse_roleArn' - The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform
-- tasks on your behalf during data labeling.
--
-- 'humanTaskConfig', 'describeLabelingJobResponse_humanTaskConfig' - Configuration information required for human workers to complete a
-- labeling task.
newDescribeLabelingJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'labelingJobStatus'
  LabelingJobStatus ->
  -- | 'labelCounters'
  LabelCounters ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'lastModifiedTime'
  Prelude.UTCTime ->
  -- | 'jobReferenceCode'
  Prelude.Text ->
  -- | 'labelingJobName'
  Prelude.Text ->
  -- | 'labelingJobArn'
  Prelude.Text ->
  -- | 'inputConfig'
  LabelingJobInputConfig ->
  -- | 'outputConfig'
  LabelingJobOutputConfig ->
  -- | 'roleArn'
  Prelude.Text ->
  -- | 'humanTaskConfig'
  HumanTaskConfig ->
  DescribeLabelingJobResponse
newDescribeLabelingJobResponse :: Int
-> LabelingJobStatus
-> LabelCounters
-> UTCTime
-> UTCTime
-> Text
-> Text
-> Text
-> LabelingJobInputConfig
-> LabelingJobOutputConfig
-> Text
-> HumanTaskConfig
-> DescribeLabelingJobResponse
newDescribeLabelingJobResponse
  Int
pHttpStatus_
  LabelingJobStatus
pLabelingJobStatus_
  LabelCounters
pLabelCounters_
  UTCTime
pCreationTime_
  UTCTime
pLastModifiedTime_
  Text
pJobReferenceCode_
  Text
pLabelingJobName_
  Text
pLabelingJobArn_
  LabelingJobInputConfig
pInputConfig_
  LabelingJobOutputConfig
pOutputConfig_
  Text
pRoleArn_
  HumanTaskConfig
pHumanTaskConfig_ =
    DescribeLabelingJobResponse' :: Maybe Text
-> Maybe LabelingJobAlgorithmsConfig
-> Maybe Text
-> Maybe LabelingJobStoppingConditions
-> Maybe Text
-> Maybe LabelingJobOutput
-> Maybe [Tag]
-> Int
-> LabelingJobStatus
-> LabelCounters
-> POSIX
-> POSIX
-> Text
-> Text
-> Text
-> LabelingJobInputConfig
-> LabelingJobOutputConfig
-> Text
-> HumanTaskConfig
-> DescribeLabelingJobResponse
DescribeLabelingJobResponse'
      { $sel:failureReason:DescribeLabelingJobResponse' :: Maybe Text
failureReason =
          Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:labelingJobAlgorithmsConfig:DescribeLabelingJobResponse' :: Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig = Maybe LabelingJobAlgorithmsConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:labelCategoryConfigS3Uri:DescribeLabelingJobResponse' :: Maybe Text
labelCategoryConfigS3Uri = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:stoppingConditions:DescribeLabelingJobResponse' :: Maybe LabelingJobStoppingConditions
stoppingConditions = Maybe LabelingJobStoppingConditions
forall a. Maybe a
Prelude.Nothing,
        $sel:labelAttributeName:DescribeLabelingJobResponse' :: Maybe Text
labelAttributeName = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:labelingJobOutput:DescribeLabelingJobResponse' :: Maybe LabelingJobOutput
labelingJobOutput = Maybe LabelingJobOutput
forall a. Maybe a
Prelude.Nothing,
        $sel:tags:DescribeLabelingJobResponse' :: Maybe [Tag]
tags = Maybe [Tag]
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeLabelingJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:labelingJobStatus:DescribeLabelingJobResponse' :: LabelingJobStatus
labelingJobStatus = LabelingJobStatus
pLabelingJobStatus_,
        $sel:labelCounters:DescribeLabelingJobResponse' :: LabelCounters
labelCounters = LabelCounters
pLabelCounters_,
        $sel:creationTime:DescribeLabelingJobResponse' :: POSIX
creationTime =
          Tagged UTCTime (Identity UTCTime) -> Tagged POSIX (Identity POSIX)
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time (Tagged UTCTime (Identity UTCTime)
 -> Tagged POSIX (Identity POSIX))
-> UTCTime -> POSIX
forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:lastModifiedTime:DescribeLabelingJobResponse' :: POSIX
lastModifiedTime =
          Tagged UTCTime (Identity UTCTime) -> Tagged POSIX (Identity POSIX)
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time (Tagged UTCTime (Identity UTCTime)
 -> Tagged POSIX (Identity POSIX))
-> UTCTime -> POSIX
forall t b. AReview t b -> b -> t
Lens.# UTCTime
pLastModifiedTime_,
        $sel:jobReferenceCode:DescribeLabelingJobResponse' :: Text
jobReferenceCode = Text
pJobReferenceCode_,
        $sel:labelingJobName:DescribeLabelingJobResponse' :: Text
labelingJobName = Text
pLabelingJobName_,
        $sel:labelingJobArn:DescribeLabelingJobResponse' :: Text
labelingJobArn = Text
pLabelingJobArn_,
        $sel:inputConfig:DescribeLabelingJobResponse' :: LabelingJobInputConfig
inputConfig = LabelingJobInputConfig
pInputConfig_,
        $sel:outputConfig:DescribeLabelingJobResponse' :: LabelingJobOutputConfig
outputConfig = LabelingJobOutputConfig
pOutputConfig_,
        $sel:roleArn:DescribeLabelingJobResponse' :: Text
roleArn = Text
pRoleArn_,
        $sel:humanTaskConfig:DescribeLabelingJobResponse' :: HumanTaskConfig
humanTaskConfig = HumanTaskConfig
pHumanTaskConfig_
      }

-- | If the job failed, the reason that it failed.
describeLabelingJobResponse_failureReason :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe Prelude.Text)
describeLabelingJobResponse_failureReason :: (Maybe Text -> f (Maybe Text))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_failureReason = (DescribeLabelingJobResponse -> Maybe Text)
-> (DescribeLabelingJobResponse
    -> Maybe Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe Text
a -> DescribeLabelingJobResponse
s {$sel:failureReason:DescribeLabelingJobResponse' :: Maybe Text
failureReason = Maybe Text
a} :: DescribeLabelingJobResponse)

-- | Configuration information for automated data labeling.
describeLabelingJobResponse_labelingJobAlgorithmsConfig :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe LabelingJobAlgorithmsConfig)
describeLabelingJobResponse_labelingJobAlgorithmsConfig :: (Maybe LabelingJobAlgorithmsConfig
 -> f (Maybe LabelingJobAlgorithmsConfig))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelingJobAlgorithmsConfig = (DescribeLabelingJobResponse -> Maybe LabelingJobAlgorithmsConfig)
-> (DescribeLabelingJobResponse
    -> Maybe LabelingJobAlgorithmsConfig
    -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe LabelingJobAlgorithmsConfig)
     (Maybe LabelingJobAlgorithmsConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig :: Maybe LabelingJobAlgorithmsConfig
$sel:labelingJobAlgorithmsConfig:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig} -> Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe LabelingJobAlgorithmsConfig
a -> DescribeLabelingJobResponse
s {$sel:labelingJobAlgorithmsConfig:DescribeLabelingJobResponse' :: Maybe LabelingJobAlgorithmsConfig
labelingJobAlgorithmsConfig = Maybe LabelingJobAlgorithmsConfig
a} :: DescribeLabelingJobResponse)

-- | The S3 location of the JSON file that defines the categories used to
-- label data objects. Please note the following label-category limits:
--
-- -   Semantic segmentation labeling jobs using automated labeling: 20
--     labels
--
-- -   Box bounding labeling jobs (all): 10 labels
--
-- The file is a JSON structure in the following format:
--
-- @{@
--
-- @ \"document-version\": \"2018-11-28\"@
--
-- @ \"labels\": [@
--
-- @ {@
--
-- @ \"label\": \"label 1\"@
--
-- @ },@
--
-- @ {@
--
-- @ \"label\": \"label 2\"@
--
-- @ },@
--
-- @ ...@
--
-- @ {@
--
-- @ \"label\": \"label n\"@
--
-- @ }@
--
-- @ ]@
--
-- @}@
describeLabelingJobResponse_labelCategoryConfigS3Uri :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe Prelude.Text)
describeLabelingJobResponse_labelCategoryConfigS3Uri :: (Maybe Text -> f (Maybe Text))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelCategoryConfigS3Uri = (DescribeLabelingJobResponse -> Maybe Text)
-> (DescribeLabelingJobResponse
    -> Maybe Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe Text
labelCategoryConfigS3Uri :: Maybe Text
$sel:labelCategoryConfigS3Uri:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe Text
labelCategoryConfigS3Uri} -> Maybe Text
labelCategoryConfigS3Uri) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe Text
a -> DescribeLabelingJobResponse
s {$sel:labelCategoryConfigS3Uri:DescribeLabelingJobResponse' :: Maybe Text
labelCategoryConfigS3Uri = Maybe Text
a} :: DescribeLabelingJobResponse)

-- | A set of conditions for stopping a labeling job. If any of the
-- conditions are met, the job is automatically stopped.
describeLabelingJobResponse_stoppingConditions :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe LabelingJobStoppingConditions)
describeLabelingJobResponse_stoppingConditions :: (Maybe LabelingJobStoppingConditions
 -> f (Maybe LabelingJobStoppingConditions))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_stoppingConditions = (DescribeLabelingJobResponse
 -> Maybe LabelingJobStoppingConditions)
-> (DescribeLabelingJobResponse
    -> Maybe LabelingJobStoppingConditions
    -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe LabelingJobStoppingConditions)
     (Maybe LabelingJobStoppingConditions)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe LabelingJobStoppingConditions
stoppingConditions :: Maybe LabelingJobStoppingConditions
$sel:stoppingConditions:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe LabelingJobStoppingConditions
stoppingConditions} -> Maybe LabelingJobStoppingConditions
stoppingConditions) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe LabelingJobStoppingConditions
a -> DescribeLabelingJobResponse
s {$sel:stoppingConditions:DescribeLabelingJobResponse' :: Maybe LabelingJobStoppingConditions
stoppingConditions = Maybe LabelingJobStoppingConditions
a} :: DescribeLabelingJobResponse)

-- | The attribute used as the label in the output manifest file.
describeLabelingJobResponse_labelAttributeName :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe Prelude.Text)
describeLabelingJobResponse_labelAttributeName :: (Maybe Text -> f (Maybe Text))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelAttributeName = (DescribeLabelingJobResponse -> Maybe Text)
-> (DescribeLabelingJobResponse
    -> Maybe Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe Text
labelAttributeName :: Maybe Text
$sel:labelAttributeName:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe Text
labelAttributeName} -> Maybe Text
labelAttributeName) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe Text
a -> DescribeLabelingJobResponse
s {$sel:labelAttributeName:DescribeLabelingJobResponse' :: Maybe Text
labelAttributeName = Maybe Text
a} :: DescribeLabelingJobResponse)

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

-- | An array of key-value pairs. You can use tags to categorize your Amazon
-- Web Services resources in different ways, for example, by purpose,
-- owner, or environment. For more information, see
-- <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html Tagging Amazon Web Services Resources>.
describeLabelingJobResponse_tags :: Lens.Lens' DescribeLabelingJobResponse (Prelude.Maybe [Tag])
describeLabelingJobResponse_tags :: (Maybe [Tag] -> f (Maybe [Tag]))
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_tags = (DescribeLabelingJobResponse -> Maybe [Tag])
-> (DescribeLabelingJobResponse
    -> Maybe [Tag] -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     (Maybe [Tag])
     (Maybe [Tag])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Maybe [Tag]
tags :: Maybe [Tag]
$sel:tags:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Maybe [Tag]
tags} -> Maybe [Tag]
tags) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Maybe [Tag]
a -> DescribeLabelingJobResponse
s {$sel:tags:DescribeLabelingJobResponse' :: Maybe [Tag]
tags = Maybe [Tag]
a} :: DescribeLabelingJobResponse) ((Maybe [Tag] -> f (Maybe [Tag]))
 -> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse)
-> ((Maybe [Tag] -> f (Maybe [Tag]))
    -> Maybe [Tag] -> f (Maybe [Tag]))
-> (Maybe [Tag] -> f (Maybe [Tag]))
-> DescribeLabelingJobResponse
-> f DescribeLabelingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [Tag] [Tag] [Tag] [Tag]
-> Iso (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag]) (Maybe [Tag])
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso [Tag] [Tag] [Tag] [Tag]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

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

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

-- | Provides a breakdown of the number of data objects labeled by humans,
-- the number of objects labeled by machine, the number of objects than
-- couldn\'t be labeled, and the total number of objects labeled.
describeLabelingJobResponse_labelCounters :: Lens.Lens' DescribeLabelingJobResponse LabelCounters
describeLabelingJobResponse_labelCounters :: (LabelCounters -> f LabelCounters)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelCounters = (DescribeLabelingJobResponse -> LabelCounters)
-> (DescribeLabelingJobResponse
    -> LabelCounters -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     LabelCounters
     LabelCounters
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {LabelCounters
labelCounters :: LabelCounters
$sel:labelCounters:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> LabelCounters
labelCounters} -> LabelCounters
labelCounters) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} LabelCounters
a -> DescribeLabelingJobResponse
s {$sel:labelCounters:DescribeLabelingJobResponse' :: LabelCounters
labelCounters = LabelCounters
a} :: DescribeLabelingJobResponse)

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

-- | The date and time that the labeling job was last updated.
describeLabelingJobResponse_lastModifiedTime :: Lens.Lens' DescribeLabelingJobResponse Prelude.UTCTime
describeLabelingJobResponse_lastModifiedTime :: (UTCTime -> f UTCTime)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_lastModifiedTime = (DescribeLabelingJobResponse -> POSIX)
-> (DescribeLabelingJobResponse
    -> POSIX -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse DescribeLabelingJobResponse POSIX POSIX
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {POSIX
lastModifiedTime :: POSIX
$sel:lastModifiedTime:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> POSIX
lastModifiedTime} -> POSIX
lastModifiedTime) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} POSIX
a -> DescribeLabelingJobResponse
s {$sel:lastModifiedTime:DescribeLabelingJobResponse' :: POSIX
lastModifiedTime = POSIX
a} :: DescribeLabelingJobResponse) ((POSIX -> f POSIX)
 -> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse)
-> ((UTCTime -> f UTCTime) -> POSIX -> f POSIX)
-> (UTCTime -> f UTCTime)
-> DescribeLabelingJobResponse
-> f DescribeLabelingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. (UTCTime -> f UTCTime) -> POSIX -> f POSIX
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | A unique identifier for work done as part of a labeling job.
describeLabelingJobResponse_jobReferenceCode :: Lens.Lens' DescribeLabelingJobResponse Prelude.Text
describeLabelingJobResponse_jobReferenceCode :: (Text -> f Text)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_jobReferenceCode = (DescribeLabelingJobResponse -> Text)
-> (DescribeLabelingJobResponse
    -> Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse DescribeLabelingJobResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Text
jobReferenceCode :: Text
$sel:jobReferenceCode:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Text
jobReferenceCode} -> Text
jobReferenceCode) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Text
a -> DescribeLabelingJobResponse
s {$sel:jobReferenceCode:DescribeLabelingJobResponse' :: Text
jobReferenceCode = Text
a} :: DescribeLabelingJobResponse)

-- | The name assigned to the labeling job when it was created.
describeLabelingJobResponse_labelingJobName :: Lens.Lens' DescribeLabelingJobResponse Prelude.Text
describeLabelingJobResponse_labelingJobName :: (Text -> f Text)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelingJobName = (DescribeLabelingJobResponse -> Text)
-> (DescribeLabelingJobResponse
    -> Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse DescribeLabelingJobResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Text
labelingJobName :: Text
$sel:labelingJobName:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Text
labelingJobName} -> Text
labelingJobName) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Text
a -> DescribeLabelingJobResponse
s {$sel:labelingJobName:DescribeLabelingJobResponse' :: Text
labelingJobName = Text
a} :: DescribeLabelingJobResponse)

-- | The Amazon Resource Name (ARN) of the labeling job.
describeLabelingJobResponse_labelingJobArn :: Lens.Lens' DescribeLabelingJobResponse Prelude.Text
describeLabelingJobResponse_labelingJobArn :: (Text -> f Text)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_labelingJobArn = (DescribeLabelingJobResponse -> Text)
-> (DescribeLabelingJobResponse
    -> Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse DescribeLabelingJobResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Text
labelingJobArn :: Text
$sel:labelingJobArn:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Text
labelingJobArn} -> Text
labelingJobArn) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Text
a -> DescribeLabelingJobResponse
s {$sel:labelingJobArn:DescribeLabelingJobResponse' :: Text
labelingJobArn = Text
a} :: DescribeLabelingJobResponse)

-- | Input configuration information for the labeling job, such as the Amazon
-- S3 location of the data objects and the location of the manifest file
-- that describes the data objects.
describeLabelingJobResponse_inputConfig :: Lens.Lens' DescribeLabelingJobResponse LabelingJobInputConfig
describeLabelingJobResponse_inputConfig :: (LabelingJobInputConfig -> f LabelingJobInputConfig)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_inputConfig = (DescribeLabelingJobResponse -> LabelingJobInputConfig)
-> (DescribeLabelingJobResponse
    -> LabelingJobInputConfig -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     LabelingJobInputConfig
     LabelingJobInputConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {LabelingJobInputConfig
inputConfig :: LabelingJobInputConfig
$sel:inputConfig:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> LabelingJobInputConfig
inputConfig} -> LabelingJobInputConfig
inputConfig) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} LabelingJobInputConfig
a -> DescribeLabelingJobResponse
s {$sel:inputConfig:DescribeLabelingJobResponse' :: LabelingJobInputConfig
inputConfig = LabelingJobInputConfig
a} :: DescribeLabelingJobResponse)

-- | The location of the job\'s output data and the Amazon Web Services Key
-- Management Service key ID for the key used to encrypt the output data,
-- if any.
describeLabelingJobResponse_outputConfig :: Lens.Lens' DescribeLabelingJobResponse LabelingJobOutputConfig
describeLabelingJobResponse_outputConfig :: (LabelingJobOutputConfig -> f LabelingJobOutputConfig)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_outputConfig = (DescribeLabelingJobResponse -> LabelingJobOutputConfig)
-> (DescribeLabelingJobResponse
    -> LabelingJobOutputConfig -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     LabelingJobOutputConfig
     LabelingJobOutputConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {LabelingJobOutputConfig
outputConfig :: LabelingJobOutputConfig
$sel:outputConfig:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> LabelingJobOutputConfig
outputConfig} -> LabelingJobOutputConfig
outputConfig) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} LabelingJobOutputConfig
a -> DescribeLabelingJobResponse
s {$sel:outputConfig:DescribeLabelingJobResponse' :: LabelingJobOutputConfig
outputConfig = LabelingJobOutputConfig
a} :: DescribeLabelingJobResponse)

-- | The Amazon Resource Name (ARN) that Amazon SageMaker assumes to perform
-- tasks on your behalf during data labeling.
describeLabelingJobResponse_roleArn :: Lens.Lens' DescribeLabelingJobResponse Prelude.Text
describeLabelingJobResponse_roleArn :: (Text -> f Text)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_roleArn = (DescribeLabelingJobResponse -> Text)
-> (DescribeLabelingJobResponse
    -> Text -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse DescribeLabelingJobResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {Text
roleArn :: Text
$sel:roleArn:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> Text
roleArn} -> Text
roleArn) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} Text
a -> DescribeLabelingJobResponse
s {$sel:roleArn:DescribeLabelingJobResponse' :: Text
roleArn = Text
a} :: DescribeLabelingJobResponse)

-- | Configuration information required for human workers to complete a
-- labeling task.
describeLabelingJobResponse_humanTaskConfig :: Lens.Lens' DescribeLabelingJobResponse HumanTaskConfig
describeLabelingJobResponse_humanTaskConfig :: (HumanTaskConfig -> f HumanTaskConfig)
-> DescribeLabelingJobResponse -> f DescribeLabelingJobResponse
describeLabelingJobResponse_humanTaskConfig = (DescribeLabelingJobResponse -> HumanTaskConfig)
-> (DescribeLabelingJobResponse
    -> HumanTaskConfig -> DescribeLabelingJobResponse)
-> Lens
     DescribeLabelingJobResponse
     DescribeLabelingJobResponse
     HumanTaskConfig
     HumanTaskConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeLabelingJobResponse' {HumanTaskConfig
humanTaskConfig :: HumanTaskConfig
$sel:humanTaskConfig:DescribeLabelingJobResponse' :: DescribeLabelingJobResponse -> HumanTaskConfig
humanTaskConfig} -> HumanTaskConfig
humanTaskConfig) (\s :: DescribeLabelingJobResponse
s@DescribeLabelingJobResponse' {} HumanTaskConfig
a -> DescribeLabelingJobResponse
s {$sel:humanTaskConfig:DescribeLabelingJobResponse' :: HumanTaskConfig
humanTaskConfig = HumanTaskConfig
a} :: DescribeLabelingJobResponse)

instance Prelude.NFData DescribeLabelingJobResponse