{-# 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.DescribeHyperParameterTuningJob
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
--
-- Gets a description of a hyperparameter tuning job.
module Amazonka.SageMaker.DescribeHyperParameterTuningJob
  ( -- * Creating a Request
    DescribeHyperParameterTuningJob (..),
    newDescribeHyperParameterTuningJob,

    -- * Request Lenses
    describeHyperParameterTuningJob_hyperParameterTuningJobName,

    -- * Destructuring the Response
    DescribeHyperParameterTuningJobResponse (..),
    newDescribeHyperParameterTuningJobResponse,

    -- * Response Lenses
    describeHyperParameterTuningJobResponse_bestTrainingJob,
    describeHyperParameterTuningJobResponse_failureReason,
    describeHyperParameterTuningJobResponse_hyperParameterTuningEndTime,
    describeHyperParameterTuningJobResponse_lastModifiedTime,
    describeHyperParameterTuningJobResponse_overallBestTrainingJob,
    describeHyperParameterTuningJobResponse_trainingJobDefinition,
    describeHyperParameterTuningJobResponse_trainingJobDefinitions,
    describeHyperParameterTuningJobResponse_warmStartConfig,
    describeHyperParameterTuningJobResponse_httpStatus,
    describeHyperParameterTuningJobResponse_hyperParameterTuningJobName,
    describeHyperParameterTuningJobResponse_hyperParameterTuningJobArn,
    describeHyperParameterTuningJobResponse_hyperParameterTuningJobConfig,
    describeHyperParameterTuningJobResponse_hyperParameterTuningJobStatus,
    describeHyperParameterTuningJobResponse_creationTime,
    describeHyperParameterTuningJobResponse_trainingJobStatusCounters,
    describeHyperParameterTuningJobResponse_objectiveStatusCounters,
  )
where

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

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

-- |
-- Create a value of 'DescribeHyperParameterTuningJob' 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:
--
-- 'hyperParameterTuningJobName', 'describeHyperParameterTuningJob_hyperParameterTuningJobName' - The name of the tuning job.
newDescribeHyperParameterTuningJob ::
  -- | 'hyperParameterTuningJobName'
  Prelude.Text ->
  DescribeHyperParameterTuningJob
newDescribeHyperParameterTuningJob :: Text -> DescribeHyperParameterTuningJob
newDescribeHyperParameterTuningJob
  Text
pHyperParameterTuningJobName_ =
    DescribeHyperParameterTuningJob'
      { $sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: Text
hyperParameterTuningJobName =
          Text
pHyperParameterTuningJobName_
      }

-- | The name of the tuning job.
describeHyperParameterTuningJob_hyperParameterTuningJobName :: Lens.Lens' DescribeHyperParameterTuningJob Prelude.Text
describeHyperParameterTuningJob_hyperParameterTuningJobName :: Lens' DescribeHyperParameterTuningJob Text
describeHyperParameterTuningJob_hyperParameterTuningJobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJob' {Text
hyperParameterTuningJobName :: Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: DescribeHyperParameterTuningJob -> Text
hyperParameterTuningJobName} -> Text
hyperParameterTuningJobName) (\s :: DescribeHyperParameterTuningJob
s@DescribeHyperParameterTuningJob' {} Text
a -> DescribeHyperParameterTuningJob
s {$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: Text
hyperParameterTuningJobName = Text
a} :: DescribeHyperParameterTuningJob)

instance
  Core.AWSRequest
    DescribeHyperParameterTuningJob
  where
  type
    AWSResponse DescribeHyperParameterTuningJob =
      DescribeHyperParameterTuningJobResponse
  request :: (Service -> Service)
-> DescribeHyperParameterTuningJob
-> Request DescribeHyperParameterTuningJob
request Service -> Service
overrides =
    forall a. (ToRequest a, ToJSON a) => Service -> a -> Request a
Request.postJSON (Service -> Service
overrides Service
defaultService)
  response :: forall (m :: * -> *).
