{-# 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.DescribeTrainingJob
-- 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)
--
-- Returns information about a training job.
--
-- Some of the attributes below only appear if the training job
-- successfully starts. If the training job fails, @TrainingJobStatus@ is
-- @Failed@ and, depending on the @FailureReason@, attributes like
-- @TrainingStartTime@, @TrainingTimeInSeconds@, @TrainingEndTime@, and
-- @BillableTimeInSeconds@ may not be present in the response.
module Amazonka.SageMaker.DescribeTrainingJob
  ( -- * Creating a Request
    DescribeTrainingJob (..),
    newDescribeTrainingJob,

    -- * Request Lenses
    describeTrainingJob_trainingJobName,

    -- * Destructuring the Response
    DescribeTrainingJobResponse (..),
    newDescribeTrainingJobResponse,

    -- * Response Lenses
    describeTrainingJobResponse_labelingJobArn,
    describeTrainingJobResponse_failureReason,
    describeTrainingJobResponse_secondaryStatusTransitions,
    describeTrainingJobResponse_trainingEndTime,
    describeTrainingJobResponse_environment,
    describeTrainingJobResponse_billableTimeInSeconds,
    describeTrainingJobResponse_debugHookConfig,
    describeTrainingJobResponse_checkpointConfig,
    describeTrainingJobResponse_retryStrategy,
    describeTrainingJobResponse_debugRuleEvaluationStatuses,
    describeTrainingJobResponse_profilerConfig,
    describeTrainingJobResponse_profilerRuleEvaluationStatuses,
    describeTrainingJobResponse_enableNetworkIsolation,
    describeTrainingJobResponse_experimentConfig,
    describeTrainingJobResponse_lastModifiedTime,
    describeTrainingJobResponse_debugRuleConfigurations,
    describeTrainingJobResponse_enableManagedSpotTraining,
    describeTrainingJobResponse_autoMLJobArn,
    describeTrainingJobResponse_hyperParameters,
    describeTrainingJobResponse_inputDataConfig,
    describeTrainingJobResponse_profilerRuleConfigurations,
    describeTrainingJobResponse_vpcConfig,
    describeTrainingJobResponse_finalMetricDataList,
    describeTrainingJobResponse_profilingStatus,
    describeTrainingJobResponse_outputDataConfig,
    describeTrainingJobResponse_trainingStartTime,
    describeTrainingJobResponse_tuningJobArn,
    describeTrainingJobResponse_enableInterContainerTrafficEncryption,
    describeTrainingJobResponse_tensorBoardOutputConfig,
    describeTrainingJobResponse_trainingTimeInSeconds,
    describeTrainingJobResponse_roleArn,
    describeTrainingJobResponse_httpStatus,
    describeTrainingJobResponse_trainingJobName,
    describeTrainingJobResponse_trainingJobArn,
    describeTrainingJobResponse_modelArtifacts,
    describeTrainingJobResponse_trainingJobStatus,
    describeTrainingJobResponse_secondaryStatus,
    describeTrainingJobResponse_algorithmSpecification,
    describeTrainingJobResponse_resourceConfig,
    describeTrainingJobResponse_stoppingCondition,
    describeTrainingJobResponse_creationTime,
  )
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:/ 'newDescribeTrainingJob' smart constructor.
data DescribeTrainingJob = DescribeTrainingJob'
  { -- | The name of the training job.
    DescribeTrainingJob -> Text
trainingJobName :: Prelude.Text
  }
  deriving (DescribeTrainingJob -> DescribeTrainingJob -> Bool
(DescribeTrainingJob -> DescribeTrainingJob -> Bool)
-> (DescribeTrainingJob -> DescribeTrainingJob -> Bool)
-> Eq DescribeTrainingJob
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTrainingJob -> DescribeTrainingJob -> Bool
$c/= :: DescribeTrainingJob -> DescribeTrainingJob -> Bool
== :: DescribeTrainingJob -> DescribeTrainingJob -> Bool
$c== :: DescribeTrainingJob -> DescribeTrainingJob -> Bool
Prelude.Eq, ReadPrec [DescribeTrainingJob]
ReadPrec DescribeTrainingJob
Int -> ReadS DescribeTrainingJob
ReadS [DescribeTrainingJob]
(Int -> ReadS DescribeTrainingJob)
-> ReadS [DescribeTrainingJob]
-> ReadPrec DescribeTrainingJob
-> ReadPrec [DescribeTrainingJob]
-> Read DescribeTrainingJob
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTrainingJob]
$creadListPrec :: ReadPrec [DescribeTrainingJob]
readPrec :: ReadPrec DescribeTrainingJob
$creadPrec :: ReadPrec DescribeTrainingJob
readList :: ReadS [DescribeTrainingJob]
$creadList :: ReadS [DescribeTrainingJob]
readsPrec :: Int -> ReadS DescribeTrainingJob
$creadsPrec :: Int -> ReadS DescribeTrainingJob
Prelude.Read, Int -> DescribeTrainingJob -> ShowS
[DescribeTrainingJob] -> ShowS
DescribeTrainingJob -> String
(Int -> DescribeTrainingJob -> ShowS)
-> (DescribeTrainingJob -> String)
-> ([DescribeTrainingJob] -> ShowS)
-> Show DescribeTrainingJob
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTrainingJob] -> ShowS
$cshowList :: [DescribeTrainingJob] -> ShowS
show :: DescribeTrainingJob -> String
$cshow :: DescribeTrainingJob -> String
showsPrec :: Int -> DescribeTrainingJob -> ShowS
$cshowsPrec :: Int -> DescribeTrainingJob -> ShowS
Prelude.Show, (forall x. DescribeTrainingJob -> Rep DescribeTrainingJob x)
-> (forall x. Rep DescribeTrainingJob x -> DescribeTrainingJob)
-> Generic DescribeTrainingJob
forall x. Rep DescribeTrainingJob x -> DescribeTrainingJob
forall x. DescribeTrainingJob -> Rep DescribeTrainingJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep DescribeTrainingJob x -> DescribeTrainingJob
$cfrom :: forall x. DescribeTrainingJob -> Rep DescribeTrainingJob x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTrainingJob' 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:
--
-- 'trainingJobName', 'describeTrainingJob_trainingJobName' - The name of the training job.
newDescribeTrainingJob ::
  -- | 'trainingJobName'
  Prelude.Text ->
  DescribeTrainingJob
newDescribeTrainingJob :: Text -> DescribeTrainingJob
newDescribeTrainingJob Text
pTrainingJobName_ =
  DescribeTrainingJob' :: Text -> DescribeTrainingJob
DescribeTrainingJob'
    { $sel:trainingJobName:DescribeTrainingJob' :: Text
trainingJobName =
        Text
pTrainingJobName_
    }

-- | The name of the training job.
describeTrainingJob_trainingJobName :: Lens.Lens' DescribeTrainingJob Prelude.Text
describeTrainingJob_trainingJobName :: (Text -> f Text) -> DescribeTrainingJob -> f DescribeTrainingJob
describeTrainingJob_trainingJobName = (DescribeTrainingJob -> Text)
-> (DescribeTrainingJob -> Text -> DescribeTrainingJob)
-> Lens DescribeTrainingJob DescribeTrainingJob Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJob' {Text
trainingJobName :: Text
$sel:trainingJobName:DescribeTrainingJob' :: DescribeTrainingJob -> Text
trainingJobName} -> Text
trainingJobName) (\s :: DescribeTrainingJob
s@DescribeTrainingJob' {} Text
a -> DescribeTrainingJob
s {$sel:trainingJobName:DescribeTrainingJob' :: Text
trainingJobName = Text
a} :: DescribeTrainingJob)

instance Core.AWSRequest DescribeTrainingJob where
  type
    AWSResponse DescribeTrainingJob =
      DescribeTrainingJobResponse
  request :: DescribeTrainingJob -> Request DescribeTrainingJob
request = Service -> DescribeTrainingJob -> Request DescribeTrainingJob
forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON Service
defaultService
  response :: Logger
-> Service
-> Proxy DescribeTrainingJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeTrainingJob)))
response =
    (Int
 -> ResponseHeaders
 -> Object
 -> Either String (AWSResponse DescribeTrainingJob))
-> Logger
-> Service
-> Proxy DescribeTrainingJob
-> ClientResponse ClientBody
-> m (Either
        Error (ClientResponse (AWSResponse DescribeTrainingJob)))
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 Text
-> Maybe [SecondaryStatusTransition]
-> Maybe POSIX
-> Maybe (HashMap Text Text)
-> Maybe Natural
-> Maybe DebugHookConfig
-> Maybe CheckpointConfig
-> Maybe RetryStrategy
-> Maybe [DebugRuleEvaluationStatus]
-> Maybe ProfilerConfig
-> Maybe [ProfilerRuleEvaluationStatus]
-> Maybe Bool
-> Maybe ExperimentConfig
-> Maybe POSIX
-> Maybe [DebugRuleConfiguration]
-> Maybe Bool
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe (NonEmpty Channel)
-> Maybe [ProfilerRuleConfiguration]
-> Maybe VpcConfig
-> Maybe [MetricData]
-> Maybe ProfilingStatus
-> Maybe OutputDataConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe TensorBoardOutputConfig
-> Maybe Natural
-> Maybe Text
-> Int
-> Text
-> Text
-> ModelArtifacts
-> TrainingJobStatus
-> SecondaryStatus
-> AlgorithmSpecification
-> ResourceConfig
-> StoppingCondition
-> POSIX
-> DescribeTrainingJobResponse
DescribeTrainingJobResponse'
            (Maybe Text
 -> Maybe Text
 -> Maybe [SecondaryStatusTransition]
 -> Maybe POSIX
 -> Maybe (HashMap Text Text)
 -> Maybe Natural
 -> Maybe DebugHookConfig
 -> Maybe CheckpointConfig
 -> Maybe RetryStrategy
 -> Maybe [DebugRuleEvaluationStatus]
 -> Maybe ProfilerConfig
 -> Maybe [ProfilerRuleEvaluationStatus]
 -> Maybe Bool
 -> Maybe ExperimentConfig
 -> Maybe POSIX
 -> Maybe [DebugRuleConfiguration]
 -> Maybe Bool
 -> Maybe Text
 -> Maybe (HashMap Text Text)
 -> Maybe (NonEmpty Channel)
 -> Maybe [ProfilerRuleConfiguration]
 -> Maybe VpcConfig
 -> Maybe [MetricData]
 -> Maybe ProfilingStatus
 -> Maybe OutputDataConfig
 -> Maybe POSIX
 -> Maybe Text
 -> Maybe Bool
 -> Maybe TensorBoardOutputConfig
 -> Maybe Natural
 -> Maybe Text
 -> Int
 -> Text
 -> Text
 -> ModelArtifacts
 -> TrainingJobStatus
 -> SecondaryStatus
 -> AlgorithmSpecification
 -> ResourceConfig
 -> StoppingCondition
 -> POSIX
 -> DescribeTrainingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Text
      -> Maybe [SecondaryStatusTransition]
      -> Maybe POSIX
      -> Maybe (HashMap Text Text)
      -> Maybe Natural
      -> Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"LabelingJobArn")
            Either
  String
  (Maybe Text
   -> Maybe [SecondaryStatusTransition]
   -> Maybe POSIX
   -> Maybe (HashMap Text Text)
   -> Maybe Natural
   -> Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe [SecondaryStatusTransition]
      -> Maybe POSIX
      -> Maybe (HashMap Text Text)
      -> Maybe Natural
      -> Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"FailureReason")
            Either
  String
  (Maybe [SecondaryStatusTransition]
   -> Maybe POSIX
   -> Maybe (HashMap Text Text)
   -> Maybe Natural
   -> Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [SecondaryStatusTransition])
-> Either
     String
     (Maybe POSIX
      -> Maybe (HashMap Text Text)
      -> Maybe Natural
      -> Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [SecondaryStatusTransition]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"SecondaryStatusTransitions"
                            Either String (Maybe (Maybe [SecondaryStatusTransition]))
-> Maybe [SecondaryStatusTransition]
-> Either String (Maybe [SecondaryStatusTransition])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [SecondaryStatusTransition]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe POSIX
   -> Maybe (HashMap Text Text)
   -> Maybe Natural
   -> Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe Natural
      -> Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TrainingEndTime")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Maybe Natural
   -> Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe Natural
      -> Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"Environment" Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty)
            Either
  String
  (Maybe Natural
   -> Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe DebugHookConfig
      -> Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"BillableTimeInSeconds")
            Either
  String
  (Maybe DebugHookConfig
   -> Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe DebugHookConfig)