MonadResource m =>
(ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy DescribeHyperParameterTuningJob
-> ClientResponse ClientBody
-> m (Either
        Error
        (ClientResponse (AWSResponse DescribeHyperParameterTuningJob)))
response =
    forall (m :: * -> *) a.
MonadResource m =>
(Int -> ResponseHeaders -> Object -> Either String (AWSResponse a))
-> (ByteStringLazy -> IO ByteStringLazy)
-> Service
-> Proxy a
-> ClientResponse ClientBody
-> m (Either Error (ClientResponse (AWSResponse a)))
Response.receiveJSON
      ( \Int
s ResponseHeaders
h Object
x ->
          Maybe HyperParameterTrainingJobSummary
-> Maybe Text
-> Maybe POSIX
-> Maybe POSIX
-> Maybe HyperParameterTrainingJobSummary
-> Maybe HyperParameterTrainingJobDefinition
-> Maybe (NonEmpty HyperParameterTrainingJobDefinition)
-> Maybe HyperParameterTuningJobWarmStartConfig
-> Int
-> Text
-> Text
-> HyperParameterTuningJobConfig
-> HyperParameterTuningJobStatus
-> POSIX
-> TrainingJobStatusCounters
-> ObjectiveStatusCounters
-> DescribeHyperParameterTuningJobResponse
DescribeHyperParameterTuningJobResponse'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"BestTrainingJob")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"FailureReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"HyperParameterTuningEndTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"LastModifiedTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"OverallBestTrainingJob")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"TrainingJobDefinition")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"TrainingJobDefinitions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String (Maybe a)
Data..?> Key
"WarmStartConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (forall (f :: * -> *) a. Applicative f => a -> f a
Prelude.pure (forall a. Enum a => a -> Int
Prelude.fromEnum Int
s))
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"HyperParameterTuningJobName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"HyperParameterTuningJobArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"HyperParameterTuningJobConfig")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"HyperParameterTuningJobStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"TrainingJobStatusCounters")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Either String a
Data..:> Key
"ObjectiveStatusCounters")
      )

instance
  Prelude.Hashable
    DescribeHyperParameterTuningJob
  where
  hashWithSalt :: Int -> DescribeHyperParameterTuningJob -> Int
hashWithSalt
    Int
_salt
    DescribeHyperParameterTuningJob' {Text
hyperParameterTuningJobName :: Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: DescribeHyperParameterTuningJob -> Text
..} =
      Int
_salt
        forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Text
hyperParameterTuningJobName

instance
  Prelude.NFData
    DescribeHyperParameterTuningJob
  where
  rnf :: DescribeHyperParameterTuningJob -> ()
rnf DescribeHyperParameterTuningJob' {Text
hyperParameterTuningJobName :: Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: DescribeHyperParameterTuningJob -> Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Text
hyperParameterTuningJobName

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

instance Data.ToJSON DescribeHyperParameterTuningJob where
  toJSON :: DescribeHyperParameterTuningJob -> Value
toJSON DescribeHyperParameterTuningJob' {Text
hyperParameterTuningJobName :: Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJob' :: DescribeHyperParameterTuningJob -> Text
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ forall a. a -> Maybe a
Prelude.Just
              ( Key
"HyperParameterTuningJobName"
                  forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..= Text
hyperParameterTuningJobName
              )
          ]
      )

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

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

-- | /See:/ 'newDescribeHyperParameterTuningJobResponse' smart constructor.
data DescribeHyperParameterTuningJobResponse = DescribeHyperParameterTuningJobResponse'
  { -- | A TrainingJobSummary object that describes the training job that
    -- completed with the best current HyperParameterTuningJobObjective.
    DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
bestTrainingJob :: Prelude.Maybe HyperParameterTrainingJobSummary,
    -- | If the tuning job failed, the reason it failed.
    DescribeHyperParameterTuningJobResponse -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The date and time that the tuning job ended.
    DescribeHyperParameterTuningJobResponse -> Maybe POSIX
hyperParameterTuningEndTime :: Prelude.Maybe Data.POSIX,
    -- | The date and time that the status of the tuning job was modified.
    DescribeHyperParameterTuningJobResponse -> Maybe POSIX
lastModifiedTime :: Prelude.Maybe Data.POSIX,
    -- | If the hyperparameter tuning job is an warm start tuning job with a
    -- @WarmStartType@ of @IDENTICAL_DATA_AND_ALGORITHM@, this is the
    -- TrainingJobSummary for the training job with the best objective metric
    -- value of all training jobs launched by this tuning job and all parent
    -- jobs specified for the warm start tuning job.
    DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob :: Prelude.Maybe HyperParameterTrainingJobSummary,
    -- | The HyperParameterTrainingJobDefinition object that specifies the
    -- definition of the training jobs that this tuning job launches.
    DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition :: Prelude.Maybe HyperParameterTrainingJobDefinition,
    -- | A list of the HyperParameterTrainingJobDefinition objects launched for
    -- this tuning job.
    DescribeHyperParameterTuningJobResponse
-> Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions :: Prelude.Maybe (Prelude.NonEmpty HyperParameterTrainingJobDefinition),
    -- | The configuration for starting the hyperparameter parameter tuning job
    -- using one or more previous tuning jobs as a starting point. The results
    -- of previous tuning jobs are used to inform which combinations of
    -- hyperparameters to search over in the new tuning job.
    DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig :: Prelude.Maybe HyperParameterTuningJobWarmStartConfig,
    -- | The response's http status code.
    DescribeHyperParameterTuningJobResponse -> Int
httpStatus :: Prelude.Int,
    -- | The name of the tuning job.
    DescribeHyperParameterTuningJobResponse -> Text
hyperParameterTuningJobName :: Prelude.Text,
    -- | The Amazon Resource Name (ARN) of the tuning job.
    DescribeHyperParameterTuningJobResponse -> Text
hyperParameterTuningJobArn :: Prelude.Text,
    -- | The HyperParameterTuningJobConfig object that specifies the
    -- configuration of the tuning job.
    DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobConfig
hyperParameterTuningJobConfig :: HyperParameterTuningJobConfig,
    -- | The status of the tuning job: InProgress, Completed, Failed, Stopping,
    -- or Stopped.
    DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobStatus
hyperParameterTuningJobStatus :: HyperParameterTuningJobStatus,
    -- | The date and time that the tuning job started.
    DescribeHyperParameterTuningJobResponse -> POSIX
creationTime :: Data.POSIX,
    -- | The TrainingJobStatusCounters object that specifies the number of
    -- training jobs, categorized by status, that this tuning job launched.
    DescribeHyperParameterTuningJobResponse
-> TrainingJobStatusCounters
trainingJobStatusCounters :: TrainingJobStatusCounters,
    -- | The ObjectiveStatusCounters object that specifies the number of training
    -- jobs, categorized by the status of their final objective metric, that
    -- this tuning job launched.
    DescribeHyperParameterTuningJobResponse -> ObjectiveStatusCounters
objectiveStatusCounters :: ObjectiveStatusCounters
  }
  deriving (DescribeHyperParameterTuningJobResponse
-> DescribeHyperParameterTuningJobResponse -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DescribeHyperParameterTuningJobResponse
-> DescribeHyperParameterTuningJobResponse -> Bool
$c/= :: DescribeHyperParameterTuningJobResponse
-> DescribeHyperParameterTuningJobResponse -> Bool
== :: DescribeHyperParameterTuningJobResponse
-> DescribeHyperParameterTuningJobResponse -> Bool
$c== :: DescribeHyperParameterTuningJobResponse
-> DescribeHyperParameterTuningJobResponse -> Bool
Prelude.Eq, ReadPrec [DescribeHyperParameterTuningJobResponse]
ReadPrec DescribeHyperParameterTuningJobResponse
Int -> ReadS DescribeHyperParameterTuningJobResponse
ReadS [DescribeHyperParameterTuningJobResponse]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [DescribeHyperParameterTuningJobResponse]
$creadListPrec :: ReadPrec [DescribeHyperParameterTuningJobResponse]
readPrec :: ReadPrec DescribeHyperParameterTuningJobResponse
$creadPrec :: ReadPrec DescribeHyperParameterTuningJobResponse
readList :: ReadS [DescribeHyperParameterTuningJobResponse]
$creadList :: ReadS [DescribeHyperParameterTuningJobResponse]
readsPrec :: Int -> ReadS DescribeHyperParameterTuningJobResponse
$creadsPrec :: Int -> ReadS DescribeHyperParameterTuningJobResponse
Prelude.Read, Int -> DescribeHyperParameterTuningJobResponse -> ShowS
[DescribeHyperParameterTuningJobResponse] -> ShowS
DescribeHyperParameterTuningJobResponse -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DescribeHyperParameterTuningJobResponse] -> ShowS
$cshowList :: [DescribeHyperParameterTuningJobResponse] -> ShowS
show :: DescribeHyperParameterTuningJobResponse -> String
$cshow :: DescribeHyperParameterTuningJobResponse -> String
showsPrec :: Int -> DescribeHyperParameterTuningJobResponse -> ShowS
$cshowsPrec :: Int -> DescribeHyperParameterTuningJobResponse -> ShowS
Prelude.Show, forall x.
Rep DescribeHyperParameterTuningJobResponse x
-> DescribeHyperParameterTuningJobResponse
forall x.
DescribeHyperParameterTuningJobResponse
-> Rep DescribeHyperParameterTuningJobResponse x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep DescribeHyperParameterTuningJobResponse x
-> DescribeHyperParameterTuningJobResponse
$cfrom :: forall x.
DescribeHyperParameterTuningJobResponse
-> Rep DescribeHyperParameterTuningJobResponse x
Prelude.Generic)