-> Either
     String
     (Maybe CheckpointConfig
      -> Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe DebugHookConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DebugHookConfig")
            Either
  String
  (Maybe CheckpointConfig
   -> Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe CheckpointConfig)
-> Either
     String
     (Maybe RetryStrategy
      -> Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe CheckpointConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"CheckpointConfig")
            Either
  String
  (Maybe RetryStrategy
   -> Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe RetryStrategy)
-> Either
     String
     (Maybe [DebugRuleEvaluationStatus]
      -> Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe RetryStrategy)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"RetryStrategy")
            Either
  String
  (Maybe [DebugRuleEvaluationStatus]
   -> Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [DebugRuleEvaluationStatus])
-> Either
     String
     (Maybe ProfilerConfig
      -> Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [DebugRuleEvaluationStatus]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DebugRuleEvaluationStatuses"
                            Either String (Maybe (Maybe [DebugRuleEvaluationStatus]))
-> Maybe [DebugRuleEvaluationStatus]
-> Either String (Maybe [DebugRuleEvaluationStatus])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DebugRuleEvaluationStatus]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe ProfilerConfig
   -> Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe ProfilerConfig)
-> Either
     String
     (Maybe [ProfilerRuleEvaluationStatus]
      -> Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ProfilerConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProfilerConfig")
            Either
  String
  (Maybe [ProfilerRuleEvaluationStatus]
   -> Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [ProfilerRuleEvaluationStatus])
-> Either
     String
     (Maybe Bool
      -> Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [ProfilerRuleEvaluationStatus]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProfilerRuleEvaluationStatuses"
                            Either String (Maybe (Maybe [ProfilerRuleEvaluationStatus]))
-> Maybe [ProfilerRuleEvaluationStatus]
-> Either String (Maybe [ProfilerRuleEvaluationStatus])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [ProfilerRuleEvaluationStatus]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Bool
   -> Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe ExperimentConfig
      -> Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EnableNetworkIsolation")
            Either
  String
  (Maybe ExperimentConfig
   -> Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe ExperimentConfig)
-> Either
     String
     (Maybe POSIX
      -> Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ExperimentConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ExperimentConfig")
            Either
  String
  (Maybe POSIX
   -> Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe [DebugRuleConfiguration]
      -> Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"LastModifiedTime")
            Either
  String
  (Maybe [DebugRuleConfiguration]
   -> Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [DebugRuleConfiguration])
-> Either
     String
     (Maybe Bool
      -> Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text -> Either String (Maybe (Maybe [DebugRuleConfiguration]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"DebugRuleConfigurations"
                            Either String (Maybe (Maybe [DebugRuleConfiguration]))
-> Maybe [DebugRuleConfiguration]
-> Either String (Maybe [DebugRuleConfiguration])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [DebugRuleConfiguration]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe Bool
   -> Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe Text
      -> Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EnableManagedSpotTraining")
            Either
  String
  (Maybe Text
   -> Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe (HashMap Text Text)
      -> Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"AutoMLJobArn")
            Either
  String
  (Maybe (HashMap Text Text)
   -> Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe (HashMap Text Text))
-> Either
     String
     (Maybe (NonEmpty Channel)
      -> Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Either String (Maybe (Maybe (HashMap Text Text)))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"HyperParameters"
                            Either String (Maybe (Maybe (HashMap Text Text)))
-> Maybe (HashMap Text Text)
-> Either String (Maybe (HashMap Text Text))
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe (HashMap Text Text)
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe (NonEmpty Channel)
   -> Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe (NonEmpty Channel))
-> Either
     String
     (Maybe [ProfilerRuleConfiguration]
      -> Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe (NonEmpty Channel))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"InputDataConfig")
            Either
  String
  (Maybe [ProfilerRuleConfiguration]
   -> Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [ProfilerRuleConfiguration])
-> Either
     String
     (Maybe VpcConfig
      -> Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object
-> Text
-> Either String (Maybe (Maybe [ProfilerRuleConfiguration]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProfilerRuleConfigurations"
                            Either String (Maybe (Maybe [ProfilerRuleConfiguration]))
-> Maybe [ProfilerRuleConfiguration]
-> Either String (Maybe [ProfilerRuleConfiguration])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [ProfilerRuleConfiguration]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe VpcConfig
   -> Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe VpcConfig)
-> Either
     String
     (Maybe [MetricData]
      -> Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe VpcConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"VpcConfig")
            Either
  String
  (Maybe [MetricData]
   -> Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe [MetricData])
-> Either
     String
     (Maybe ProfilingStatus
      -> Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> ( Object
x Object -> Text -> Either String (Maybe (Maybe [MetricData]))
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"FinalMetricDataList"
                            Either String (Maybe (Maybe [MetricData]))
-> Maybe [MetricData] -> Either String (Maybe [MetricData])
forall (f :: * -> *) a. Functor f => f (Maybe a) -> a -> f a
Core..!@ Maybe [MetricData]
forall a. Monoid a => a
Prelude.mempty
                        )
            Either
  String
  (Maybe ProfilingStatus
   -> Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe ProfilingStatus)
-> Either
     String
     (Maybe OutputDataConfig
      -> Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe ProfilingStatus)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"ProfilingStatus")
            Either
  String
  (Maybe OutputDataConfig
   -> Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe OutputDataConfig)
-> Either
     String
     (Maybe POSIX
      -> Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe OutputDataConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"OutputDataConfig")
            Either
  String
  (Maybe POSIX
   -> Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe POSIX)
-> Either
     String
     (Maybe Text
      -> Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe POSIX)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TrainingStartTime")
            Either
  String
  (Maybe Text
   -> Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Maybe Bool
      -> Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"TuningJobArn")
            Either
  String
  (Maybe Bool
   -> Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Bool)
-> Either
     String
     (Maybe TensorBoardOutputConfig
      -> Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Bool)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"EnableInterContainerTrafficEncryption")
            Either
  String
  (Maybe TensorBoardOutputConfig
   -> Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe TensorBoardOutputConfig)
-> Either
     String
     (Maybe Natural
      -> Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe TensorBoardOutputConfig)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TensorBoardOutputConfig")
            Either
  String
  (Maybe Natural
   -> Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Natural)
-> Either
     String
     (Maybe Text
      -> Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String (Maybe Natural)
forall a. FromJSON a => Object -> Text -> Either String (Maybe a)
Core..?> Text
"TrainingTimeInSeconds")
            Either
  String
  (Maybe Text
   -> Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String (Maybe Text)
-> Either
     String
     (Int
      -> Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"RoleArn")
            Either
  String
  (Int
   -> Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String Int
-> Either
     String
     (Text
      -> Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
  (Text
   -> Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String Text
-> Either
     String
     (Text
      -> ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"TrainingJobName")
            Either
  String
  (Text
   -> ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String Text
-> Either
     String
     (ModelArtifacts
      -> TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
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
"TrainingJobArn")
            Either
  String
  (ModelArtifacts
   -> TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String ModelArtifacts
-> Either
     String
     (TrainingJobStatus
      -> SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String ModelArtifacts
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"ModelArtifacts")
            Either
  String
  (TrainingJobStatus
   -> SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String TrainingJobStatus
-> Either
     String
     (SecondaryStatus
      -> AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String TrainingJobStatus
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"TrainingJobStatus")
            Either
  String
  (SecondaryStatus
   -> AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String SecondaryStatus
-> Either
     String
     (AlgorithmSpecification
      -> ResourceConfig
      -> StoppingCondition
      -> POSIX
      -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String SecondaryStatus
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"SecondaryStatus")
            Either
  String
  (AlgorithmSpecification
   -> ResourceConfig
   -> StoppingCondition
   -> POSIX
   -> DescribeTrainingJobResponse)
-> Either String AlgorithmSpecification
-> Either
     String
     (ResourceConfig
      -> StoppingCondition -> POSIX -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String AlgorithmSpecification
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"AlgorithmSpecification")
            Either
  String
  (ResourceConfig
   -> StoppingCondition -> POSIX -> DescribeTrainingJobResponse)
-> Either String ResourceConfig
-> Either
     String (StoppingCondition -> POSIX -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String ResourceConfig
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"ResourceConfig")
            Either
  String (StoppingCondition -> POSIX -> DescribeTrainingJobResponse)
-> Either String StoppingCondition
-> Either String (POSIX -> DescribeTrainingJobResponse)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x Object -> Text -> Either String StoppingCondition
forall a. FromJSON a => Object -> Text -> Either String a
Core..:> Text
"StoppingCondition")
            Either String (POSIX -> DescribeTrainingJobResponse)
-> Either String POSIX -> Either String DescribeTrainingJobResponse
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")
      )

instance Prelude.Hashable DescribeTrainingJob

instance Prelude.NFData DescribeTrainingJob

instance Core.ToHeaders DescribeTrainingJob where
  toHeaders :: DescribeTrainingJob -> ResponseHeaders
toHeaders =
    ResponseHeaders -> DescribeTrainingJob -> 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.DescribeTrainingJob" ::
                          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 DescribeTrainingJob where
  toJSON :: DescribeTrainingJob -> Value
toJSON DescribeTrainingJob' {Text
trainingJobName :: Text
$sel:trainingJobName:DescribeTrainingJob' :: DescribeTrainingJob -> 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
"TrainingJobName" Text -> Text -> Pair
forall kv v. (KeyValue kv, ToJSON v) => Text -> v -> kv
Core..= Text
trainingJobName)
          ]
      )

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

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

-- | /See:/ 'newDescribeTrainingJobResponse' smart constructor.
data DescribeTrainingJobResponse = DescribeTrainingJobResponse'
  { -- | The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth
    -- labeling job that created the transform or training job.
    DescribeTrainingJobResponse -> Maybe Text
labelingJobArn :: Prelude.Maybe Prelude.Text,
    -- | If the training job failed, the reason it failed.
    DescribeTrainingJobResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | A history of all of the secondary statuses that the training job has
    -- transitioned through.
    DescribeTrainingJobResponse -> Maybe [SecondaryStatusTransition]
secondaryStatusTransitions :: Prelude.Maybe [SecondaryStatusTransition],
    -- | Indicates the time when the training job ends on training instances. You
    -- are billed for the time interval between the value of
    -- @TrainingStartTime@ and this time. For successful jobs and stopped jobs,
    -- this is the time after model artifacts are uploaded. For failed jobs,
    -- this is the time when Amazon SageMaker detects a job failure.
    DescribeTrainingJobResponse -> Maybe POSIX
trainingEndTime :: Prelude.Maybe Core.POSIX,
    -- | The environment variables to set in the Docker container.
    DescribeTrainingJobResponse -> Maybe (HashMap Text Text)
environment :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | The billable time in seconds. Billable time refers to the absolute
    -- wall-clock time.
    --
    -- Multiply @BillableTimeInSeconds@ by the number of instances
    -- (@InstanceCount@) in your training cluster to get the total compute time
    -- SageMaker will bill you if you run distributed training. The formula is
    -- as follows: @BillableTimeInSeconds * InstanceCount@ .
    --
    -- You can calculate the savings from using managed spot training using the
    -- formula @(1 - BillableTimeInSeconds \/ TrainingTimeInSeconds) * 100@.
    -- For example, if @BillableTimeInSeconds@ is 100 and
    -- @TrainingTimeInSeconds@ is 500, the savings is 80%.
    DescribeTrainingJobResponse -> Maybe Natural
billableTimeInSeconds :: Prelude.Maybe Prelude.Natural,
    DescribeTrainingJobResponse -> Maybe DebugHookConfig
debugHookConfig :: Prelude.Maybe DebugHookConfig,
    DescribeTrainingJobResponse -> Maybe CheckpointConfig
checkpointConfig :: Prelude.Maybe CheckpointConfig,
    -- | The number of times to retry the job when the job fails due to an
    -- @InternalServerError@.
    DescribeTrainingJobResponse -> Maybe RetryStrategy
retryStrategy :: Prelude.Maybe RetryStrategy,
    -- | Evaluation status of Debugger rules for debugging on a training job.
    DescribeTrainingJobResponse -> Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses :: Prelude.Maybe [DebugRuleEvaluationStatus],
    DescribeTrainingJobResponse -> Maybe ProfilerConfig
profilerConfig :: Prelude.Maybe ProfilerConfig,
    -- | Evaluation status of Debugger rules for profiling on a training job.
    DescribeTrainingJobResponse -> Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses :: Prelude.Maybe [ProfilerRuleEvaluationStatus],
    -- | If you want to allow inbound or outbound network calls, except for calls
    -- between peers within a training cluster for distributed training, choose
    -- @True@. If you enable network isolation for training jobs that are
    -- configured to use a VPC, Amazon SageMaker downloads and uploads customer
    -- data and model artifacts through the specified VPC, but the training
    -- container does not have network access.
    DescribeTrainingJobResponse -> Maybe Bool
enableNetworkIsolation :: Prelude.Maybe Prelude.Bool,
    DescribeTrainingJobResponse -> Maybe ExperimentConfig
experimentConfig :: Prelude.Maybe ExperimentConfig,
    -- | A timestamp that indicates when the status of the training job was last
    -- modified.
    DescribeTrainingJobResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Core.POSIX,
    -- | Configuration information for Debugger rules for debugging output
    -- tensors.
    DescribeTrainingJobResponse -> Maybe [DebugRuleConfiguration]
debugRuleConfigurations :: Prelude.Maybe [DebugRuleConfiguration],
    -- | A Boolean indicating whether managed spot training is enabled (@True@)
    -- or not (@False@).
    DescribeTrainingJobResponse -> Maybe Bool
enableManagedSpotTraining :: Prelude.Maybe Prelude.Bool,
    -- | The Amazon Resource Name (ARN) of an AutoML job.
    DescribeTrainingJobResponse -> Maybe Text
autoMLJobArn :: Prelude.Maybe Prelude.Text,
    -- | Algorithm-specific parameters.
    DescribeTrainingJobResponse -> Maybe (HashMap Text Text)
hyperParameters :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
    -- | An array of @Channel@ objects that describes each data input channel.
    DescribeTrainingJobResponse -> Maybe (NonEmpty Channel)
inputDataConfig :: Prelude.Maybe (Prelude.NonEmpty Channel),
    -- | Configuration information for Debugger rules for profiling system and
    -- framework metrics.
    DescribeTrainingJobResponse -> Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations :: Prelude.Maybe [ProfilerRuleConfiguration],
    -- | A VpcConfig object that specifies the VPC that this training job has
    -- access to. For more information, see
    -- <https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html Protect Training Jobs by Using an Amazon Virtual Private Cloud>.
    DescribeTrainingJobResponse -> Maybe VpcConfig
vpcConfig :: Prelude.Maybe VpcConfig,
    -- | A collection of @MetricData@ objects that specify the names, values, and
    -- dates and times that the training algorithm emitted to Amazon
    -- CloudWatch.
    DescribeTrainingJobResponse -> Maybe [MetricData]
finalMetricDataList :: Prelude.Maybe [MetricData],
    -- | Profiling status of a training job.
    DescribeTrainingJobResponse -> Maybe ProfilingStatus
profilingStatus :: Prelude.Maybe ProfilingStatus,
    -- | The S3 path where model artifacts that you configured when creating the
    -- job are stored. Amazon SageMaker creates subfolders for model artifacts.
    DescribeTrainingJobResponse -> Maybe OutputDataConfig
outputDataConfig :: Prelude.Maybe OutputDataConfig,
    -- | Indicates the time when the training job starts on training instances.
    -- You are billed for the time interval between this time and the value of
    -- @TrainingEndTime@. The start time in CloudWatch Logs might be later than
    -- this time. The difference is due to the time it takes to download the
    -- training data and to the size of the training container.
    DescribeTrainingJobResponse -> Maybe POSIX
trainingStartTime :: Prelude.Maybe Core.POSIX,
    -- | The Amazon Resource Name (ARN) of the associated hyperparameter tuning
    -- job if the training job was launched by a hyperparameter tuning job.
    DescribeTrainingJobResponse -> Maybe Text
tuningJobArn :: Prelude.Maybe Prelude.Text,
    -- | To encrypt all communications between ML compute instances in
    -- distributed training, choose @True@. Encryption provides greater
    -- security for distributed training, but training might take longer. How
    -- long it takes depends on the amount of communication between compute
    -- instances, especially if you use a deep learning algorithms in
    -- distributed training.
    DescribeTrainingJobResponse -> Maybe Bool
enableInterContainerTrafficEncryption :: Prelude.Maybe Prelude.Bool,
    DescribeTrainingJobResponse -> Maybe TensorBoardOutputConfig
tensorBoardOutputConfig :: Prelude.Maybe TensorBoardOutputConfig,
    -- | The training time in seconds.
    DescribeTrainingJobResponse -> Maybe Natural
trainingTimeInSeconds :: Prelude.Maybe Prelude.Natural,
    -- | The Amazon Web Services Identity and Access Management (IAM) role
    -- configured for the training job.
    DescribeTrainingJobResponse -> Maybe Text
roleArn :: Prelude.Maybe Prelude.Text,
    -- | The response's http status code.
    DescribeTrainingJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | Name of the model training job.
    DescribeTrainingJobResponse -> Text
trainingJobName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the training job.
    DescribeTrainingJobResponse -> Text
trainingJobArn :: Prelude.Text,
    -- | Information about the Amazon S3 location that is configured for storing
    -- model artifacts.
    DescribeTrainingJobResponse -> ModelArtifacts
modelArtifacts :: ModelArtifacts,
    -- | The status of the training job.
    --
    -- Amazon SageMaker provides the following training job statuses:
    --
    -- -   @InProgress@ - The training is in progress.
    --
    -- -   @Completed@ - The training job has completed.
    --
    -- -   @Failed@ - The training job has failed. To see the reason for the
    --     failure, see the @FailureReason@ field in the response to a
    --     @DescribeTrainingJobResponse@ call.
    --
    -- -   @Stopping@ - The training job is stopping.
    --
    -- -   @Stopped@ - The training job has stopped.
    --
    -- For more detailed information, see @SecondaryStatus@.
    DescribeTrainingJobResponse -> TrainingJobStatus
trainingJobStatus :: TrainingJobStatus,
    -- | Provides detailed information about the state of the training job. For
    -- detailed information on the secondary status of the training job, see
    -- @StatusMessage@ under SecondaryStatusTransition.
    --
    -- Amazon SageMaker provides primary statuses and secondary statuses that
    -- apply to each of them:
    --
    -- [InProgress]
    --     -   @Starting@ - Starting the training job.
    --
    --     -   @Downloading@ - An optional stage for algorithms that support
    --         @File@ training input mode. It indicates that data is being
    --         downloaded to the ML storage volumes.
    --
    --     -   @Training@ - Training is in progress.
    --
    --     -   @Interrupted@ - The job stopped because the managed spot
    --         training instances were interrupted.
    --
    --     -   @Uploading@ - Training is complete and the model artifacts are
    --         being uploaded to the S3 location.
    --
    -- [Completed]
    --     -   @Completed@ - The training job has completed.
    --
    -- [Failed]
    --     -   @Failed@ - The training job has failed. The reason for the
    --         failure is returned in the @FailureReason@ field of
    --         @DescribeTrainingJobResponse@.
    --
    -- [Stopped]
    --     -   @MaxRuntimeExceeded@ - The job stopped because it exceeded the
    --         maximum allowed runtime.
    --
    --     -   @MaxWaitTimeExceeded@ - The job stopped because it exceeded the
    --         maximum allowed wait time.
    --
    --     -   @Stopped@ - The training job has stopped.
    --
    -- [Stopping]
    --     -   @Stopping@ - Stopping the training job.
    --
    -- Valid values for @SecondaryStatus@ are subject to change.
    --
    -- We no longer support the following secondary statuses:
    --
    -- -   @LaunchingMLInstances@
    --
    -- -   @PreparingTraining@
    --
    -- -   @DownloadingTrainingImage@
    DescribeTrainingJobResponse -> SecondaryStatus
secondaryStatus :: SecondaryStatus,
    -- | Information about the algorithm used for training, and algorithm
    -- metadata.
    DescribeTrainingJobResponse -> AlgorithmSpecification
algorithmSpecification :: AlgorithmSpecification,
    -- | Resources, including ML compute instances and ML storage volumes, that
    -- are configured for model training.
    DescribeTrainingJobResponse -> ResourceConfig
resourceConfig :: ResourceConfig,
    -- | Specifies a limit to how long a model training job can run. It also
    -- specifies how long a managed Spot training job has to complete. When the
    -- job reaches the time limit, Amazon SageMaker ends the training job. Use
    -- this API to cap model training costs.
    --
    -- To stop a job, Amazon SageMaker sends the algorithm the @SIGTERM@
    -- signal, which delays job termination for 120 seconds. Algorithms can use
    -- this 120-second window to save the model artifacts, so the results of
    -- training are not lost.
    DescribeTrainingJobResponse -> StoppingCondition
stoppingCondition :: StoppingCondition,
    -- | A timestamp that indicates when the training job was created.
    DescribeTrainingJobResponse -> POSIX
creationTime :: Core.POSIX
  }
  deriving (DescribeTrainingJobResponse -> DescribeTrainingJobResponse -> Bool
(DescribeTrainingJobResponse
 -> DescribeTrainingJobResponse -> Bool)
-> (DescribeTrainingJobResponse
    -> DescribeTrainingJobResponse -> Bool)
-> Eq DescribeTrainingJobResponse
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeTrainingJobResponse -> DescribeTrainingJobResponse -> Bool
$c/= :: DescribeTrainingJobResponse -> DescribeTrainingJobResponse -> Bool
== :: DescribeTrainingJobResponse -> DescribeTrainingJobResponse -> Bool
$c== :: DescribeTrainingJobResponse -> DescribeTrainingJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeTrainingJobResponse]
ReadPrec DescribeTrainingJobResponse
Int -> ReadS DescribeTrainingJobResponse
ReadS [DescribeTrainingJobResponse]
(Int -> ReadS DescribeTrainingJobResponse)
-> ReadS [DescribeTrainingJobResponse]
-> ReadPrec DescribeTrainingJobResponse
-> ReadPrec [DescribeTrainingJobResponse]
-> Read DescribeTrainingJobResponse
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeTrainingJobResponse]
$creadListPrec :: ReadPrec [DescribeTrainingJobResponse]
readPrec :: ReadPrec DescribeTrainingJobResponse
$creadPrec :: ReadPrec DescribeTrainingJobResponse
readList :: ReadS [DescribeTrainingJobResponse]
$creadList :: ReadS [DescribeTrainingJobResponse]
readsPrec :: Int -> ReadS DescribeTrainingJobResponse
$creadsPrec :: Int -> ReadS DescribeTrainingJobResponse
Prelude.Read, Int -> DescribeTrainingJobResponse -> ShowS
[DescribeTrainingJobResponse] -> ShowS
DescribeTrainingJobResponse -> String
(Int -> DescribeTrainingJobResponse -> ShowS)
-> (DescribeTrainingJobResponse -> String)
-> ([DescribeTrainingJobResponse] -> ShowS)
-> Show DescribeTrainingJobResponse
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeTrainingJobResponse] -> ShowS
$cshowList :: [DescribeTrainingJobResponse] -> ShowS
show :: DescribeTrainingJobResponse -> String
$cshow :: DescribeTrainingJobResponse -> String
showsPrec :: Int -> DescribeTrainingJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeTrainingJobResponse -> ShowS
Prelude.Show, (forall x.
 DescribeTrainingJobResponse -> Rep DescribeTrainingJobResponse x)
-> (forall x.
    Rep DescribeTrainingJobResponse x -> DescribeTrainingJobResponse)
-> Generic DescribeTrainingJobResponse
forall x.
Rep DescribeTrainingJobResponse x -> DescribeTrainingJobResponse
forall x.
DescribeTrainingJobResponse -> Rep DescribeTrainingJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeTrainingJobResponse x -> DescribeTrainingJobResponse
$cfrom :: forall x.
DescribeTrainingJobResponse -> Rep DescribeTrainingJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeTrainingJobResponse' 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:
--
-- 'labelingJobArn', 'describeTrainingJobResponse_labelingJobArn' - The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth
-- labeling job that created the transform or training job.
--
-- 'failureReason', 'describeTrainingJobResponse_failureReason' - If the training job failed, the reason it failed.
--
-- 'secondaryStatusTransitions', 'describeTrainingJobResponse_secondaryStatusTransitions' - A history of all of the secondary statuses that the training job has
-- transitioned through.
--
-- 'trainingEndTime', 'describeTrainingJobResponse_trainingEndTime' - Indicates the time when the training job ends on training instances. You
-- are billed for the time interval between the value of
-- @TrainingStartTime@ and this time. For successful jobs and stopped jobs,
-- this is the time after model artifacts are uploaded. For failed jobs,
-- this is the time when Amazon SageMaker detects a job failure.
--
-- 'environment', 'describeTrainingJobResponse_environment' - The environment variables to set in the Docker container.
--
-- 'billableTimeInSeconds', 'describeTrainingJobResponse_billableTimeInSeconds' - The billable time in seconds. Billable time refers to the absolute
-- wall-clock time.
--
-- Multiply @BillableTimeInSeconds@ by the number of instances
-- (@InstanceCount@) in your training cluster to get the total compute time
-- SageMaker will bill you if you run distributed training. The formula is
-- as follows: @BillableTimeInSeconds * InstanceCount@ .
--
-- You can calculate the savings from using managed spot training using the
-- formula @(1 - BillableTimeInSeconds \/ TrainingTimeInSeconds) * 100@.
-- For example, if @BillableTimeInSeconds@ is 100 and
-- @TrainingTimeInSeconds@ is 500, the savings is 80%.
--
-- 'debugHookConfig', 'describeTrainingJobResponse_debugHookConfig' - Undocumented member.
--
-- 'checkpointConfig', 'describeTrainingJobResponse_checkpointConfig' - Undocumented member.
--
-- 'retryStrategy', 'describeTrainingJobResponse_retryStrategy' - The number of times to retry the job when the job fails due to an
-- @InternalServerError@.
--
-- 'debugRuleEvaluationStatuses', 'describeTrainingJobResponse_debugRuleEvaluationStatuses' - Evaluation status of Debugger rules for debugging on a training job.
--
-- 'profilerConfig', 'describeTrainingJobResponse_profilerConfig' - Undocumented member.
--
-- 'profilerRuleEvaluationStatuses', 'describeTrainingJobResponse_profilerRuleEvaluationStatuses' - Evaluation status of Debugger rules for profiling on a training job.
--
-- 'enableNetworkIsolation', 'describeTrainingJobResponse_enableNetworkIsolation' - If you want to allow inbound or outbound network calls, except for calls
-- between peers within a training cluster for distributed training, choose
-- @True@. If you enable network isolation for training jobs that are
-- configured to use a VPC, Amazon SageMaker downloads and uploads customer
-- data and model artifacts through the specified VPC, but the training
-- container does not have network access.
--
-- 'experimentConfig', 'describeTrainingJobResponse_experimentConfig' - Undocumented member.
--
-- 'lastModifiedTime', 'describeTrainingJobResponse_lastModifiedTime' - A timestamp that indicates when the status of the training job was last
-- modified.
--
-- 'debugRuleConfigurations', 'describeTrainingJobResponse_debugRuleConfigurations' - Configuration information for Debugger rules for debugging output
-- tensors.
--
-- 'enableManagedSpotTraining', 'describeTrainingJobResponse_enableManagedSpotTraining' - A Boolean indicating whether managed spot training is enabled (@True@)
-- or not (@False@).
--
-- 'autoMLJobArn', 'describeTrainingJobResponse_autoMLJobArn' - The Amazon Resource Name (ARN) of an AutoML job.
--
-- 'hyperParameters', 'describeTrainingJobResponse_hyperParameters' - Algorithm-specific parameters.
--
-- 'inputDataConfig', 'describeTrainingJobResponse_inputDataConfig' - An array of @Channel@ objects that describes each data input channel.
--
-- 'profilerRuleConfigurations', 'describeTrainingJobResponse_profilerRuleConfigurations' - Configuration information for Debugger rules for profiling system and
-- framework metrics.
--
-- 'vpcConfig', 'describeTrainingJobResponse_vpcConfig' - A VpcConfig object that specifies the VPC that this training job has
-- access to. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html Protect Training Jobs by Using an Amazon Virtual Private Cloud>.
--
-- 'finalMetricDataList', 'describeTrainingJobResponse_finalMetricDataList' - A collection of @MetricData@ objects that specify the names, values, and
-- dates and times that the training algorithm emitted to Amazon
-- CloudWatch.
--
-- 'profilingStatus', 'describeTrainingJobResponse_profilingStatus' - Profiling status of a training job.
--
-- 'outputDataConfig', 'describeTrainingJobResponse_outputDataConfig' - The S3 path where model artifacts that you configured when creating the
-- job are stored. Amazon SageMaker creates subfolders for model artifacts.
--
-- 'trainingStartTime', 'describeTrainingJobResponse_trainingStartTime' - Indicates the time when the training job starts on training instances.
-- You are billed for the time interval between this time and the value of
-- @TrainingEndTime@. The start time in CloudWatch Logs might be later than
-- this time. The difference is due to the time it takes to download the
-- training data and to the size of the training container.
--
-- 'tuningJobArn', 'describeTrainingJobResponse_tuningJobArn' - The Amazon Resource Name (ARN) of the associated hyperparameter tuning
-- job if the training job was launched by a hyperparameter tuning job.
--
-- 'enableInterContainerTrafficEncryption', 'describeTrainingJobResponse_enableInterContainerTrafficEncryption' - To encrypt all communications between ML compute instances in
-- distributed training, choose @True@. Encryption provides greater
-- security for distributed training, but training might take longer. How
-- long it takes depends on the amount of communication between compute
-- instances, especially if you use a deep learning algorithms in
-- distributed training.
--
-- 'tensorBoardOutputConfig', 'describeTrainingJobResponse_tensorBoardOutputConfig' - Undocumented member.
--
-- 'trainingTimeInSeconds', 'describeTrainingJobResponse_trainingTimeInSeconds' - The training time in seconds.
--
-- 'roleArn', 'describeTrainingJobResponse_roleArn' - The Amazon Web Services Identity and Access Management (IAM) role
-- configured for the training job.
--
-- 'httpStatus', 'describeTrainingJobResponse_httpStatus' - The response's http status code.
--
-- 'trainingJobName', 'describeTrainingJobResponse_trainingJobName' - Name of the model training job.
--
-- 'trainingJobArn', 'describeTrainingJobResponse_trainingJobArn' - The Amazon Resource Name (ARN) of the training job.
--
-- 'modelArtifacts', 'describeTrainingJobResponse_modelArtifacts' - Information about the Amazon S3 location that is configured for storing
-- model artifacts.
--
-- 'trainingJobStatus', 'describeTrainingJobResponse_trainingJobStatus' - The status of the training job.
--
-- Amazon SageMaker provides the following training job statuses:
--
-- -   @InProgress@ - The training is in progress.
--
-- -   @Completed@ - The training job has completed.
--
-- -   @Failed@ - The training job has failed. To see the reason for the
--     failure, see the @FailureReason@ field in the response to a
--     @DescribeTrainingJobResponse@ call.
--
-- -   @Stopping@ - The training job is stopping.
--
-- -   @Stopped@ - The training job has stopped.
--
-- For more detailed information, see @SecondaryStatus@.
--
-- 'secondaryStatus', 'describeTrainingJobResponse_secondaryStatus' - Provides detailed information about the state of the training job. For
-- detailed information on the secondary status of the training job, see
-- @StatusMessage@ under SecondaryStatusTransition.
--
-- Amazon SageMaker provides primary statuses and secondary statuses that
-- apply to each of them:
--
-- [InProgress]
--     -   @Starting@ - Starting the training job.
--
--     -   @Downloading@ - An optional stage for algorithms that support
--         @File@ training input mode. It indicates that data is being
--         downloaded to the ML storage volumes.
--
--     -   @Training@ - Training is in progress.
--
--     -   @Interrupted@ - The job stopped because the managed spot
--         training instances were interrupted.
--
--     -   @Uploading@ - Training is complete and the model artifacts are
--         being uploaded to the S3 location.
--
-- [Completed]
--     -   @Completed@ - The training job has completed.
--
-- [Failed]
--     -   @Failed@ - The training job has failed. The reason for the
--         failure is returned in the @FailureReason@ field of
--         @DescribeTrainingJobResponse@.
--
-- [Stopped]
--     -   @MaxRuntimeExceeded@ - The job stopped because it exceeded the
--         maximum allowed runtime.
--
--     -   @MaxWaitTimeExceeded@ - The job stopped because it exceeded the
--         maximum allowed wait time.
--
--     -   @Stopped@ - The training job has stopped.
--
-- [Stopping]
--     -   @Stopping@ - Stopping the training job.
--
-- Valid values for @SecondaryStatus@ are subject to change.
--
-- We no longer support the following secondary statuses:
--
-- -   @LaunchingMLInstances@
--
-- -   @PreparingTraining@
--
-- -   @DownloadingTrainingImage@
--
-- 'algorithmSpecification', 'describeTrainingJobResponse_algorithmSpecification' - Information about the algorithm used for training, and algorithm
-- metadata.
--
-- 'resourceConfig', 'describeTrainingJobResponse_resourceConfig' - Resources, including ML compute instances and ML storage volumes, that
-- are configured for model training.
--
-- 'stoppingCondition', 'describeTrainingJobResponse_stoppingCondition' - Specifies a limit to how long a model training job can run. It also
-- specifies how long a managed Spot training job has to complete. When the
-- job reaches the time limit, Amazon SageMaker ends the training job. Use
-- this API to cap model training costs.
--
-- To stop a job, Amazon SageMaker sends the algorithm the @SIGTERM@
-- signal, which delays job termination for 120 seconds. Algorithms can use
-- this 120-second window to save the model artifacts, so the results of
-- training are not lost.
--
-- 'creationTime', 'describeTrainingJobResponse_creationTime' - A timestamp that indicates when the training job was created.
newDescribeTrainingJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'trainingJobName'
  Prelude.Text ->
  -- | 'trainingJobArn'
  Prelude.Text ->
  -- | 'modelArtifacts'
  ModelArtifacts ->
  -- | 'trainingJobStatus'
  TrainingJobStatus ->
  -- | 'secondaryStatus'
  SecondaryStatus ->
  -- | 'algorithmSpecification'
  AlgorithmSpecification ->
  -- | 'resourceConfig'
  ResourceConfig ->
  -- | 'stoppingCondition'
  StoppingCondition ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  DescribeTrainingJobResponse
newDescribeTrainingJobResponse :: Int
-> Text
-> Text
-> ModelArtifacts
-> TrainingJobStatus
-> SecondaryStatus
-> AlgorithmSpecification
-> ResourceConfig
-> StoppingCondition
-> UTCTime
-> DescribeTrainingJobResponse
newDescribeTrainingJobResponse
  Int
pHttpStatus_
  Text
pTrainingJobName_
  Text
pTrainingJobArn_
  ModelArtifacts
pModelArtifacts_
  TrainingJobStatus
pTrainingJobStatus_
  SecondaryStatus
pSecondaryStatus_
  AlgorithmSpecification
pAlgorithmSpecification_
  ResourceConfig
pResourceConfig_
  StoppingCondition
pStoppingCondition_
  UTCTime
pCreationTime_ =
    DescribeTrainingJobResponse' :: Maybe Text
-> Maybe Text
-> Maybe [SecondaryStatusTransition]
-> Maybe POSIX
-> Maybe (HashMap Text Text)
-> Maybe Natural
-> Maybe DebugHookConfig
-> Maybe CheckpointConfig
-> Maybe RetryStrategy
-> Maybe [DebugRuleEvaluationStatus]
-> Maybe ProfilerConfig
-> Maybe [ProfilerRuleEvaluationStatus]
-> Maybe Bool
-> Maybe ExperimentConfig
-> Maybe POSIX
-> Maybe [DebugRuleConfiguration]
-> Maybe Bool
-> Maybe Text
-> Maybe (HashMap Text Text)
-> Maybe (NonEmpty Channel)
-> Maybe [ProfilerRuleConfiguration]
-> Maybe VpcConfig
-> Maybe [MetricData]
-> Maybe ProfilingStatus
-> Maybe OutputDataConfig
-> Maybe POSIX
-> Maybe Text
-> Maybe Bool
-> Maybe TensorBoardOutputConfig
-> Maybe Natural
-> Maybe Text
-> Int
-> Text
-> Text
-> ModelArtifacts
-> TrainingJobStatus
-> SecondaryStatus
-> AlgorithmSpecification
-> ResourceConfig
-> StoppingCondition
-> POSIX
-> DescribeTrainingJobResponse
DescribeTrainingJobResponse'
      { $sel:labelingJobArn:DescribeTrainingJobResponse' :: Maybe Text
labelingJobArn =
          Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:DescribeTrainingJobResponse' :: Maybe Text
failureReason = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:secondaryStatusTransitions:DescribeTrainingJobResponse' :: Maybe [SecondaryStatusTransition]
secondaryStatusTransitions = Maybe [SecondaryStatusTransition]
forall a. Maybe a
Prelude.Nothing,
        $sel:trainingEndTime:DescribeTrainingJobResponse' :: Maybe POSIX
trainingEndTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
        $sel:environment:DescribeTrainingJobResponse' :: Maybe (HashMap Text Text)
environment = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:billableTimeInSeconds:DescribeTrainingJobResponse' :: Maybe Natural
billableTimeInSeconds = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
        $sel:debugHookConfig:DescribeTrainingJobResponse' :: Maybe DebugHookConfig
debugHookConfig = Maybe DebugHookConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:checkpointConfig:DescribeTrainingJobResponse' :: Maybe CheckpointConfig
checkpointConfig = Maybe CheckpointConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:retryStrategy:DescribeTrainingJobResponse' :: Maybe RetryStrategy
retryStrategy = Maybe RetryStrategy
forall a. Maybe a
Prelude.Nothing,
        $sel:debugRuleEvaluationStatuses:DescribeTrainingJobResponse' :: Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses = Maybe [DebugRuleEvaluationStatus]
forall a. Maybe a
Prelude.Nothing,
        $sel:profilerConfig:DescribeTrainingJobResponse' :: Maybe ProfilerConfig
profilerConfig = Maybe ProfilerConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:profilerRuleEvaluationStatuses:DescribeTrainingJobResponse' :: Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses =
          Maybe [ProfilerRuleEvaluationStatus]
forall a. Maybe a
Prelude.Nothing,
        $sel:enableNetworkIsolation:DescribeTrainingJobResponse' :: Maybe Bool
enableNetworkIsolation = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:experimentConfig:DescribeTrainingJobResponse' :: Maybe ExperimentConfig
experimentConfig = Maybe ExperimentConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedTime:DescribeTrainingJobResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
        $sel:debugRuleConfigurations:DescribeTrainingJobResponse' :: Maybe [DebugRuleConfiguration]
debugRuleConfigurations = Maybe [DebugRuleConfiguration]
forall a. Maybe a
Prelude.Nothing,
        $sel:enableManagedSpotTraining:DescribeTrainingJobResponse' :: Maybe Bool
enableManagedSpotTraining = Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:autoMLJobArn:DescribeTrainingJobResponse' :: Maybe Text
autoMLJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:hyperParameters:DescribeTrainingJobResponse' :: Maybe (HashMap Text Text)
hyperParameters = Maybe (HashMap Text Text)
forall a. Maybe a
Prelude.Nothing,
        $sel:inputDataConfig:DescribeTrainingJobResponse' :: Maybe (NonEmpty Channel)
inputDataConfig = Maybe (NonEmpty Channel)
forall a. Maybe a
Prelude.Nothing,
        $sel:profilerRuleConfigurations:DescribeTrainingJobResponse' :: Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations = Maybe [ProfilerRuleConfiguration]
forall a. Maybe a
Prelude.Nothing,
        $sel:vpcConfig:DescribeTrainingJobResponse' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:finalMetricDataList:DescribeTrainingJobResponse' :: Maybe [MetricData]
finalMetricDataList = Maybe [MetricData]
forall a. Maybe a
Prelude.Nothing,
        $sel:profilingStatus:DescribeTrainingJobResponse' :: Maybe ProfilingStatus
profilingStatus = Maybe ProfilingStatus
forall a. Maybe a
Prelude.Nothing,
        $sel:outputDataConfig:DescribeTrainingJobResponse' :: Maybe OutputDataConfig
outputDataConfig = Maybe OutputDataConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:trainingStartTime:DescribeTrainingJobResponse' :: Maybe POSIX
trainingStartTime = Maybe POSIX
forall a. Maybe a
Prelude.Nothing,
        $sel:tuningJobArn:DescribeTrainingJobResponse' :: Maybe Text
tuningJobArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:enableInterContainerTrafficEncryption:DescribeTrainingJobResponse' :: Maybe Bool
enableInterContainerTrafficEncryption =
          Maybe Bool
forall a. Maybe a
Prelude.Nothing,
        $sel:tensorBoardOutputConfig:DescribeTrainingJobResponse' :: Maybe TensorBoardOutputConfig
tensorBoardOutputConfig = Maybe TensorBoardOutputConfig
forall a. Maybe a
Prelude.Nothing,
        $sel:trainingTimeInSeconds:DescribeTrainingJobResponse' :: Maybe Natural
trainingTimeInSeconds = Maybe Natural
forall a. Maybe a
Prelude.Nothing,
        $sel:roleArn:DescribeTrainingJobResponse' :: Maybe Text
roleArn = Maybe Text
forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeTrainingJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:trainingJobName:DescribeTrainingJobResponse' :: Text
trainingJobName = Text
pTrainingJobName_,
        $sel:trainingJobArn:DescribeTrainingJobResponse' :: Text
trainingJobArn = Text
pTrainingJobArn_,
        $sel:modelArtifacts:DescribeTrainingJobResponse' :: ModelArtifacts
modelArtifacts = ModelArtifacts
pModelArtifacts_,
        $sel:trainingJobStatus:DescribeTrainingJobResponse' :: TrainingJobStatus
trainingJobStatus = TrainingJobStatus
pTrainingJobStatus_,
        $sel:secondaryStatus:DescribeTrainingJobResponse' :: SecondaryStatus
secondaryStatus = SecondaryStatus
pSecondaryStatus_,
        $sel:algorithmSpecification:DescribeTrainingJobResponse' :: AlgorithmSpecification
algorithmSpecification =
          AlgorithmSpecification
pAlgorithmSpecification_,
        $sel:resourceConfig:DescribeTrainingJobResponse' :: ResourceConfig
resourceConfig = ResourceConfig
pResourceConfig_,
        $sel:stoppingCondition:DescribeTrainingJobResponse' :: StoppingCondition
stoppingCondition = StoppingCondition
pStoppingCondition_,
        $sel:creationTime:DescribeTrainingJobResponse' :: 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_
      }

-- | The Amazon Resource Name (ARN) of the Amazon SageMaker Ground Truth
-- labeling job that created the transform or training job.
describeTrainingJobResponse_labelingJobArn :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Text)
describeTrainingJobResponse_labelingJobArn :: (Maybe Text -> f (Maybe Text))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_labelingJobArn = (DescribeTrainingJobResponse -> Maybe Text)
-> (DescribeTrainingJobResponse
    -> Maybe Text -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Text
labelingJobArn :: Maybe Text
$sel:labelingJobArn:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Text
labelingJobArn} -> Maybe Text
labelingJobArn) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Text
a -> DescribeTrainingJobResponse
s {$sel:labelingJobArn:DescribeTrainingJobResponse' :: Maybe Text
labelingJobArn = Maybe Text
a} :: DescribeTrainingJobResponse)

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

-- | A history of all of the secondary statuses that the training job has
-- transitioned through.
describeTrainingJobResponse_secondaryStatusTransitions :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [SecondaryStatusTransition])
describeTrainingJobResponse_secondaryStatusTransitions :: (Maybe [SecondaryStatusTransition]
 -> f (Maybe [SecondaryStatusTransition]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_secondaryStatusTransitions = (DescribeTrainingJobResponse -> Maybe [SecondaryStatusTransition])
-> (DescribeTrainingJobResponse
    -> Maybe [SecondaryStatusTransition]
    -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [SecondaryStatusTransition])
     (Maybe [SecondaryStatusTransition])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [SecondaryStatusTransition]
secondaryStatusTransitions :: Maybe [SecondaryStatusTransition]
$sel:secondaryStatusTransitions:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [SecondaryStatusTransition]
secondaryStatusTransitions} -> Maybe [SecondaryStatusTransition]
secondaryStatusTransitions) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [SecondaryStatusTransition]
a -> DescribeTrainingJobResponse
s {$sel:secondaryStatusTransitions:DescribeTrainingJobResponse' :: Maybe [SecondaryStatusTransition]
secondaryStatusTransitions = Maybe [SecondaryStatusTransition]
a} :: DescribeTrainingJobResponse) ((Maybe [SecondaryStatusTransition]
  -> f (Maybe [SecondaryStatusTransition]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [SecondaryStatusTransition]
     -> f (Maybe [SecondaryStatusTransition]))
    -> Maybe [SecondaryStatusTransition]
    -> f (Maybe [SecondaryStatusTransition]))
-> (Maybe [SecondaryStatusTransition]
    -> f (Maybe [SecondaryStatusTransition]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
-> Iso
     (Maybe [SecondaryStatusTransition])
     (Maybe [SecondaryStatusTransition])
     (Maybe [SecondaryStatusTransition])
     (Maybe [SecondaryStatusTransition])
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
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
  [SecondaryStatusTransition]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Indicates the time when the training job ends on training instances. You
-- are billed for the time interval between the value of
-- @TrainingStartTime@ and this time. For successful jobs and stopped jobs,
-- this is the time after model artifacts are uploaded. For failed jobs,
-- this is the time when Amazon SageMaker detects a job failure.
describeTrainingJobResponse_trainingEndTime :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.UTCTime)
describeTrainingJobResponse_trainingEndTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_trainingEndTime = (DescribeTrainingJobResponse -> Maybe POSIX)
-> (DescribeTrainingJobResponse
    -> Maybe POSIX -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe POSIX
trainingEndTime :: Maybe POSIX
$sel:trainingEndTime:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe POSIX
trainingEndTime} -> Maybe POSIX
trainingEndTime) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe POSIX
a -> DescribeTrainingJobResponse
s {$sel:trainingEndTime:DescribeTrainingJobResponse' :: Maybe POSIX
trainingEndTime = Maybe POSIX
a} :: DescribeTrainingJobResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The environment variables to set in the Docker container.
describeTrainingJobResponse_environment :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeTrainingJobResponse_environment :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_environment = (DescribeTrainingJobResponse -> Maybe (HashMap Text Text))
-> (DescribeTrainingJobResponse
    -> Maybe (HashMap Text Text) -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe (HashMap Text Text)
environment :: Maybe (HashMap Text Text)
$sel:environment:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe (HashMap Text Text)
environment} -> Maybe (HashMap Text Text)
environment) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeTrainingJobResponse
s {$sel:environment:DescribeTrainingJobResponse' :: Maybe (HashMap Text Text)
environment = Maybe (HashMap Text Text)
a} :: DescribeTrainingJobResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The billable time in seconds. Billable time refers to the absolute
-- wall-clock time.
--
-- Multiply @BillableTimeInSeconds@ by the number of instances
-- (@InstanceCount@) in your training cluster to get the total compute time
-- SageMaker will bill you if you run distributed training. The formula is
-- as follows: @BillableTimeInSeconds * InstanceCount@ .
--
-- You can calculate the savings from using managed spot training using the
-- formula @(1 - BillableTimeInSeconds \/ TrainingTimeInSeconds) * 100@.
-- For example, if @BillableTimeInSeconds@ is 100 and
-- @TrainingTimeInSeconds@ is 500, the savings is 80%.
describeTrainingJobResponse_billableTimeInSeconds :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Natural)
describeTrainingJobResponse_billableTimeInSeconds :: (Maybe Natural -> f (Maybe Natural))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_billableTimeInSeconds = (DescribeTrainingJobResponse -> Maybe Natural)
-> (DescribeTrainingJobResponse
    -> Maybe Natural -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Natural
billableTimeInSeconds :: Maybe Natural
$sel:billableTimeInSeconds:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Natural
billableTimeInSeconds} -> Maybe Natural
billableTimeInSeconds) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Natural
a -> DescribeTrainingJobResponse
s {$sel:billableTimeInSeconds:DescribeTrainingJobResponse' :: Maybe Natural
billableTimeInSeconds = Maybe Natural
a} :: DescribeTrainingJobResponse)