-- |
-- Create a value of 'DescribeHyperParameterTuningJobResponse' 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:
--
-- 'bestTrainingJob', 'describeHyperParameterTuningJobResponse_bestTrainingJob' - A TrainingJobSummary object that describes the training job that
-- completed with the best current HyperParameterTuningJobObjective.
--
-- 'failureReason', 'describeHyperParameterTuningJobResponse_failureReason' - If the tuning job failed, the reason it failed.
--
-- 'hyperParameterTuningEndTime', 'describeHyperParameterTuningJobResponse_hyperParameterTuningEndTime' - The date and time that the tuning job ended.
--
-- 'lastModifiedTime', 'describeHyperParameterTuningJobResponse_lastModifiedTime' - The date and time that the status of the tuning job was modified.
--
-- 'overallBestTrainingJob', 'describeHyperParameterTuningJobResponse_overallBestTrainingJob' - If the hyperparameter tuning job is an warm start tuning job with a
-- @WarmStartType@ of @IDENTICAL_DATA_AND_ALGORITHM@, this is the
-- TrainingJobSummary for the training job with the best objective metric
-- value of all training jobs launched by this tuning job and all parent
-- jobs specified for the warm start tuning job.
--
-- 'trainingJobDefinition', 'describeHyperParameterTuningJobResponse_trainingJobDefinition' - The HyperParameterTrainingJobDefinition object that specifies the
-- definition of the training jobs that this tuning job launches.
--
-- 'trainingJobDefinitions', 'describeHyperParameterTuningJobResponse_trainingJobDefinitions' - A list of the HyperParameterTrainingJobDefinition objects launched for
-- this tuning job.
--
-- 'warmStartConfig', 'describeHyperParameterTuningJobResponse_warmStartConfig' - The configuration for starting the hyperparameter parameter tuning job
-- using one or more previous tuning jobs as a starting point. The results
-- of previous tuning jobs are used to inform which combinations of
-- hyperparameters to search over in the new tuning job.
--
-- 'httpStatus', 'describeHyperParameterTuningJobResponse_httpStatus' - The response's http status code.
--
-- 'hyperParameterTuningJobName', 'describeHyperParameterTuningJobResponse_hyperParameterTuningJobName' - The name of the tuning job.
--
-- 'hyperParameterTuningJobArn', 'describeHyperParameterTuningJobResponse_hyperParameterTuningJobArn' - The Amazon Resource Name (ARN) of the tuning job.
--
-- 'hyperParameterTuningJobConfig', 'describeHyperParameterTuningJobResponse_hyperParameterTuningJobConfig' - The HyperParameterTuningJobConfig object that specifies the
-- configuration of the tuning job.
--
-- 'hyperParameterTuningJobStatus', 'describeHyperParameterTuningJobResponse_hyperParameterTuningJobStatus' - The status of the tuning job: InProgress, Completed, Failed, Stopping,
-- or Stopped.
--
-- 'creationTime', 'describeHyperParameterTuningJobResponse_creationTime' - The date and time that the tuning job started.
--
-- 'trainingJobStatusCounters', 'describeHyperParameterTuningJobResponse_trainingJobStatusCounters' - The TrainingJobStatusCounters object that specifies the number of
-- training jobs, categorized by status, that this tuning job launched.
--
-- 'objectiveStatusCounters', 'describeHyperParameterTuningJobResponse_objectiveStatusCounters' - The ObjectiveStatusCounters object that specifies the number of training
-- jobs, categorized by the status of their final objective metric, that
-- this tuning job launched.
newDescribeHyperParameterTuningJobResponse ::
  -- | 'httpStatus'
  Prelude.Int ->
  -- | 'hyperParameterTuningJobName'
  Prelude.Text ->
  -- | 'hyperParameterTuningJobArn'
  Prelude.Text ->
  -- | 'hyperParameterTuningJobConfig'
  HyperParameterTuningJobConfig ->
  -- | 'hyperParameterTuningJobStatus'
  HyperParameterTuningJobStatus ->
  -- | 'creationTime'
  Prelude.UTCTime ->
  -- | 'trainingJobStatusCounters'
  TrainingJobStatusCounters ->
  -- | 'objectiveStatusCounters'
  ObjectiveStatusCounters ->
  DescribeHyperParameterTuningJobResponse
newDescribeHyperParameterTuningJobResponse :: Int
-> Text
-> Text
-> HyperParameterTuningJobConfig
-> HyperParameterTuningJobStatus
-> UTCTime
-> TrainingJobStatusCounters
-> ObjectiveStatusCounters
-> DescribeHyperParameterTuningJobResponse
newDescribeHyperParameterTuningJobResponse
  Int
pHttpStatus_
  Text
pHyperParameterTuningJobName_
  Text
pHyperParameterTuningJobArn_
  HyperParameterTuningJobConfig
pHyperParameterTuningJobConfig_
  HyperParameterTuningJobStatus
pHyperParameterTuningJobStatus_
  UTCTime
pCreationTime_
  TrainingJobStatusCounters
pTrainingJobStatusCounters_
  ObjectiveStatusCounters
pObjectiveStatusCounters_ =
    DescribeHyperParameterTuningJobResponse'
      { $sel:bestTrainingJob:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobSummary
bestTrainingJob =
          forall a. Maybe a
Prelude.Nothing,
        $sel:failureReason:DescribeHyperParameterTuningJobResponse' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
        $sel:hyperParameterTuningEndTime:DescribeHyperParameterTuningJobResponse' :: Maybe POSIX
hyperParameterTuningEndTime =
          forall a. Maybe a
Prelude.Nothing,
        $sel:lastModifiedTime:DescribeHyperParameterTuningJobResponse' :: Maybe POSIX
lastModifiedTime = forall a. Maybe a
Prelude.Nothing,
        $sel:overallBestTrainingJob:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob =
          forall a. Maybe a
Prelude.Nothing,
        $sel:trainingJobDefinition:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition =
          forall a. Maybe a
Prelude.Nothing,
        $sel:trainingJobDefinitions:DescribeHyperParameterTuningJobResponse' :: Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions =
          forall a. Maybe a
Prelude.Nothing,
        $sel:warmStartConfig:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig = forall a. Maybe a
Prelude.Nothing,
        $sel:httpStatus:DescribeHyperParameterTuningJobResponse' :: Int
httpStatus = Int
pHttpStatus_,
        $sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJobResponse' :: Text
hyperParameterTuningJobName =
          Text
pHyperParameterTuningJobName_,
        $sel:hyperParameterTuningJobArn:DescribeHyperParameterTuningJobResponse' :: Text
hyperParameterTuningJobArn =
          Text
pHyperParameterTuningJobArn_,
        $sel:hyperParameterTuningJobConfig:DescribeHyperParameterTuningJobResponse' :: HyperParameterTuningJobConfig
hyperParameterTuningJobConfig =
          HyperParameterTuningJobConfig
pHyperParameterTuningJobConfig_,
        $sel:hyperParameterTuningJobStatus:DescribeHyperParameterTuningJobResponse' :: HyperParameterTuningJobStatus
hyperParameterTuningJobStatus =
          HyperParameterTuningJobStatus
pHyperParameterTuningJobStatus_,
        $sel:creationTime:DescribeHyperParameterTuningJobResponse' :: POSIX
creationTime =
          forall (a :: Format). Iso' (Time a) UTCTime
Data._Time forall t b. AReview t b -> b -> t
Lens.# UTCTime
pCreationTime_,
        $sel:trainingJobStatusCounters:DescribeHyperParameterTuningJobResponse' :: TrainingJobStatusCounters
trainingJobStatusCounters =
          TrainingJobStatusCounters
pTrainingJobStatusCounters_,
        $sel:objectiveStatusCounters:DescribeHyperParameterTuningJobResponse' :: ObjectiveStatusCounters
objectiveStatusCounters =
          ObjectiveStatusCounters
pObjectiveStatusCounters_
      }

-- | A TrainingJobSummary object that describes the training job that
-- completed with the best current HyperParameterTuningJobObjective.
describeHyperParameterTuningJobResponse_bestTrainingJob :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe HyperParameterTrainingJobSummary)
describeHyperParameterTuningJobResponse_bestTrainingJob :: Lens'
  DescribeHyperParameterTuningJobResponse
  (Maybe HyperParameterTrainingJobSummary)
describeHyperParameterTuningJobResponse_bestTrainingJob = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe HyperParameterTrainingJobSummary
bestTrainingJob :: Maybe HyperParameterTrainingJobSummary
$sel:bestTrainingJob:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
bestTrainingJob} -> Maybe HyperParameterTrainingJobSummary
bestTrainingJob) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe HyperParameterTrainingJobSummary
a -> DescribeHyperParameterTuningJobResponse
s {$sel:bestTrainingJob:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobSummary
bestTrainingJob = Maybe HyperParameterTrainingJobSummary
a} :: DescribeHyperParameterTuningJobResponse)

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

-- | The date and time that the tuning job ended.
describeHyperParameterTuningJobResponse_hyperParameterTuningEndTime :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe Prelude.UTCTime)
describeHyperParameterTuningJobResponse_hyperParameterTuningEndTime :: Lens' DescribeHyperParameterTuningJobResponse (Maybe UTCTime)
describeHyperParameterTuningJobResponse_hyperParameterTuningEndTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe POSIX
hyperParameterTuningEndTime :: Maybe POSIX
$sel:hyperParameterTuningEndTime:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Maybe POSIX
hyperParameterTuningEndTime} -> Maybe POSIX
hyperParameterTuningEndTime) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe POSIX
a -> DescribeHyperParameterTuningJobResponse
s {$sel:hyperParameterTuningEndTime:DescribeHyperParameterTuningJobResponse' :: Maybe POSIX
hyperParameterTuningEndTime = Maybe POSIX
a} :: DescribeHyperParameterTuningJobResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The date and time that the status of the tuning job was modified.
describeHyperParameterTuningJobResponse_lastModifiedTime :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe Prelude.UTCTime)
describeHyperParameterTuningJobResponse_lastModifiedTime :: Lens' DescribeHyperParameterTuningJobResponse (Maybe UTCTime)
describeHyperParameterTuningJobResponse_lastModifiedTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe POSIX
lastModifiedTime :: Maybe POSIX
$sel:lastModifiedTime:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Maybe POSIX
lastModifiedTime} -> Maybe POSIX
lastModifiedTime) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe POSIX
a -> DescribeHyperParameterTuningJobResponse
s {$sel:lastModifiedTime:DescribeHyperParameterTuningJobResponse' :: Maybe POSIX
lastModifiedTime = Maybe POSIX
a} :: DescribeHyperParameterTuningJobResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | If the hyperparameter tuning job is an warm start tuning job with a
-- @WarmStartType@ of @IDENTICAL_DATA_AND_ALGORITHM@, this is the
-- TrainingJobSummary for the training job with the best objective metric
-- value of all training jobs launched by this tuning job and all parent
-- jobs specified for the warm start tuning job.
describeHyperParameterTuningJobResponse_overallBestTrainingJob :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe HyperParameterTrainingJobSummary)
describeHyperParameterTuningJobResponse_overallBestTrainingJob :: Lens'
  DescribeHyperParameterTuningJobResponse
  (Maybe HyperParameterTrainingJobSummary)