-- | Undocumented member.
describeTrainingJobResponse_debugHookConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe DebugHookConfig)
describeTrainingJobResponse_debugHookConfig :: (Maybe DebugHookConfig -> f (Maybe DebugHookConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_debugHookConfig = (DescribeTrainingJobResponse -> Maybe DebugHookConfig)
-> (DescribeTrainingJobResponse
    -> Maybe DebugHookConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe DebugHookConfig)
     (Maybe DebugHookConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe DebugHookConfig
debugHookConfig :: Maybe DebugHookConfig
$sel:debugHookConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe DebugHookConfig
debugHookConfig} -> Maybe DebugHookConfig
debugHookConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe DebugHookConfig
a -> DescribeTrainingJobResponse
s {$sel:debugHookConfig:DescribeTrainingJobResponse' :: Maybe DebugHookConfig
debugHookConfig = Maybe DebugHookConfig
a} :: DescribeTrainingJobResponse)

-- | Undocumented member.
describeTrainingJobResponse_checkpointConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe CheckpointConfig)
describeTrainingJobResponse_checkpointConfig :: (Maybe CheckpointConfig -> f (Maybe CheckpointConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_checkpointConfig = (DescribeTrainingJobResponse -> Maybe CheckpointConfig)
-> (DescribeTrainingJobResponse
    -> Maybe CheckpointConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe CheckpointConfig)
     (Maybe CheckpointConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe CheckpointConfig
checkpointConfig :: Maybe CheckpointConfig
$sel:checkpointConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe CheckpointConfig
checkpointConfig} -> Maybe CheckpointConfig
checkpointConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe CheckpointConfig
a -> DescribeTrainingJobResponse
s {$sel:checkpointConfig:DescribeTrainingJobResponse' :: Maybe CheckpointConfig
checkpointConfig = Maybe CheckpointConfig
a} :: DescribeTrainingJobResponse)

-- | The number of times to retry the job when the job fails due to an
-- @InternalServerError@.
describeTrainingJobResponse_retryStrategy :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe RetryStrategy)
describeTrainingJobResponse_retryStrategy :: (Maybe RetryStrategy -> f (Maybe RetryStrategy))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_retryStrategy = (DescribeTrainingJobResponse -> Maybe RetryStrategy)
-> (DescribeTrainingJobResponse
    -> Maybe RetryStrategy -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe RetryStrategy)
     (Maybe RetryStrategy)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe RetryStrategy