describeHyperParameterTuningJobResponse_overallBestTrainingJob = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob :: Maybe HyperParameterTrainingJobSummary
$sel:overallBestTrainingJob:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob} -> Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe HyperParameterTrainingJobSummary
a -> DescribeHyperParameterTuningJobResponse
s {$sel:overallBestTrainingJob:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob = Maybe HyperParameterTrainingJobSummary
a} :: DescribeHyperParameterTuningJobResponse)

-- | The HyperParameterTrainingJobDefinition object that specifies the
-- definition of the training jobs that this tuning job launches.
describeHyperParameterTuningJobResponse_trainingJobDefinition :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe HyperParameterTrainingJobDefinition)
describeHyperParameterTuningJobResponse_trainingJobDefinition :: Lens'
  DescribeHyperParameterTuningJobResponse
  (Maybe HyperParameterTrainingJobDefinition)
describeHyperParameterTuningJobResponse_trainingJobDefinition = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition :: Maybe HyperParameterTrainingJobDefinition
$sel:trainingJobDefinition:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition} -> Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe HyperParameterTrainingJobDefinition
a -> DescribeHyperParameterTuningJobResponse
s {$sel:trainingJobDefinition:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition = Maybe HyperParameterTrainingJobDefinition
a} :: DescribeHyperParameterTuningJobResponse)

-- | A list of the HyperParameterTrainingJobDefinition objects launched for
-- this tuning job.
describeHyperParameterTuningJobResponse_trainingJobDefinitions :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe (Prelude.NonEmpty HyperParameterTrainingJobDefinition))
describeHyperParameterTuningJobResponse_trainingJobDefinitions :: Lens'
  DescribeHyperParameterTuningJobResponse
  (Maybe (NonEmpty HyperParameterTrainingJobDefinition))
describeHyperParameterTuningJobResponse_trainingJobDefinitions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions :: Maybe (NonEmpty HyperParameterTrainingJobDefinition)
$sel:trainingJobDefinitions:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions} -> Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe (NonEmpty HyperParameterTrainingJobDefinition)
a -> DescribeHyperParameterTuningJobResponse
s {$sel:trainingJobDefinitions:DescribeHyperParameterTuningJobResponse' :: Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions = Maybe (NonEmpty HyperParameterTrainingJobDefinition)
a} :: DescribeHyperParameterTuningJobResponse) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The configuration for starting the hyperparameter parameter tuning job
-- using one or more previous tuning jobs as a starting point. The results
-- of previous tuning jobs are used to inform which combinations of
-- hyperparameters to search over in the new tuning job.
describeHyperParameterTuningJobResponse_warmStartConfig :: Lens.Lens' DescribeHyperParameterTuningJobResponse (Prelude.Maybe HyperParameterTuningJobWarmStartConfig)
describeHyperParameterTuningJobResponse_warmStartConfig :: Lens'
  DescribeHyperParameterTuningJobResponse
  (Maybe HyperParameterTuningJobWarmStartConfig)
describeHyperParameterTuningJobResponse_warmStartConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig :: Maybe HyperParameterTuningJobWarmStartConfig
$sel:warmStartConfig:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig} -> Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Maybe HyperParameterTuningJobWarmStartConfig
a -> DescribeHyperParameterTuningJobResponse
s {$sel:warmStartConfig:DescribeHyperParameterTuningJobResponse' :: Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig = Maybe HyperParameterTuningJobWarmStartConfig
a} :: DescribeHyperParameterTuningJobResponse)

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

-- | The name of the tuning job.
describeHyperParameterTuningJobResponse_hyperParameterTuningJobName :: Lens.Lens' DescribeHyperParameterTuningJobResponse Prelude.Text
describeHyperParameterTuningJobResponse_hyperParameterTuningJobName :: Lens' DescribeHyperParameterTuningJobResponse Text
describeHyperParameterTuningJobResponse_hyperParameterTuningJobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Text
hyperParameterTuningJobName :: Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Text
hyperParameterTuningJobName} -> Text
hyperParameterTuningJobName) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Text
a -> DescribeHyperParameterTuningJobResponse
s {$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJobResponse' :: Text
hyperParameterTuningJobName = Text
a} :: DescribeHyperParameterTuningJobResponse)