retryStrategy :: Maybe RetryStrategy
$sel:retryStrategy:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe RetryStrategy
retryStrategy} -> Maybe RetryStrategy
retryStrategy) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe RetryStrategy
a -> DescribeTrainingJobResponse
s {$sel:retryStrategy:DescribeTrainingJobResponse' :: Maybe RetryStrategy
retryStrategy = Maybe RetryStrategy
a} :: DescribeTrainingJobResponse)

-- | Evaluation status of Debugger rules for debugging on a training job.
describeTrainingJobResponse_debugRuleEvaluationStatuses :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [DebugRuleEvaluationStatus])
describeTrainingJobResponse_debugRuleEvaluationStatuses :: (Maybe [DebugRuleEvaluationStatus]
 -> f (Maybe [DebugRuleEvaluationStatus]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_debugRuleEvaluationStatuses = (DescribeTrainingJobResponse -> Maybe [DebugRuleEvaluationStatus])
-> (DescribeTrainingJobResponse
    -> Maybe [DebugRuleEvaluationStatus]
    -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [DebugRuleEvaluationStatus])
     (Maybe [DebugRuleEvaluationStatus])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses :: Maybe [DebugRuleEvaluationStatus]
$sel:debugRuleEvaluationStatuses:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses} -> Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [DebugRuleEvaluationStatus]
a -> DescribeTrainingJobResponse
s {$sel:debugRuleEvaluationStatuses:DescribeTrainingJobResponse' :: Maybe [DebugRuleEvaluationStatus]
debugRuleEvaluationStatuses = Maybe [DebugRuleEvaluationStatus]
a} :: DescribeTrainingJobResponse) ((Maybe [DebugRuleEvaluationStatus]
  -> f (Maybe [DebugRuleEvaluationStatus]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [DebugRuleEvaluationStatus]
     -> f (Maybe [DebugRuleEvaluationStatus]))
    -> Maybe [DebugRuleEvaluationStatus]
    -> f (Maybe [DebugRuleEvaluationStatus]))
-> (Maybe [DebugRuleEvaluationStatus]
    -> f (Maybe [DebugRuleEvaluationStatus]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
-> Iso
     (Maybe [DebugRuleEvaluationStatus])
     (Maybe [DebugRuleEvaluationStatus])
     (Maybe [DebugRuleEvaluationStatus])
     (Maybe [DebugRuleEvaluationStatus])
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
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
  [DebugRuleEvaluationStatus]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Undocumented member.
describeTrainingJobResponse_profilerConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe ProfilerConfig)
describeTrainingJobResponse_profilerConfig :: (Maybe ProfilerConfig -> f (Maybe ProfilerConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_profilerConfig = (DescribeTrainingJobResponse -> Maybe ProfilerConfig)
-> (DescribeTrainingJobResponse
    -> Maybe ProfilerConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe ProfilerConfig)
     (Maybe ProfilerConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe ProfilerConfig
profilerConfig :: Maybe ProfilerConfig
$sel:profilerConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe ProfilerConfig
profilerConfig} -> Maybe ProfilerConfig
profilerConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe ProfilerConfig
a -> DescribeTrainingJobResponse
s {$sel:profilerConfig:DescribeTrainingJobResponse' :: Maybe ProfilerConfig
profilerConfig = Maybe ProfilerConfig
a} :: DescribeTrainingJobResponse)

-- | Evaluation status of Debugger rules for profiling on a training job.
describeTrainingJobResponse_profilerRuleEvaluationStatuses :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [ProfilerRuleEvaluationStatus])
describeTrainingJobResponse_profilerRuleEvaluationStatuses :: (Maybe [ProfilerRuleEvaluationStatus]
 -> f (Maybe [ProfilerRuleEvaluationStatus]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_profilerRuleEvaluationStatuses = (DescribeTrainingJobResponse
 -> Maybe [ProfilerRuleEvaluationStatus])
-> (DescribeTrainingJobResponse
    -> Maybe [ProfilerRuleEvaluationStatus]
    -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [ProfilerRuleEvaluationStatus])
     (Maybe [ProfilerRuleEvaluationStatus])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses :: Maybe [ProfilerRuleEvaluationStatus]
$sel:profilerRuleEvaluationStatuses:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses} -> Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [ProfilerRuleEvaluationStatus]
a -> DescribeTrainingJobResponse
s {$sel:profilerRuleEvaluationStatuses:DescribeTrainingJobResponse' :: Maybe [ProfilerRuleEvaluationStatus]
profilerRuleEvaluationStatuses = Maybe [ProfilerRuleEvaluationStatus]
a} :: DescribeTrainingJobResponse) ((Maybe [ProfilerRuleEvaluationStatus]
  -> f (Maybe [ProfilerRuleEvaluationStatus]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [ProfilerRuleEvaluationStatus]
     -> f (Maybe [ProfilerRuleEvaluationStatus]))
    -> Maybe [ProfilerRuleEvaluationStatus]
    -> f (Maybe [ProfilerRuleEvaluationStatus]))
-> (Maybe [ProfilerRuleEvaluationStatus]
    -> f (Maybe [ProfilerRuleEvaluationStatus]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
-> Iso
     (Maybe [ProfilerRuleEvaluationStatus])
     (Maybe [ProfilerRuleEvaluationStatus])
     (Maybe [ProfilerRuleEvaluationStatus])
     (Maybe [ProfilerRuleEvaluationStatus])
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
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
  [ProfilerRuleEvaluationStatus]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | If you want to allow inbound or outbound network calls, except for calls
-- between peers within a training cluster for distributed training, choose
-- @True@. If you enable network isolation for training jobs that are
-- configured to use a VPC, Amazon SageMaker downloads and uploads customer
-- data and model artifacts through the specified VPC, but the training
-- container does not have network access.
describeTrainingJobResponse_enableNetworkIsolation :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Bool)
describeTrainingJobResponse_enableNetworkIsolation :: (Maybe Bool -> f (Maybe Bool))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_enableNetworkIsolation = (DescribeTrainingJobResponse -> Maybe Bool)
-> (DescribeTrainingJobResponse
    -> Maybe Bool -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Bool
enableNetworkIsolation :: Maybe Bool
$sel:enableNetworkIsolation:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Bool
enableNetworkIsolation} -> Maybe Bool
enableNetworkIsolation) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Bool
a -> DescribeTrainingJobResponse
s {$sel:enableNetworkIsolation:DescribeTrainingJobResponse' :: Maybe Bool
enableNetworkIsolation = Maybe Bool
a} :: DescribeTrainingJobResponse)

-- | Undocumented member.
describeTrainingJobResponse_experimentConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe ExperimentConfig)
describeTrainingJobResponse_experimentConfig :: (Maybe ExperimentConfig -> f (Maybe ExperimentConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_experimentConfig = (DescribeTrainingJobResponse -> Maybe ExperimentConfig)
-> (DescribeTrainingJobResponse
    -> Maybe ExperimentConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe ExperimentConfig)
     (Maybe ExperimentConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe ExperimentConfig
experimentConfig :: Maybe ExperimentConfig
$sel:experimentConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe ExperimentConfig
experimentConfig} -> Maybe ExperimentConfig
experimentConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe ExperimentConfig
a -> DescribeTrainingJobResponse
s {$sel:experimentConfig:DescribeTrainingJobResponse' :: Maybe ExperimentConfig
experimentConfig = Maybe ExperimentConfig
a} :: DescribeTrainingJobResponse)

-- | A timestamp that indicates when the status of the training job was last
-- modified.
describeTrainingJobResponse_lastModifiedTime :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.UTCTime)
describeTrainingJobResponse_lastModifiedTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_lastModifiedTime = (DescribeTrainingJobResponse -> Maybe POSIX)
-> (DescribeTrainingJobResponse
    -> Maybe POSIX -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe POSIX
a -> DescribeTrainingJobResponse
s {$sel:lastModifiedTime:DescribeTrainingJobResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeTrainingJobResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | Configuration information for Debugger rules for debugging output
-- tensors.
describeTrainingJobResponse_debugRuleConfigurations :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [DebugRuleConfiguration])
describeTrainingJobResponse_debugRuleConfigurations :: (Maybe [DebugRuleConfiguration]
 -> f (Maybe [DebugRuleConfiguration]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_debugRuleConfigurations = (DescribeTrainingJobResponse -> Maybe [DebugRuleConfiguration])
-> (DescribeTrainingJobResponse
    -> Maybe [DebugRuleConfiguration] -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [DebugRuleConfiguration])
     (Maybe [DebugRuleConfiguration])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [DebugRuleConfiguration]
debugRuleConfigurations :: Maybe [DebugRuleConfiguration]
$sel:debugRuleConfigurations:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [DebugRuleConfiguration]
debugRuleConfigurations} -> Maybe [DebugRuleConfiguration]
debugRuleConfigurations) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [DebugRuleConfiguration]
a -> DescribeTrainingJobResponse
s {$sel:debugRuleConfigurations:DescribeTrainingJobResponse' :: Maybe [DebugRuleConfiguration]
debugRuleConfigurations = Maybe [DebugRuleConfiguration]
a} :: DescribeTrainingJobResponse) ((Maybe [DebugRuleConfiguration]
  -> f (Maybe [DebugRuleConfiguration]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [DebugRuleConfiguration]
     -> f (Maybe [DebugRuleConfiguration]))
    -> Maybe [DebugRuleConfiguration]
    -> f (Maybe [DebugRuleConfiguration]))
-> (Maybe [DebugRuleConfiguration]
    -> f (Maybe [DebugRuleConfiguration]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
-> Iso
     (Maybe [DebugRuleConfiguration])
     (Maybe [DebugRuleConfiguration])
     (Maybe [DebugRuleConfiguration])
     (Maybe [DebugRuleConfiguration])
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
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
  [DebugRuleConfiguration]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A Boolean indicating whether managed spot training is enabled (@True@)
-- or not (@False@).
describeTrainingJobResponse_enableManagedSpotTraining :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Bool)
describeTrainingJobResponse_enableManagedSpotTraining :: (Maybe Bool -> f (Maybe Bool))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_enableManagedSpotTraining = (DescribeTrainingJobResponse -> Maybe Bool)
-> (DescribeTrainingJobResponse
    -> Maybe Bool -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Bool
enableManagedSpotTraining :: Maybe Bool
$sel:enableManagedSpotTraining:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Bool
enableManagedSpotTraining} -> Maybe Bool
enableManagedSpotTraining) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Bool
a -> DescribeTrainingJobResponse
s {$sel:enableManagedSpotTraining:DescribeTrainingJobResponse' :: Maybe Bool
enableManagedSpotTraining = Maybe Bool
a} :: DescribeTrainingJobResponse)

-- | The Amazon Resource Name (ARN) of an AutoML job.
describeTrainingJobResponse_autoMLJobArn :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Text)
describeTrainingJobResponse_autoMLJobArn :: (Maybe Text -> f (Maybe Text))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_autoMLJobArn = (DescribeTrainingJobResponse -> Maybe Text)
-> (DescribeTrainingJobResponse
    -> Maybe Text -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Text
autoMLJobArn :: Maybe Text
$sel:autoMLJobArn:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Text
autoMLJobArn} -> Maybe Text
autoMLJobArn) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Text
a -> DescribeTrainingJobResponse
s {$sel:autoMLJobArn:DescribeTrainingJobResponse' :: Maybe Text
autoMLJobArn = Maybe Text
a} :: DescribeTrainingJobResponse)