-- | The Amazon Resource Name (ARN) of the tuning job.
describeHyperParameterTuningJobResponse_hyperParameterTuningJobArn :: Lens.Lens' DescribeHyperParameterTuningJobResponse Prelude.Text
describeHyperParameterTuningJobResponse_hyperParameterTuningJobArn :: Lens' DescribeHyperParameterTuningJobResponse Text
describeHyperParameterTuningJobResponse_hyperParameterTuningJobArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {Text
hyperParameterTuningJobArn :: Text
$sel:hyperParameterTuningJobArn:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Text
hyperParameterTuningJobArn} -> Text
hyperParameterTuningJobArn) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} Text
a -> DescribeHyperParameterTuningJobResponse
s {$sel:hyperParameterTuningJobArn:DescribeHyperParameterTuningJobResponse' :: Text
hyperParameterTuningJobArn = Text
a} :: DescribeHyperParameterTuningJobResponse)

-- | The HyperParameterTuningJobConfig object that specifies the
-- configuration of the tuning job.
describeHyperParameterTuningJobResponse_hyperParameterTuningJobConfig :: Lens.Lens' DescribeHyperParameterTuningJobResponse HyperParameterTuningJobConfig
describeHyperParameterTuningJobResponse_hyperParameterTuningJobConfig :: Lens'
  DescribeHyperParameterTuningJobResponse
  HyperParameterTuningJobConfig
describeHyperParameterTuningJobResponse_hyperParameterTuningJobConfig = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {HyperParameterTuningJobConfig
hyperParameterTuningJobConfig :: HyperParameterTuningJobConfig
$sel:hyperParameterTuningJobConfig:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobConfig
hyperParameterTuningJobConfig} -> HyperParameterTuningJobConfig
hyperParameterTuningJobConfig) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} HyperParameterTuningJobConfig
a -> DescribeHyperParameterTuningJobResponse
s {$sel:hyperParameterTuningJobConfig:DescribeHyperParameterTuningJobResponse' :: HyperParameterTuningJobConfig
hyperParameterTuningJobConfig = HyperParameterTuningJobConfig
a} :: DescribeHyperParameterTuningJobResponse)

-- | The status of the tuning job: InProgress, Completed, Failed, Stopping,
-- or Stopped.
describeHyperParameterTuningJobResponse_hyperParameterTuningJobStatus :: Lens.Lens' DescribeHyperParameterTuningJobResponse HyperParameterTuningJobStatus
describeHyperParameterTuningJobResponse_hyperParameterTuningJobStatus :: Lens'
  DescribeHyperParameterTuningJobResponse
  HyperParameterTuningJobStatus
describeHyperParameterTuningJobResponse_hyperParameterTuningJobStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {HyperParameterTuningJobStatus
hyperParameterTuningJobStatus :: HyperParameterTuningJobStatus
$sel:hyperParameterTuningJobStatus:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobStatus
hyperParameterTuningJobStatus} -> HyperParameterTuningJobStatus
hyperParameterTuningJobStatus) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} HyperParameterTuningJobStatus
a -> DescribeHyperParameterTuningJobResponse
s {$sel:hyperParameterTuningJobStatus:DescribeHyperParameterTuningJobResponse' :: HyperParameterTuningJobStatus
hyperParameterTuningJobStatus = HyperParameterTuningJobStatus
a} :: DescribeHyperParameterTuningJobResponse)

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

-- | The TrainingJobStatusCounters object that specifies the number of
-- training jobs, categorized by status, that this tuning job launched.
describeHyperParameterTuningJobResponse_trainingJobStatusCounters :: Lens.Lens' DescribeHyperParameterTuningJobResponse TrainingJobStatusCounters
describeHyperParameterTuningJobResponse_trainingJobStatusCounters :: Lens'
  DescribeHyperParameterTuningJobResponse TrainingJobStatusCounters
describeHyperParameterTuningJobResponse_trainingJobStatusCounters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {TrainingJobStatusCounters
trainingJobStatusCounters :: TrainingJobStatusCounters
$sel:trainingJobStatusCounters:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> TrainingJobStatusCounters
trainingJobStatusCounters} -> TrainingJobStatusCounters
trainingJobStatusCounters) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} TrainingJobStatusCounters
a -> DescribeHyperParameterTuningJobResponse
s {$sel:trainingJobStatusCounters:DescribeHyperParameterTuningJobResponse' :: TrainingJobStatusCounters
trainingJobStatusCounters = TrainingJobStatusCounters
a} :: DescribeHyperParameterTuningJobResponse)