-- | Algorithm-specific parameters.
describeTrainingJobResponse_hyperParameters :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
describeTrainingJobResponse_hyperParameters :: (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_hyperParameters = (DescribeTrainingJobResponse -> Maybe (HashMap Text Text))
-> (DescribeTrainingJobResponse
    -> Maybe (HashMap Text Text) -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe (HashMap Text Text)
hyperParameters :: Maybe (HashMap Text Text)
$sel:hyperParameters:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe (HashMap Text Text)
hyperParameters} -> Maybe (HashMap Text Text)
hyperParameters) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe (HashMap Text Text)
a -> DescribeTrainingJobResponse
s {$sel:hyperParameters:DescribeTrainingJobResponse' :: Maybe (HashMap Text Text)
hyperParameters = Maybe (HashMap Text Text)
a} :: DescribeTrainingJobResponse) ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
    -> Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> (Maybe (HashMap Text Text) -> f (Maybe (HashMap Text Text)))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
-> Iso
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
     (Maybe (HashMap Text Text))
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
  (HashMap Text Text)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | An array of @Channel@ objects that describes each data input channel.
describeTrainingJobResponse_inputDataConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe (Prelude.NonEmpty Channel))
describeTrainingJobResponse_inputDataConfig :: (Maybe (NonEmpty Channel) -> f (Maybe (NonEmpty Channel)))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_inputDataConfig = (DescribeTrainingJobResponse -> Maybe (NonEmpty Channel))
-> (DescribeTrainingJobResponse
    -> Maybe (NonEmpty Channel) -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe (NonEmpty Channel))
     (Maybe (NonEmpty Channel))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe (NonEmpty Channel)
inputDataConfig :: Maybe (NonEmpty Channel)
$sel:inputDataConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe (NonEmpty Channel)
inputDataConfig} -> Maybe (NonEmpty Channel)
inputDataConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe (NonEmpty Channel)
a -> DescribeTrainingJobResponse
s {$sel:inputDataConfig:DescribeTrainingJobResponse' :: Maybe (NonEmpty Channel)
inputDataConfig = Maybe (NonEmpty Channel)
a} :: DescribeTrainingJobResponse) ((Maybe (NonEmpty Channel) -> f (Maybe (NonEmpty Channel)))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe (NonEmpty Channel) -> f (Maybe (NonEmpty Channel)))
    -> Maybe (NonEmpty Channel) -> f (Maybe (NonEmpty Channel)))
-> (Maybe (NonEmpty Channel) -> f (Maybe (NonEmpty Channel)))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  (NonEmpty Channel)
  (NonEmpty Channel)
  (NonEmpty Channel)
  (NonEmpty Channel)
-> Iso
     (Maybe (NonEmpty Channel))
     (Maybe (NonEmpty Channel))
     (Maybe (NonEmpty Channel))
     (Maybe (NonEmpty Channel))
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
  (NonEmpty Channel)
  (NonEmpty Channel)
  (NonEmpty Channel)
  (NonEmpty Channel)
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Configuration information for Debugger rules for profiling system and
-- framework metrics.
describeTrainingJobResponse_profilerRuleConfigurations :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [ProfilerRuleConfiguration])
describeTrainingJobResponse_profilerRuleConfigurations :: (Maybe [ProfilerRuleConfiguration]
 -> f (Maybe [ProfilerRuleConfiguration]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_profilerRuleConfigurations = (DescribeTrainingJobResponse -> Maybe [ProfilerRuleConfiguration])
-> (DescribeTrainingJobResponse
    -> Maybe [ProfilerRuleConfiguration]
    -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [ProfilerRuleConfiguration])
     (Maybe [ProfilerRuleConfiguration])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations :: Maybe [ProfilerRuleConfiguration]
$sel:profilerRuleConfigurations:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations} -> Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [ProfilerRuleConfiguration]
a -> DescribeTrainingJobResponse
s {$sel:profilerRuleConfigurations:DescribeTrainingJobResponse' :: Maybe [ProfilerRuleConfiguration]
profilerRuleConfigurations = Maybe [ProfilerRuleConfiguration]
a} :: DescribeTrainingJobResponse) ((Maybe [ProfilerRuleConfiguration]
  -> f (Maybe [ProfilerRuleConfiguration]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [ProfilerRuleConfiguration]
     -> f (Maybe [ProfilerRuleConfiguration]))
    -> Maybe [ProfilerRuleConfiguration]
    -> f (Maybe [ProfilerRuleConfiguration]))
-> (Maybe [ProfilerRuleConfiguration]
    -> f (Maybe [ProfilerRuleConfiguration]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
-> Iso
     (Maybe [ProfilerRuleConfiguration])
     (Maybe [ProfilerRuleConfiguration])
     (Maybe [ProfilerRuleConfiguration])
     (Maybe [ProfilerRuleConfiguration])
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
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
  [ProfilerRuleConfiguration]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | A VpcConfig object that specifies the VPC that this training job has
-- access to. For more information, see
-- <https://docs.aws.amazon.com/sagemaker/latest/dg/train-vpc.html Protect Training Jobs by Using an Amazon Virtual Private Cloud>.
describeTrainingJobResponse_vpcConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe VpcConfig)
describeTrainingJobResponse_vpcConfig :: (Maybe VpcConfig -> f (Maybe VpcConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_vpcConfig = (DescribeTrainingJobResponse -> Maybe VpcConfig)
-> (DescribeTrainingJobResponse
    -> Maybe VpcConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe VpcConfig)
     (Maybe VpcConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe VpcConfig
vpcConfig :: Maybe VpcConfig
$sel:vpcConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe VpcConfig
vpcConfig} -> Maybe VpcConfig
vpcConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe VpcConfig
a -> DescribeTrainingJobResponse
s {$sel:vpcConfig:DescribeTrainingJobResponse' :: Maybe VpcConfig
vpcConfig = Maybe VpcConfig
a} :: DescribeTrainingJobResponse)

-- | A collection of @MetricData@ objects that specify the names, values, and
-- dates and times that the training algorithm emitted to Amazon
-- CloudWatch.
describeTrainingJobResponse_finalMetricDataList :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe [MetricData])
describeTrainingJobResponse_finalMetricDataList :: (Maybe [MetricData] -> f (Maybe [MetricData]))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_finalMetricDataList = (DescribeTrainingJobResponse -> Maybe [MetricData])
-> (DescribeTrainingJobResponse
    -> Maybe [MetricData] -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe [MetricData])
     (Maybe [MetricData])
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe [MetricData]
finalMetricDataList :: Maybe [MetricData]
$sel:finalMetricDataList:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe [MetricData]
finalMetricDataList} -> Maybe [MetricData]
finalMetricDataList) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe [MetricData]
a -> DescribeTrainingJobResponse
s {$sel:finalMetricDataList:DescribeTrainingJobResponse' :: Maybe [MetricData]
finalMetricDataList = Maybe [MetricData]
a} :: DescribeTrainingJobResponse) ((Maybe [MetricData] -> f (Maybe [MetricData]))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe [MetricData] -> f (Maybe [MetricData]))
    -> Maybe [MetricData] -> f (Maybe [MetricData]))