-- | The ObjectiveStatusCounters object that specifies the number of training
-- jobs, categorized by the status of their final objective metric, that
-- this tuning job launched.
describeHyperParameterTuningJobResponse_objectiveStatusCounters :: Lens.Lens' DescribeHyperParameterTuningJobResponse ObjectiveStatusCounters
describeHyperParameterTuningJobResponse_objectiveStatusCounters :: Lens'
  DescribeHyperParameterTuningJobResponse ObjectiveStatusCounters
describeHyperParameterTuningJobResponse_objectiveStatusCounters = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\DescribeHyperParameterTuningJobResponse' {ObjectiveStatusCounters
objectiveStatusCounters :: ObjectiveStatusCounters
$sel:objectiveStatusCounters:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> ObjectiveStatusCounters
objectiveStatusCounters} -> ObjectiveStatusCounters
objectiveStatusCounters) (\s :: DescribeHyperParameterTuningJobResponse
s@DescribeHyperParameterTuningJobResponse' {} ObjectiveStatusCounters
a -> DescribeHyperParameterTuningJobResponse
s {$sel:objectiveStatusCounters:DescribeHyperParameterTuningJobResponse' :: ObjectiveStatusCounters
objectiveStatusCounters = ObjectiveStatusCounters
a} :: DescribeHyperParameterTuningJobResponse)

instance
  Prelude.NFData
    DescribeHyperParameterTuningJobResponse
  where
  rnf :: DescribeHyperParameterTuningJobResponse -> ()
rnf DescribeHyperParameterTuningJobResponse' {Int
Maybe (NonEmpty HyperParameterTrainingJobDefinition)
Maybe Text
Maybe POSIX
Maybe HyperParameterTuningJobWarmStartConfig
Maybe HyperParameterTrainingJobSummary
Maybe HyperParameterTrainingJobDefinition
Text
POSIX
HyperParameterTuningJobStatus
ObjectiveStatusCounters
TrainingJobStatusCounters
HyperParameterTuningJobConfig
objectiveStatusCounters :: ObjectiveStatusCounters
trainingJobStatusCounters :: TrainingJobStatusCounters
creationTime :: POSIX
hyperParameterTuningJobStatus :: HyperParameterTuningJobStatus
hyperParameterTuningJobConfig :: HyperParameterTuningJobConfig
hyperParameterTuningJobArn :: Text
hyperParameterTuningJobName :: Text
httpStatus :: Int
warmStartConfig :: Maybe HyperParameterTuningJobWarmStartConfig
trainingJobDefinitions :: Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinition :: Maybe HyperParameterTrainingJobDefinition
overallBestTrainingJob :: Maybe HyperParameterTrainingJobSummary
lastModifiedTime :: Maybe POSIX
hyperParameterTuningEndTime :: Maybe POSIX
failureReason :: Maybe Text
bestTrainingJob :: Maybe HyperParameterTrainingJobSummary
$sel:objectiveStatusCounters:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> ObjectiveStatusCounters
$sel:trainingJobStatusCounters:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> TrainingJobStatusCounters
$sel:creationTime:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> POSIX
$sel:hyperParameterTuningJobStatus:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobStatus
$sel:hyperParameterTuningJobConfig:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> HyperParameterTuningJobConfig
$sel:hyperParameterTuningJobArn:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Text
$sel:hyperParameterTuningJobName:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Text
$sel:httpStatus:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Int
$sel:warmStartConfig:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTuningJobWarmStartConfig
$sel:trainingJobDefinitions:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe (NonEmpty HyperParameterTrainingJobDefinition)
$sel:trainingJobDefinition:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobDefinition
$sel:overallBestTrainingJob:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
$sel:lastModifiedTime:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Maybe POSIX
$sel:hyperParameterTuningEndTime:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Maybe POSIX
$sel:failureReason:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse -> Maybe Text
$sel:bestTrainingJob:DescribeHyperParameterTuningJobResponse' :: DescribeHyperParameterTuningJobResponse
-> Maybe HyperParameterTrainingJobSummary
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe HyperParameterTrainingJobSummary
bestTrainingJob
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
hyperParameterTuningEndTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
lastModifiedTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HyperParameterTrainingJobSummary
overallBestTrainingJob
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HyperParameterTrainingJobDefinition
trainingJobDefinition
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty HyperParameterTrainingJobDefinition)
trainingJobDefinitions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe HyperParameterTuningJobWarmStartConfig
warmStartConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Int
httpStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
hyperParameterTuningJobName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Text
hyperParameterTuningJobArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf HyperParameterTuningJobConfig
hyperParameterTuningJobConfig
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf HyperParameterTuningJobStatus
hyperParameterTuningJobStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf TrainingJobStatusCounters
trainingJobStatusCounters
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf ObjectiveStatusCounters
objectiveStatusCounters