-> (Maybe [MetricData] -> f (Maybe [MetricData]))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso [MetricData] [MetricData] [MetricData] [MetricData]
-> Iso
     (Maybe [MetricData])
     (Maybe [MetricData])
     (Maybe [MetricData])
     (Maybe [MetricData])
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 [MetricData] [MetricData] [MetricData] [MetricData]
forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | Profiling status of a training job.
describeTrainingJobResponse_profilingStatus :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe ProfilingStatus)
describeTrainingJobResponse_profilingStatus :: (Maybe ProfilingStatus -> f (Maybe ProfilingStatus))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_profilingStatus = (DescribeTrainingJobResponse -> Maybe ProfilingStatus)
-> (DescribeTrainingJobResponse
    -> Maybe ProfilingStatus -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe ProfilingStatus)
     (Maybe ProfilingStatus)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe ProfilingStatus
profilingStatus :: Maybe ProfilingStatus
$sel:profilingStatus:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe ProfilingStatus
profilingStatus} -> Maybe ProfilingStatus
profilingStatus) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe ProfilingStatus
a -> DescribeTrainingJobResponse
s {$sel:profilingStatus:DescribeTrainingJobResponse' :: Maybe ProfilingStatus
profilingStatus = Maybe ProfilingStatus
a} :: DescribeTrainingJobResponse)

-- | The S3 path where model artifacts that you configured when creating the
-- job are stored. Amazon SageMaker creates subfolders for model artifacts.
describeTrainingJobResponse_outputDataConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe OutputDataConfig)
describeTrainingJobResponse_outputDataConfig :: (Maybe OutputDataConfig -> f (Maybe OutputDataConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_outputDataConfig = (DescribeTrainingJobResponse -> Maybe OutputDataConfig)
-> (DescribeTrainingJobResponse
    -> Maybe OutputDataConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe OutputDataConfig)
     (Maybe OutputDataConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe OutputDataConfig
outputDataConfig :: Maybe OutputDataConfig
$sel:outputDataConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe OutputDataConfig
outputDataConfig} -> Maybe OutputDataConfig
outputDataConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe OutputDataConfig
a -> DescribeTrainingJobResponse
s {$sel:outputDataConfig:DescribeTrainingJobResponse' :: Maybe OutputDataConfig
outputDataConfig = Maybe OutputDataConfig
a} :: DescribeTrainingJobResponse)

-- | Indicates the time when the training job starts on training instances.
-- You are billed for the time interval between this time and the value of
-- @TrainingEndTime@. The start time in CloudWatch Logs might be later than
-- this time. The difference is due to the time it takes to download the
-- training data and to the size of the training container.
describeTrainingJobResponse_trainingStartTime :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.UTCTime)
describeTrainingJobResponse_trainingStartTime :: (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_trainingStartTime = (DescribeTrainingJobResponse -> Maybe POSIX)
-> (DescribeTrainingJobResponse
    -> Maybe POSIX -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe POSIX)
     (Maybe POSIX)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe POSIX
trainingStartTime :: Maybe POSIX
$sel:trainingStartTime:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe POSIX
trainingStartTime} -> Maybe POSIX
trainingStartTime) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe POSIX
a -> DescribeTrainingJobResponse
s {$sel:trainingStartTime:DescribeTrainingJobResponse' :: Maybe POSIX
trainingStartTime = Maybe POSIX
a} :: DescribeTrainingJobResponse) ((Maybe POSIX -> f (Maybe POSIX))
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((Maybe UTCTime -> f (Maybe UTCTime))
    -> Maybe POSIX -> f (Maybe POSIX))
-> (Maybe UTCTime -> f (Maybe UTCTime))
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. AnIso POSIX POSIX UTCTime UTCTime
-> Iso (Maybe POSIX) (Maybe POSIX) (Maybe UTCTime) (Maybe UTCTime)
forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping AnIso POSIX POSIX UTCTime UTCTime
forall (a :: Format). Iso' (Time a) UTCTime
Core._Time

-- | The Amazon Resource Name (ARN) of the associated hyperparameter tuning
-- job if the training job was launched by a hyperparameter tuning job.
describeTrainingJobResponse_tuningJobArn :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Text)
describeTrainingJobResponse_tuningJobArn :: (Maybe Text -> f (Maybe Text))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_tuningJobArn = (DescribeTrainingJobResponse -> Maybe Text)
-> (DescribeTrainingJobResponse
    -> Maybe Text -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Text
tuningJobArn :: Maybe Text
$sel:tuningJobArn:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Text
tuningJobArn} -> Maybe Text
tuningJobArn) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Text
a -> DescribeTrainingJobResponse
s {$sel:tuningJobArn:DescribeTrainingJobResponse' :: Maybe Text
tuningJobArn = Maybe Text
a} :: DescribeTrainingJobResponse)

-- | To encrypt all communications between ML compute instances in
-- distributed training, choose @True@. Encryption provides greater
-- security for distributed training, but training might take longer. How
-- long it takes depends on the amount of communication between compute
-- instances, especially if you use a deep learning algorithms in
-- distributed training.
describeTrainingJobResponse_enableInterContainerTrafficEncryption :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Bool)
describeTrainingJobResponse_enableInterContainerTrafficEncryption :: (Maybe Bool -> f (Maybe Bool))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_enableInterContainerTrafficEncryption = (DescribeTrainingJobResponse -> Maybe Bool)
-> (DescribeTrainingJobResponse
    -> Maybe Bool -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Bool)
     (Maybe Bool)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Bool
enableInterContainerTrafficEncryption :: Maybe Bool
$sel:enableInterContainerTrafficEncryption:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Bool
enableInterContainerTrafficEncryption} -> Maybe Bool
enableInterContainerTrafficEncryption) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Bool
a -> DescribeTrainingJobResponse
s {$sel:enableInterContainerTrafficEncryption:DescribeTrainingJobResponse' :: Maybe Bool
enableInterContainerTrafficEncryption = Maybe Bool
a} :: DescribeTrainingJobResponse)

-- | Undocumented member.
describeTrainingJobResponse_tensorBoardOutputConfig :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe TensorBoardOutputConfig)
describeTrainingJobResponse_tensorBoardOutputConfig :: (Maybe TensorBoardOutputConfig
 -> f (Maybe TensorBoardOutputConfig))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_tensorBoardOutputConfig = (DescribeTrainingJobResponse -> Maybe TensorBoardOutputConfig)
-> (DescribeTrainingJobResponse
    -> Maybe TensorBoardOutputConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe TensorBoardOutputConfig)
     (Maybe TensorBoardOutputConfig)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe TensorBoardOutputConfig
tensorBoardOutputConfig :: Maybe TensorBoardOutputConfig
$sel:tensorBoardOutputConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe TensorBoardOutputConfig
tensorBoardOutputConfig} -> Maybe TensorBoardOutputConfig
tensorBoardOutputConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe TensorBoardOutputConfig
a -> DescribeTrainingJobResponse
s {$sel:tensorBoardOutputConfig:DescribeTrainingJobResponse' :: Maybe TensorBoardOutputConfig
tensorBoardOutputConfig = Maybe TensorBoardOutputConfig
a} :: DescribeTrainingJobResponse)

-- | The training time in seconds.
describeTrainingJobResponse_trainingTimeInSeconds :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Natural)
describeTrainingJobResponse_trainingTimeInSeconds :: (Maybe Natural -> f (Maybe Natural))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_trainingTimeInSeconds = (DescribeTrainingJobResponse -> Maybe Natural)
-> (DescribeTrainingJobResponse
    -> Maybe Natural -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Natural)
     (Maybe Natural)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Natural
trainingTimeInSeconds :: Maybe Natural
$sel:trainingTimeInSeconds:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Natural
trainingTimeInSeconds} -> Maybe Natural
trainingTimeInSeconds) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Natural
a -> DescribeTrainingJobResponse
s {$sel:trainingTimeInSeconds:DescribeTrainingJobResponse' :: Maybe Natural
trainingTimeInSeconds = Maybe Natural
a} :: DescribeTrainingJobResponse)

-- | The Amazon Web Services Identity and Access Management (IAM) role
-- configured for the training job.
describeTrainingJobResponse_roleArn :: Lens.Lens' DescribeTrainingJobResponse (Prelude.Maybe Prelude.Text)
describeTrainingJobResponse_roleArn :: (Maybe Text -> f (Maybe Text))
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_roleArn = (DescribeTrainingJobResponse -> Maybe Text)
-> (DescribeTrainingJobResponse
    -> Maybe Text -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     (Maybe Text)
     (Maybe Text)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Maybe Text
roleArn :: Maybe Text
$sel:roleArn:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Maybe Text
roleArn} -> Maybe Text
roleArn) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Maybe Text
a -> DescribeTrainingJobResponse
s {$sel:roleArn:DescribeTrainingJobResponse' :: Maybe Text
roleArn = Maybe Text
a} :: DescribeTrainingJobResponse)

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

-- | Name of the model training job.
describeTrainingJobResponse_trainingJobName :: Lens.Lens' DescribeTrainingJobResponse Prelude.Text
describeTrainingJobResponse_trainingJobName :: (Text -> f Text)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_trainingJobName = (DescribeTrainingJobResponse -> Text)
-> (DescribeTrainingJobResponse
    -> Text -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse DescribeTrainingJobResponse Text Text
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {Text
trainingJobName :: Text
$sel:trainingJobName:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> Text
trainingJobName} -> Text
trainingJobName) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} Text
a -> DescribeTrainingJobResponse
s {$sel:trainingJobName:DescribeTrainingJobResponse' :: Text
trainingJobName = Text
a} :: DescribeTrainingJobResponse)

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

-- | Information about the Amazon S3 location that is configured for storing
-- model artifacts.
describeTrainingJobResponse_modelArtifacts :: Lens.Lens' DescribeTrainingJobResponse ModelArtifacts
describeTrainingJobResponse_modelArtifacts :: (ModelArtifacts -> f ModelArtifacts)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_modelArtifacts = (DescribeTrainingJobResponse -> ModelArtifacts)
-> (DescribeTrainingJobResponse
    -> ModelArtifacts -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     ModelArtifacts
     ModelArtifacts
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {ModelArtifacts
modelArtifacts :: ModelArtifacts
$sel:modelArtifacts:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> ModelArtifacts
modelArtifacts} -> ModelArtifacts
modelArtifacts) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} ModelArtifacts
a -> DescribeTrainingJobResponse
s {$sel:modelArtifacts:DescribeTrainingJobResponse' :: ModelArtifacts
modelArtifacts = ModelArtifacts
a} :: DescribeTrainingJobResponse)

-- | The status of the training job.
--
-- Amazon SageMaker provides the following training job statuses:
--
-- -   @InProgress@ - The training is in progress.
--
-- -   @Completed@ - The training job has completed.
--
-- -   @Failed@ - The training job has failed. To see the reason for the
--     failure, see the @FailureReason@ field in the response to a
--     @DescribeTrainingJobResponse@ call.
--
-- -   @Stopping@ - The training job is stopping.
--
-- -   @Stopped@ - The training job has stopped.
--
-- For more detailed information, see @SecondaryStatus@.
describeTrainingJobResponse_trainingJobStatus :: Lens.Lens' DescribeTrainingJobResponse TrainingJobStatus
describeTrainingJobResponse_trainingJobStatus :: (TrainingJobStatus -> f TrainingJobStatus)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_trainingJobStatus = (DescribeTrainingJobResponse -> TrainingJobStatus)
-> (DescribeTrainingJobResponse
    -> TrainingJobStatus -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     TrainingJobStatus
     TrainingJobStatus
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {TrainingJobStatus
trainingJobStatus :: TrainingJobStatus
$sel:trainingJobStatus:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> TrainingJobStatus
trainingJobStatus} -> TrainingJobStatus
trainingJobStatus) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} TrainingJobStatus
a -> DescribeTrainingJobResponse
s {$sel:trainingJobStatus:DescribeTrainingJobResponse' :: TrainingJobStatus
trainingJobStatus = TrainingJobStatus
a} :: DescribeTrainingJobResponse)

-- | Provides detailed information about the state of the training job. For
-- detailed information on the secondary status of the training job, see
-- @StatusMessage@ under SecondaryStatusTransition.
--
-- Amazon SageMaker provides primary statuses and secondary statuses that
-- apply to each of them:
--
-- [InProgress]
--     -   @Starting@ - Starting the training job.
--
--     -   @Downloading@ - An optional stage for algorithms that support
--         @File@ training input mode. It indicates that data is being
--         downloaded to the ML storage volumes.
--
--     -   @Training@ - Training is in progress.
--
--     -   @Interrupted@ - The job stopped because the managed spot
--         training instances were interrupted.
--
--     -   @Uploading@ - Training is complete and the model artifacts are
--         being uploaded to the S3 location.
--
-- [Completed]
--     -   @Completed@ - The training job has completed.
--
-- [Failed]
--     -   @Failed@ - The training job has failed. The reason for the
--         failure is returned in the @FailureReason@ field of
--         @DescribeTrainingJobResponse@.
--
-- [Stopped]
--     -   @MaxRuntimeExceeded@ - The job stopped because it exceeded the
--         maximum allowed runtime.
--
--     -   @MaxWaitTimeExceeded@ - The job stopped because it exceeded the
--         maximum allowed wait time.
--
--     -   @Stopped@ - The training job has stopped.
--
-- [Stopping]
--     -   @Stopping@ - Stopping the training job.
--
-- Valid values for @SecondaryStatus@ are subject to change.
--
-- We no longer support the following secondary statuses:
--
-- -   @LaunchingMLInstances@
--
-- -   @PreparingTraining@
--
-- -   @DownloadingTrainingImage@
describeTrainingJobResponse_secondaryStatus :: Lens.Lens' DescribeTrainingJobResponse SecondaryStatus
describeTrainingJobResponse_secondaryStatus :: (SecondaryStatus -> f SecondaryStatus)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_secondaryStatus = (DescribeTrainingJobResponse -> SecondaryStatus)
-> (DescribeTrainingJobResponse
    -> SecondaryStatus -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     SecondaryStatus
     SecondaryStatus
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {SecondaryStatus
secondaryStatus :: SecondaryStatus
$sel:secondaryStatus:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> SecondaryStatus
secondaryStatus} -> SecondaryStatus
secondaryStatus) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} SecondaryStatus
a -> DescribeTrainingJobResponse
s {$sel:secondaryStatus:DescribeTrainingJobResponse' :: SecondaryStatus
secondaryStatus = SecondaryStatus
a} :: DescribeTrainingJobResponse)

-- | Information about the algorithm used for training, and algorithm
-- metadata.
describeTrainingJobResponse_algorithmSpecification :: Lens.Lens' DescribeTrainingJobResponse AlgorithmSpecification
describeTrainingJobResponse_algorithmSpecification :: (AlgorithmSpecification -> f AlgorithmSpecification)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_algorithmSpecification = (DescribeTrainingJobResponse -> AlgorithmSpecification)
-> (DescribeTrainingJobResponse
    -> AlgorithmSpecification -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     AlgorithmSpecification
     AlgorithmSpecification
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {AlgorithmSpecification
algorithmSpecification :: AlgorithmSpecification
$sel:algorithmSpecification:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> AlgorithmSpecification
algorithmSpecification} -> AlgorithmSpecification
algorithmSpecification) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} AlgorithmSpecification
a -> DescribeTrainingJobResponse
s {$sel:algorithmSpecification:DescribeTrainingJobResponse' :: AlgorithmSpecification
algorithmSpecification = AlgorithmSpecification
a} :: DescribeTrainingJobResponse)

-- | Resources, including ML compute instances and ML storage volumes, that
-- are configured for model training.
describeTrainingJobResponse_resourceConfig :: Lens.Lens' DescribeTrainingJobResponse ResourceConfig
describeTrainingJobResponse_resourceConfig :: (ResourceConfig -> f ResourceConfig)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_resourceConfig = (DescribeTrainingJobResponse -> ResourceConfig)
-> (DescribeTrainingJobResponse
    -> ResourceConfig -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     ResourceConfig
     ResourceConfig
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {ResourceConfig
resourceConfig :: ResourceConfig
$sel:resourceConfig:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> ResourceConfig
resourceConfig} -> ResourceConfig
resourceConfig) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} ResourceConfig
a -> DescribeTrainingJobResponse
s {$sel:resourceConfig:DescribeTrainingJobResponse' :: ResourceConfig
resourceConfig = ResourceConfig
a} :: DescribeTrainingJobResponse)

-- | Specifies a limit to how long a model training job can run. It also
-- specifies how long a managed Spot training job has to complete. When the
-- job reaches the time limit, Amazon SageMaker ends the training job. Use
-- this API to cap model training costs.
--
-- To stop a job, Amazon SageMaker sends the algorithm the @SIGTERM@
-- signal, which delays job termination for 120 seconds. Algorithms can use
-- this 120-second window to save the model artifacts, so the results of
-- training are not lost.
describeTrainingJobResponse_stoppingCondition :: Lens.Lens' DescribeTrainingJobResponse StoppingCondition
describeTrainingJobResponse_stoppingCondition :: (StoppingCondition -> f StoppingCondition)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_stoppingCondition = (DescribeTrainingJobResponse -> StoppingCondition)
-> (DescribeTrainingJobResponse
    -> StoppingCondition -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse
     DescribeTrainingJobResponse
     StoppingCondition
     StoppingCondition
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {StoppingCondition
stoppingCondition :: StoppingCondition
$sel:stoppingCondition:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> StoppingCondition
stoppingCondition} -> StoppingCondition
stoppingCondition) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} StoppingCondition
a -> DescribeTrainingJobResponse
s {$sel:stoppingCondition:DescribeTrainingJobResponse' :: StoppingCondition
stoppingCondition = StoppingCondition
a} :: DescribeTrainingJobResponse)

-- | A timestamp that indicates when the training job was created.
describeTrainingJobResponse_creationTime :: Lens.Lens' DescribeTrainingJobResponse Prelude.UTCTime
describeTrainingJobResponse_creationTime :: (UTCTime -> f UTCTime)
-> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse
describeTrainingJobResponse_creationTime = (DescribeTrainingJobResponse -> POSIX)
-> (DescribeTrainingJobResponse
    -> POSIX -> DescribeTrainingJobResponse)
-> Lens
     DescribeTrainingJobResponse DescribeTrainingJobResponse POSIX POSIX
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeTrainingJobResponse' {POSIX
creationTime :: POSIX
$sel:creationTime:DescribeTrainingJobResponse' :: DescribeTrainingJobResponse -> POSIX
creationTime} -> POSIX
creationTime) (\s :: DescribeTrainingJobResponse
s@DescribeTrainingJobResponse' {} POSIX
a -> DescribeTrainingJobResponse
s {$sel:creationTime:DescribeTrainingJobResponse' :: POSIX
creationTime = POSIX
a} :: DescribeTrainingJobResponse) ((POSIX -> f POSIX)
 -> DescribeTrainingJobResponse -> f DescribeTrainingJobResponse)
-> ((UTCTime -> f UTCTime) -> POSIX -> f POSIX)
-> (UTCTime -> f UTCTime)
-> DescribeTrainingJobResponse
-> f DescribeTrainingJobResponse
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

instance Prelude.NFData DescribeTrainingJobResponse